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