Stránka 1 z 1

Analog vstup -> frekvence výstup

Napsal: 17 pro 2019, 12:02
od Ludek
Zdravím v poledne.
Ještě z jednou maličkostí se trápím. Potřebuji na analogový vstup posílat 0-4V,
a aby z výstupu šla frekvence 100 - 500 Hz nebo jakýkoli násobek až třeba 1000-5000 Hz a střída 1:1.
jde to vůbec? Potřebuji na dálku poslat informaci. RS485 je náročná na čtení, proudová či napěťová smyčka zase na počet kroků...
A tak mě napadla frekvence.

Re: Analog vstup -> frekvence výstup

Napsal: 17 pro 2019, 12:22
od AstroMiK
... Nastuduj si funkci tone(). To je asi nejjednodušší řešení.
https://www.arduino.cc/reference/en/lan ... d-io/tone/

Nezapomeň ale na to, že frekvence dvou různých arduin se mohou dost lišit (jak si poznal v minulém vlákně).

Já jsem si dělal nedávno debugovací přípravek pro ATtiny, a narazil jsem tam na ten problém nestability a nepřesnosti časování.
Nakonec jsem to vyřešil dvěma pulzy (jeden kalibrační a druhý datový).
Detaily zde:
http://astromik.org/raspi/tiny_debug/index.htm

Re: Analog vstup -> frekvence výstup

Napsal: 17 pro 2019, 20:17
od ondraN
A co použít jako nosnou informaci střídu pulsu. Generovat signál s nějakou +/- konstantní frekvencí a třeba do délky stavu H promítnout stav čtení analogového vstupu a délka L by byla nějaká hodnota, větší než 1024 a od ní by se odečetla délka H. Doba H+L by tedy byla konstantní a měřená veličina by byl rozdíl H-L plus/mínus nějaké konstanty (aby pro nulové nebo maximální hodnoty nebyly nulové délky H nebo L). Pro generování i vyhodnocování by se dal použít 16bit timer (T1).

Re: Analog vstup -> frekvence výstup

Napsal: 18 pro 2019, 10:45
od Wojta
Musí v tom vůbec hrát roli Arduino? Jestli je to opravdu jen obyčejný převodní napětí/frekvence tak se na to dá sehnat bez větších problémů IC které to udělá za tebe a nebudeš tím muset zatěžovat ardu. Mimo to asi nechápu proč je RS485 náročná na čtení. Řešení s ní mi přijde rozhodně jednodušší než řešit vysílání a přijímání frekvencí (pokud to chceš mít udělaný pořádně).

Re: Analog vstup -> frekvence výstup

Napsal: 18 pro 2019, 11:43
od Ludek
Ahoj Wojto,
no Arduino ani né, ale myslel jsem to odladit na Arduinu a pak nacpat do ATtiny45...
Máš asi pravdu, ale jsem hroznej bastlíř a abych se pořád nemusel RS485 ptát čidla v jaké je poloze,
tak jsem si myslel, že mi bude pořád dokola posílat číslo 0-7 pomocí frekvence a tu umím číst.
Ono jde o to, že celý můj problém je, že bych potřeboval řešit čtení asi 6 čidel co visí na 485,
ale opravdu malým Arduinem, které by se staralo o to, že třeba každých 10 sec přečte jedno čidlo,
uloží si ho do proměnných a až nadřazený modul - také má Arduino, bude chtít data, tak se toho malého zeptá.
Každé čidlo potřebuje poslat pár Byte - to umím, ale každé čislo posílá něco jiného a to neumím...
Pokud bych to dokázal, prdím na frekvenci.

Re: Analog vstup -> frekvence výstup

Napsal: 18 pro 2019, 13:57
od Wojta
Aha, takže cílem je neprat se s obousměrnou komunikací ale nechat si nonstop servírovat data a jen občas si jich všímat. Tak pokud se necítíš na nic jiného tak jdi klidně do frekvencí. Generování podle napětí rozhodně problém není, jak psal AstroMiK, buď si nastuduj tone() nebo pak studuj víc a napiš si to sám přes časovače. Ale pokud se necítíš na jinou komunikaci než přes f tak je pro tebe možnost asi jen to tone.

Re: Analog vstup -> frekvence výstup

Napsal: 18 pro 2019, 20:12
od pavel1tu
Ludek píše:
18 pro 2019, 11:43
Ahoj Wojto,
no Arduino ani né, ale myslel jsem to odladit na Arduinu a pak nacpat do ATtiny45...
Máš asi pravdu, ale jsem hroznej bastlíř a abych se pořád nemusel RS485 ptát čidla v jaké je poloze,
tak jsem si myslel, že mi bude pořád dokola posílat číslo 0-7 pomocí frekvence a tu umím číst.
Ono jde o to, že celý můj problém je, že bych potřeboval řešit čtení asi 6 čidel co visí na 485,
ale opravdu malým Arduinem, které by se staralo o to, že třeba každých 10 sec přečte jedno čidlo,
uloží si ho do proměnných a až nadřazený modul - také má Arduino, bude chtít data, tak se toho malého zeptá.
Každé čidlo potřebuje poslat pár Byte - to umím, ale každé čislo posílá něco jiného a to neumím...
Pokud bych to dokázal, prdím na frekvenci.
Ahoj,
já to nechápu, jsem pomalejší než ostatní.
Ty čidla si vyrábíš sám ? Nebo co je to za čidla, zatím jsem nepotkal nic co má z výroby 485 a nejde to adresovat.
My po domě máme asi 30 čidel/ovládaných míst po 485, master si je po jednom volá (každé má svoji adresu) a odpoví mu to správné.
Jinak na 485 musí být vždy jen jeden MASTER, ten se ptá ostatních/nebojim pošle data a ty mu odpovídají,
pokud tam ty čidla budou zmatene vysílat všechny, nepotluče se to časem ?

Re: Analog vstup -> frekvence výstup

Napsal: 18 pro 2019, 21:26
od Ludek
Ahoj Pavle, vzal jsem si velké sousto, nad mé začátečnické síly :-)
Ten první jsem vyřešil. Místo frekvencí to posílám proudovou smyčkou a funguje to. Musí to být kontinuálně,
a tak intervalové čtení po 485 mi nevyhovuje. Ale vyřešeno..
Ten druhý problém co mám, je ten že mám čidla od PaPoucha a to směs, staré i nové, takže není stejný
protokol TQS1,TQS3 atd atd. To mi nevadí, to umím... Jenomže já potřebuji, aby tyto čidla pravidelně četlo třeba Arduino Mini,
ale tak, že cca po 10 sec poptá jedno čidlo po druhém a hodnoty si uložil. Takže každou minutu přečte všech 6 čidel.
No a já si - až budu chtít, kdykoli po Serial do něj sáhnu a načtu si 6 dat - samozřejmě včetně jejich adresy.
A můj problém? Umím přečíst jen jedno, neumím udělat to "kolečko"