Vraag:
Hoe verbind ik twee Arduino zonder schilden?
totymedli
2014-02-14 04:32:44 UTC
view on stackexchange narkive permalink

Ik plan een Arduino-systeem dat uit verschillende Arduino-kaarten bestaat. De maximale afstand tussen de planken is ongeveer 50 meter. Ik wil hier basisgegevens tussen verzenden, zoals korte strings of gehele getallen. Ik weet dat ik gegevens via ethernetkabels kan verzenden, maar dat vereist een ethernetschild of het Arduino Ethernet-bord dat de kosten verdubbelt. Is er een goedkope manier om de kaarten te verbinden met alleen de meest elementaire kaarten (zoals Uno) en enkele andere componenten, maar niet met een volledig schild?

Als budget geen probleem was, kunt u bluetooth- of xbee-chips gebruiken. Ze zijn niet al te slecht, maar zullen in totaal ~ $ 60 opleveren, omdat je er 2 nodig hebt.
@Steven10172 Bluetooth-apparaten zijn handig, maar het lijkt erop dat het OP een goedkope oplossing wil zonder schilden (laag profiel misschien?)
Zorg ervoor dat u ** de aarding aansluit als uw transportmedium elektriciteit is !!!
Gerelateerd: [Minimale gegevens verzenden tussen twee Arduino's ver van elkaar verwijderd] (https://arduino.stackexchange.com/questions/76947/sending-minimal-data-between-two-arduinos-far-away-from-each- andere)
Vijf antwoorden:
#1
+9
sachleen
2014-02-14 04:59:03 UTC
view on stackexchange narkive permalink

Voor bedrade communicatie over lange afstanden, kijk naar RS-485.

Aangezien het een differentieel gebalanceerde lijn over een twisted pair gebruikt (zoals RS-422), kan relatief grote afstanden overbruggen (tot wel 1.200 m). Een vuistregel is dat de snelheid in bit / s vermenigvuldigd met de lengte in meter niet hoger mag zijn dan 108. Een kabel van 50 meter mag dus niet sneller dan 2 Mbit / s signaleren.

Je kunt gebruik de MAX485-chip. Het is vrij eenvoudig om mee te werken, maar er is ook een goede bibliotheek:

https://github.com/Protoneer/RS485-Arduino-Library

Kon hij niet gewoon de draden in RS-485 of iets dergelijks strippen en dat gewoon voor serieel gebruiken om geld te besparen? 9600 baud werkt niet * bijna * zo snel als 2 MBPS. Is er iets speciaals aan het protocol / voltages / etc. dat maakt hem geschikt voor lange afstanden? Het kan wat geld besparen ...
Het is een differentieel signaal dat over een twisted pair wordt gestuurd. Vermindert ruis. http://en.wikipedia.org/wiki/Differential_signaling
Deze pagina is een uitstekende bron voor RS485 met Arduino http://www.gammon.com.au/forum/?id=11428
#2
+7
TheDoctor
2014-02-14 04:42:53 UTC
view on stackexchange narkive permalink

Er zijn twee categorieën die ik kan bedenken om de communicatiefuncties van de Arduino-borden te classificeren:

Tussen 2 apparaten:

  • Serieel: Gemakkelijk te gebruiken en vereist slechts 2 datalijnen.
  • OneWire: moeilijker in gebruik en traag, maar gebruikt slechts één datalijn

Tussen meer dan 2 apparaten

  • I2C: u kunt tot 128 apparaten op een netwerk hebben, individueel adresseerbaar, maar vereist een master-apparaat, gebruikt 2 datalijnen. dit staat ook bekend als Wire.
  • SPI: moeilijk te gebruiken, maar zeer snelle en gemakkelijke apparaatkeuze. gebruikt veel datalijnen (3 + aantal apparaten)
  • OneWire: het gebruik van geadresseerde oneWire is zelfs langzamer dan gewone oneWire, nog steeds maar één datalijn
  • SoftwareSerial: u kunt meerdere apparaten verbonden via verschillende seriële lijnen, maar het is langzamer.
  • CAN: alleen beschikbaar op de Due, en adresseerbaar

Er zijn andere methoden beschikbaar, maar deze worden alleen vermeld vereisen een minimum aan externe hardware.

Voor afstandsbeoordelingen, zie http://forum.arduino.cc/index.php?topic=82937.0 en http: / /www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html

Deze datasnelheden worden rechtstreeks beheerd in Serial en kunnen in vele andere worden aangepast.

#3
+5
HK1
2014-02-14 05:01:48 UTC
view on stackexchange narkive permalink

Freakduino maakt een aantal Arduino-boards met ingebouwde draadloze functionaliteit. Hun draadloze bereik is 900 MHz en hun kortere bereik is 2,4 GHz. Ik denk dat het eigenlijk XBee-radio's zijn en voor het programmeren zou je een bibliotheek met de naam chibiArduino gebruiken, die beschikbaar (en gedocumenteerd) is op de Freakduino-website. Bij draadloze communicatie met een andere radio kun je Broadcast gebruiken of een radio specificeren aan de hand van zijn ID, een waarde die je moet instellen in de EEPROM van de Freakduino.

Direct overgenomen van de Freakduino-site:

De toevoeging van een geïntegreerde draadloze radio gebaseerd op het IEEE 802.15.4-protocol (hetzelfde radioprotocol als de XBee) maakt draadloze bediening van apparaten of draadloze sensorgegevensverzameling mogelijk. Er is een optioneel batterijcircuit toegevoegd, zodat het kan functioneren als een echt draadloos knooppunt zonder externe stroomkabels. Het bord is ook ontworpen om in een robuuste behuizing te passen, zodat het ontwerp veilig kan worden vervoerd of ingezet in een echt gebruiksscenario zonder dat je je zorgen hoeft te maken over beschadiging van de schakelingen.

Deze 900 MHz-radio is een persoonlijke favoriet van mij. Ik gebruik het de hele tijd omdat 900 MHz een veel beter bereik biedt in vergelijking met 2,4 GHz. De radio kan tot 10 mW zendvermogen uitvoeren, wat een verrassend groot bereik kan krijgen. Met een directe zichtlijn zou een paar honderd meter niet verrassend zijn. Als extra bereik nodig is, kan de modulatiemodus ook worden gewijzigd van OQPSK naar BPSK. Dit resulteert in een extra bereik ten koste van de gegevenssnelheid, waarbij het maximum gaat van 250 kbps tot 40 kbps in de standaardmodus.

#4
  0
Butters
2015-03-02 08:04:45 UTC
view on stackexchange narkive permalink

Zoals je al zei, Ethernet-schilden zijn duur, maar je hoeft het schild niet te gebruiken. Bekijk de enc28j60 voor bekabelde netwerken of de ESP8266 als u de voorkeur geeft aan draadloos. Beide zijn ongeveer $ 4 USD. Ik gebruik nu de ESP8266 en heb ongeveer 8 apparaten die met elkaar praten en een Raspberry Pi. Het is echt een geweldige kleine chip! Ik kan de ENC28j60 niet persoonlijk spreken, aangezien ze nog in het pakket op mijn bureau zitten.

#5
  0
Nathan
2015-03-02 22:26:50 UTC
view on stackexchange narkive permalink

Je zou een Ethernet breakout board kunnen gebruiken ($ 2 bij Sparkfun). Hierdoor kunt u de Ethernet-kabels gebruiken, maar u hoeft geen volledig TCP / IP-protocol te gebruiken, maar u kunt gewoon datapinnen aansluiten op de breakout-kaart, Ethernet gebruiken om ze aan te sluiten en ze vervolgens serieel laten praten. Ik gebruik dit nogal wat om één-draads sensoren verder van de Arduino te plaatsen voor een sterke maar goedkope verbinding.



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...