Analog(D-PWM)out do> AnalogRead(Analog pin) filtr

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Analog(D-PWM)out do> AnalogRead(Analog pin) filtr

Příspěvek od ondraN » 25 srp 2020, 22:15

Běžně se na takové jednoduché vícestavové předávání hodnot používá pulzní modulace. Vysílá se signál se střídou 1:1 a jeho perioda nese informaci. Např. vysílám 10ms H a 10ms L stále dokola. 10ms třeba představuje hodnotu 0. Hodnotu 1 představuje třeba 15ms a 15ms, a tak dále, jak je mi libo. Na straně přijímače se pak jen měří čas mezi vzestupnou a sestupnou hranou impulsů. Generování impulsů je vhodné přes časovač, příjem přes interrupt při změně log. úrovně na pinu. Je to jednoduché, dá se to v případě potřeby oddělit galvanicky přes optočlen a je vysoká pravděpodobnost správného zjištění stavu.

Uživatelský avatar
gilhad
Příspěvky: 778
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Analog(D-PWM)out do> AnalogRead(Analog pin) filtr

Příspěvek od gilhad » 27 srp 2020, 14:52

Mozna by bylo (pro tech par stavu) jeste jednodussi dat na vysilaci analogWrite(pin,hodnota), cili to na pinu bude samo zdarma delat hradby s sirkou jednicky "hodnota" a mezery "konstanta-hodnota". Dela to HW a SW se dal nemusi starat.

Nasledne prijimac, kdyz pociti touhu naslouchat, tak zmeri delku High a delku Low, pokud mu to po secteni da asi tak tu konstantu, tak delka high je asi tak ta hodnota (+/- presnos mereni) (jinak mereni opakuje, protoze zrovna trefil okamzik, kdy vysilac meni hodnotu)

Protoze PWM je docela rychla zalezitost, tak prijimac nemusi cekat dlouho na nabeznou hranu, protoze vysila dedikovany HW, tak vysilac vysila furt pryc bez zateze procesoru a pokud by to bylo zasumene, neni problem vzit nekolik mereni a zprumerovat, ci jinak procistit. Navic odpadaji zcela vsechny analogove prvky, proste propojis pin-pin a hotovo, odber nepatrny (input ma velky odpor), hodnoty jasne (0/1) a staci ti jakykoli pin, analogovy/digitalni, zcela jedno.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: AdsBot [Google] a 6 hostů