Analog vstup -> frekvence výstup

Odpovědět
Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Analog vstup -> frekvence výstup

Příspěvek od Ludek » 17 pro 2019, 12:02

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.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Analog vstup -> frekvence výstup

Příspěvek od AstroMiK » 17 pro 2019, 12:22

... 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

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

Re: Analog vstup -> frekvence výstup

Příspěvek od ondraN » 17 pro 2019, 20:17

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).

Wojta
Příspěvky: 184
Registrován: 22 črc 2017, 16:39
Reputation: 0

Re: Analog vstup -> frekvence výstup

Příspěvek od Wojta » 18 pro 2019, 10:45

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ě).

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Analog vstup -> frekvence výstup

Příspěvek od Ludek » 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.

Wojta
Příspěvky: 184
Registrován: 22 črc 2017, 16:39
Reputation: 0

Re: Analog vstup -> frekvence výstup

Příspěvek od Wojta » 18 pro 2019, 13:57

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.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Analog vstup -> frekvence výstup

Příspěvek od pavel1tu » 18 pro 2019, 20:12

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 ?
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Analog vstup -> frekvence výstup

Příspěvek od Ludek » 18 pro 2019, 21:26

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"

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů