Welkom  

   

Mijn Menu  

   

What's Up  

Geen evenementen
   

Wedstrijd  

Geen evenementen
   
   
   
   
   
   
   
   
   
   
   
   
   
   
Welkom, Gasten
De mogelijkheden om zelf te knutselen/ontwikkelen met de nieuwste generatie mini-PC's is eindeloos. Omdat er diverse fraaie initiatieven lopen die best wat eigen plek behoeven, bundelen we onze kennis in deze categorie.

Onderwerp: Arduino NMEA output via RS485

Arduino NMEA output via RS485 23 feb 2017 08:17 #811765

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
Ik heb een barometer gemaakt met een Arduino Uno en een Adafruit Bosch BMP280 sensor. Via USB geeft deze NMEA sentences uit voor luchtdruk (en indien gewenst ook temperaratuur). Dit werkt perfect en deze waardes zijn in de navigatiesoftware uitleesbaar.

Nu probeer ik deze NMEA sentences ook ook via RS485 uit te sturen zodat ik het kan aansluiten op mijn NMEA MUX. Hiervoor heb ik een MAX485 module op de Arduino aangesloten. Echter, het lukt me niet om de NMEA sentences in mijn MUX zichtbaar te krijgen. Ik heb helaas geen scoop beschikbaar dus kan niet simpel controleren wat voor signaal er op de A en B draad wordt uitgestuurd.

Is er iemand die hier ervaring mee heeft?
Ik gebruik de SoftwareSerial.h en RS485_protocol.h libraries.
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 08:44 #811771

  • Gregor
  • Gregor's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 4482
Ik heb eens een kompas gemaakt en heb een schakeling gebouwd die via rs422 an de Shipmodul zijn data leverde. Werkte prrobleemloos. Idee?
Het kan altijd nog hagelen...
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 08:50 #811774

  • H2O
  • H2O's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 1250
Wat "eet" je NMEA mux? Als dat NMEA0183 is, dan is RS485 het verkeerde protocol (moet "gewoon" RS422 zijn). Je kunt de MAX485 driver wel gebruiken, maar het RS485 "netwerk" protocol heb je niet nodig.

Als je alleen wilt testen en je een mux hebt met galvanisch gescheiden inputs, heb je helemaal geen driver nodig en kun je je Arduino rechtstreeks op de mux aansluiten.

Jeroen.
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 08:50 #811775

Heb je 5V op de RS485 module gezet? met 3V3 zou wel eens te weinig kunnen zijn voor de ontvanger.

Als de ontvanger ook RS485 is mag je A en B verwisselen zonder dat het stuk gaat. Probeer het eens. Je kunt ook de RS485 aansluiten op de RS232 van je PC. Een draad aan GND en aan aan Rx. Dan kan je op de PC zien of het werkt.
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 08:54 #811778

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
RS485 zou (downward) compatibel met RS422 moeten zijn. Ik die ook nergens RS422 module voor de Arduino aangeboden worden. De MAX485 wordt wel veel gebruikt.
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 08:58 #811780

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
Joshua Slocum schreef :
Heb je 5V op de RS485 module gezet? met 3V3 zou wel eens te weinig kunnen zijn voor de ontvanger.

Als de ontvanger ook RS485 is mag je A en B verwisselen zonder dat het stuk gaat. Probeer het eens. Je kunt ook de RS485 aansluiten op de RS232 van je PC. Een draad aan GND en aan aan Rx. Dan kan je op de PC zien of het werkt.


Ja, de MAX485 draait op 5V.
Mijn ontvanger is een Shipmodul mux. Heb al geprobeerd A en B om te draaien maar dit maakt helaas geen verschil. In beide gevallen geen data. Ook verschillende baudrates (4800 en 9600) geprobeerd maar dit hielp ook niet.
Ik heb alleen laptops en daar heb ik geen RS232 aansluiting op.
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Laatst bewerkt: 23 feb 2017 08:59 door ZZZ.
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 08:58 #811782

Mooi! Heb je een goeie aanleiding om een scoop te kopen!
"het forum is er dankzij de leden EN de moderatoren"
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 09:06 #811786

  • roozeboos
  • roozeboos's Profielfoto
  • aanwezig
  • Gebruiker
  • Berichten: 18851
of een goede mux...

Zet even een multimeter op de A en de gnd en daarna op de B en de gnd. als je baudrate laag genoeg is dan zie je wel de datastroom elke seconde. Zie je dat dan wordt er verzonden. Zie je dat niet dan transmit enable aanzetten. pin 3.
Als dat niet werkt maar je ziet wel de data klapperen dan heb je de verkeerde baudrate. Ik weet niet hoe dat werkt met die arduino bordjes, qua libraries, maar je kristal frequentie wordt gebruikt om de baudrate te maken. Staat er de verkeerde deelfactor in dan klopt er niks van je snelheid en ziet de mux hem niet. Dit kan je niet echt controleren zonder scoop. (je hebt tegenwoordig vrij goedkope scoopjes zonder scherm die je aansluit op USB)

Je sentence moet in ieder geval beginnen met $.

stuur je de juiste data met de juiste baudrate en A/B omwisselen helpt niet, dan is je signaalnivo te laag. Maar dat lijkt me stug. Normaal kan een mux gewoon een max485 driver inlezen.
of je mux is defect.
Ontwerper van de RoosMux, en andere apparaatjes.
En sponsor alhier.
www.star-tracking.com www.star-safety.com www.viax.nl

It's been said that a boat is a vessel continually looking for ways to sink itself..
Laatst bewerkt: 23 feb 2017 09:13 door roozeboos.
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 10:42 #811828

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
Bedankt voor de hulp.
Deze mux zat al in de boot. Allicht de volgende keer een Roosmux ;-)

Ik heb even met de multimeter gemeten: zowel tussen A en GND, als tussen B en GND en tussen A en B staat spanning op het moment dat de Arduino data uitstuurt (ik had de frequentie van uitsturen in de Arduino even ingesteld op 1x per 5 seconden zodat dit goed zichtbaar was).
Dit is gemeten met alleen de Arduino/MAX485 connected aan mijn PC en t.o.v. de GND op het MAX485 boardje.
De Arduino wordt dan gevoed via de USB kabel van de PC.

Dat brengt me wel tot de volgende vraag:
Toen ik gisteren teste op de boot heb ik 2 situaties getest:
Arduino/MAX485 gevoed via de USB van mijn PC. Alleen de A en B draad aangesloten op de Mux
Arduino/MAX485 gevoed via de 12V van de boot. Alleen de A en B draad aangesloten op de Mux

In beide gevallen kreeg ik geen data in de Mux. Moet er nog een separate GND draad worden getrokken? In het geval van voeding via de 12V van de boot lijkt me dat er al en gemeenschappelijke GND is?

Het format van de sentence zou moeten kloppen. Althans, als ik deze sentence direct via de USB output van de Arduino laat binnenlopen in mijn navigatiesoftware wordt zowel luchtdruk als temperatuur goed weergegeven. Voorbeeld van het gebruikte format:

$WIMTA,19.95,C*2F
$WIMMB,29.407493,I,0.9958518,B*50

Dit is het format dat ik naar de RS485 library call stuur. Ik weet natuurlijk niet of die er vervolgens de juiste dingen mee doet.
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 10:55 #811838

  • roozeboos
  • roozeboos's Profielfoto
  • aanwezig
  • Gebruiker
  • Berichten: 18851
De ingang van de mux is galvanisch gescheiden. Dus je hoeft ( en moet!) alleen de twee draadjes aansluiten op de nmea in.
en natuurlijk de mux zelf voeden met plus enmin.
De ene draad van de nmea moet een spanning meten. dat is de positieve. De andere heeft een duidelijk lagere spanning.
Dat is de rust situatie.
Elke 5 seconden rammelen de spanningen van beide naar mekaar toe, dat zie je dan op de multimeter.

