Arduino a prepinani RS485
Miroslav Mraz
mrazik na volny.cz
Středa Březen 10 15:39:28 CET 2021
Nejsem Arduinista, ale co jsem tak letmo kouknul do kódu, který
obsluhuje sériový port, tak vysílání je asynchronní - tedy data se řadí
do fronty a z ní je pak vybírá přerušení od vysílače. Takže chování jaké
popisujete je normální.
Nevím jak je to správně, ale nahodil bych RE/DE, pak odeslal data pomocí
Serial.print (může se volat i vícekrát), pak použil Serial.flush() a
úplně nakonec shodil RE/DE. Ale může v tom být nějaká zrada, kterou
takhle na první pohled nevidím.
Mrazík
Dne 10. 03. 21 v 14:27 Zapletal Martin - SOTEZA napsal(a):
> Zdravim.
>
> Chtel jsem si vyzkouset jednu vec s Arduinem ale narazil jsem na
> jeden(pro znalce asi banalni) problem s prepinanim prijmu a vysilani dat
> na RS485. V podstate jde o tento vzorovy kod:
>
> https://github.com/paulo-raca/YetAnotherArduinoWiegandLibrary/blob/master/examples/interrupts/interrupts.ino
>
>
> tam se v procedure void receivedData odesilaji data na USB. Pokud chci
> data posilat na 485ku (bez i s pripojenym USB), nejde v teto procedure
> nahodit/shodit prislusny digitalni pin pripojeny na RE/DE 485ky. Vykokta
> to sotva jeden dva znaky. Pokud ale DE/RE nahodim na primy plus nebo
> minus, dela to co ma. Ve smycce void loop() to take dela co ma. Z te
> procedury pro vypis nejdou ovladat digitalni piny? Prijde mi to tak,
> jako by se ten pin nahodil jen na nejakou milisekundu a pak zase spadne.
> Jak to tedy udelat spravne? Jsem v tom uplna lama, v Arduinu zkousim
> teprve dva dny. Driv jsem se s nim nikdy nepolibil. Programuji spis pro
> RPi a PC tak tapu(jsem urputny Pascalistta).
>
> dik MZ
>
>
Další informace o konferenci Hw-list