sluit je de berichten steeds af met een cr/lf?
Ontwerper van de RoosMux, en andere apparaatjes.
En sponsor alhier.
www.star-tracking.com www.star-safety.com www.viax.nl

It's been said that a boat is a vessel continually looking for ways to sink itself..
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 11:40 #811871

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
Ja, dat het aansluiten van A en B voldoende moet zijn vermoede ik al (gebalanceerd signaal en galvanisch gescheiden).

Dat van die CR/LF is een goede! In de output die ik via de USB poort correct kan lezen zit deze wel (ik doe een Println naar de serial console). Ik zal even uitzoeken wat er naar de RS485 gaat, maar vermoedelijk is dat alleen de nmea text string zonder cd/lf.
Moet deze cr/lf wel worden toegevoegd voor een sentence die door de mux kan worden geinterpreteerd?
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 11:44 #811874

  • roozeboos
  • roozeboos's Profielfoto
  • aanwezig
  • Gebruiker
  • Berichten: 18851
Ja de CR/LF heb je wel nodig. Ligt natuurlijk aan de software in de shipmodul hoe het wordt afgehandeld als dit ontbreekt.
Net als een foute checksum. Geeft ie het dan wel door of niet?
Ontwerper van de RoosMux, en andere apparaatjes.
En sponsor alhier.
www.star-tracking.com www.star-safety.com www.viax.nl

It's been said that a boat is a vessel continually looking for ways to sink itself..
Laatst bewerkt: 23 feb 2017 11:47 door roozeboos.
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 11:46 #811875

  • roozeboos
  • roozeboos's Profielfoto
  • aanwezig
  • Gebruiker
  • Berichten: 18851
kan je niet proberen de data in te lezen met een PC rs232 poort en het Hterm programma?
Dan heb je ook meteen duidelijk of de baudrate klopt.
Met een transistortje kan je het signaal wel oppeppen als je geen rs485/rs232 converter hebt.
Ontwerper van de RoosMux, en andere apparaatjes.
En sponsor alhier.
www.star-tracking.com www.star-safety.com www.viax.nl

It's been said that a boat is a vessel continually looking for ways to sink itself..
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 23 feb 2017 12:09 #811886

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
Dank voor het meedenken roozeboos!
Grote kans dat het ontbreken van de CRLF inderdaad het probleem is. Ik ga even een \r\n aan de string toevoegen die ik naar de RS485 stuur. Als ik komend weekend bij de boot ben ga ik even testen. Ik laat hier dan even even weten of het werkt!
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Alleen ingelogde leden kunnen reageren.

Arduino NMEA output via RS485 26 feb 2017 09:57 #812824

  • ZZZ
  • ZZZ's Profielfoto
  • Offline
  • Gebruiker
  • Berichten: 441
Gisteren getest op de boot, maar helaas heeft het toevoegen van een CRLF het probleem niet opgelost.
Ik heb de barometer ook nog even aangesloten op een andere ingang van de mux (waar normaliter de AIS op staat) om er zeker van te zijn dat het geen defecte ingang betrof, maar ook dit was het probleem niet.
Ook verschillende baudrates getest, echter zonder resultaat.

Bijgaande de Arduino sketch. Allicht dat een van jullie nog ideeen heeft waar het aan kan liggen?

Ik ga nu eerst even een nieuwe sketch opzetten voor het ontvangen van NMEA data via het MAX485 boardje en dat dan displayen op de serial output van de Arduino. Dan sluit ik even een AIS aan om te kijken of in wel sentences binnen krijg.
Bijlagen:
75Mijls IJsselmeer - www.75mijls.com
30Mijls Markermeer - www.30mijls.com
Alleen ingelogde leden kunnen reageren.
Tijd voor maken pagina: 0.290 seconden
Gemaakt door Kunena
   
   
   
   
© Zeilersforum.nl