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

Anthlon
Příspěvky: 13
Registrován: 21 kvě 2019, 19:47
Reputation: 0

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

Příspěvek od Anthlon » 25 srp 2020, 15:08

Jako masochistická hodnota za cenu tří drátů mě tedy pak napadá jedině / 3x digital in + 3 digital out/ pro každé takové zařízení, kde natvrdo bude na každém takovém zařízení trvale svítit / přijímat hodnoty čistě 0/1 x 3 = 8 stavů?

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

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

Příspěvek od analytik » 25 srp 2020, 15:21

V tom případě by možná bylo jednodušší nahradit sérii vysílaných impulsů jediným impulsem o délce odpovídající přenášené informaci (jako napětí v původním projektu). Vysílač by tento signál opakovaně vysílal ve svém volném strojovém času a přijímače by si v případě zájmu počkaly na první přijatý impuls a k jeho naměřené délce by přiřadily odpovídající hodnotu ze sedmi možných.

Anthlon
Příspěvky: 13
Registrován: 21 kvě 2019, 19:47
Reputation: 0

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

Příspěvek od Anthlon » 25 srp 2020, 15:26

analytik píše:
25 srp 2020, 15:21
V tom případě by možná bylo jednodušší nahradit sérii vysílaných impulsů jediným impulsem o délce odpovídající přenášené informaci (jako napětí v původním projektu). Vysílač by tento signál opakovaně vysílal ve svém volném strojovém času a přijímače by si v případě zájmu počkaly na první přijatý impuls a k jeho naměřené délce by přiřadily odpovídající hodnotu ze sedmi možných.
Tohle se blíží, která klíčová slova mám hledat pro volný strojový čas? :-D

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

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

Příspěvek od analytik » 25 srp 2020, 15:32

Lidově - když mikroprocesor právě nemá do čeho píchnout. Možná i ta délka impulsu by se dala zachytit na kapacitě a nějaký čas ji tam uchovat coby napětí. Ale po každém přečtení by ji musel přijímací mikroprocesor vybít a do dalšího čtení nesmělo by přijít více než 1 impuls.

Anthlon
Příspěvky: 13
Registrován: 21 kvě 2019, 19:47
Reputation: 0

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

Příspěvek od Anthlon » 25 srp 2020, 15:35

analytik píše:
25 srp 2020, 15:32
Lidově - když mikroprocesor právě nemá do čeho píchnout. Možná i ta délka impulsu by se dala zachytit na kapacitě a nějaký čas ji tam uchovat coby napětí. Ale po každém přečtení by ji musel přijímací mikroprocesor vybít a do dalšího čtení nesmělo by přijít více než 1 impuls.
Jo, děkuju za vysvětlení, to ja spiš myslel jak to užít v arduinu v procesu :-D aby se mi toto dělo, konceptem jsem to pochopil. ale i tak díky za přístup, s arduinem jsem hodně začátečník, obecně základy mám.

Obecně čas (moment) čtení jednoho a čas vysilání jiného arduina se může a nejspíš bude lišit (i ve větších poměrech násobků intervalů, řádově vteřiny), to v praxi znamená že by jednou vyslaná hodnota měla být i vícekrát čitelná (držená) do změny, a nebo naopak, jednou vyslaná hodnota by měla jít změnit, aniž by byla kdykoliv dříve přijímačem brána vpotaz. (tedy jsme koncepčně zpět u té nefunkční myšlenky s analogem)

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

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

Příspěvek od kiRRow » 25 srp 2020, 16:31

Mohu se zeptat : Z jakého důvodu nepoužít rs232 ? ... vysílací PIN jednoho arduina propojím s přijímacím pinem druhého -> jeden drát + GND .... a i takhle se do může dál řetězit, že přijatý znak pošlu dál až projde k poslednímu Arduinu, které ho odešle taky, ale do prázdna. Velmi snadno odešlu 0-7. Velmi snadno to na druhé straně přečtu.
Nevýhoda je že při nahrávání sketche je nutno mít tyto piny odpojené

Anthlon
Příspěvky: 13
Registrován: 21 kvě 2019, 19:47
Reputation: 0

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

Příspěvek od Anthlon » 25 srp 2020, 17:11

kiRRow píše:
25 srp 2020, 16:31
Mohu se zeptat : Z jakého důvodu nepoužít rs232 ? ... vysílací PIN jednoho arduina propojím s přijímacím pinem druhého -> jeden drát + GND .... a i takhle se do může dál řetězit, že přijatý znak pošlu dál až projde k poslednímu Arduinu, které ho odešle taky, ale do prázdna. Velmi snadno odešlu 0-7. Velmi snadno to na druhé straně přečtu.
Nevýhoda je že při nahrávání sketche je nutno mít tyto piny odpojené
S tím přeposíláním abych nebyl nepochopen, tam nejde o to že to první jej pošle pro všechny až na konec.., První arduino odešle, to druhé si jej přečte a upraví (na jednu z těch sedmi hodnot, případně na stejnou, podle vlastního programu) samo se nějak zachová (vstupy + výstupy na ledky 1/0 atd) a jednu z těch sedmi hodnot dále stejnym způsobem pošle a tak dál (teoreticky do nekonečna, reálně těchto bloků, účastníků bude tak 10-12 maximálně).

Zůstane mi při použití desek nano možnost během funkce monitorovat tuhle činost na debugu přes okénko sběrnice? s RS232 tipuji ne.
V případě že nedojde ke zpracování již přijatých hodnot, mam nějak možnost při každém čtení toho co přichází refreshnout abych měl v momentě zájmu o přijímanou hodnotu ty nejčerstvější informace?(aby mi tam v mezipaměti nevisela informace o jedno zpět)

něco takového jsem našel zde:
https://makezine.com/2012/12/03/how-to- ... ia-serial/
Obrázek
nicméně není mi moc jasné jak bych v kódu řešil případ, kdy první zmíněné arduino odešle už 3x hodnoty, teprve pak to druhé bude v momentu, kdy začne mít zájem o nějakou přijímanou hodnotu ale bude chtít tu nejčerstvější, ne ty první dvě. ale nebude si o ně řikat na vyžádání, protože zrovna to první už zas bude řešit jiné věci atd. Jestli se vyjadřuju čitelně.

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

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

Příspěvek od kiRRow » 25 srp 2020, 17:26

Vemeš převodník RS232 na USB a připojíš si ho kdekoliv do té komunikace potřebuješ. Prostě mít vyrobený monitorovací/servisní kabel a mít místečko kde ho připojíš. Třeba malou propojovací destičku s volnými piny pro ten kabel. Mužeš pak jak číst, tak i injektovat uměle vytvořenou komunikaci.

V momentě kdy se arduino dostane k čtení seriové linky, zjistí, že tam je 5hodnot v bufferu, tak první 4vyhodí a zapamatuje si 5tou. Spustíš cyklus čtení linky a budeš přepisovat jednu proměnou... na konci tam zůstane nejnovější hodnota.
Nicméně arduino, pokud o hodnotu nemá zájem, tak by pak mělo stejně přeposlat informaci dál, ale nic jiného neudělat. Co když má zájem někdo jiný ?

Ušetříš si hodně programování a vymýšlení kolem té komunikace a můžeš se soustředit na to co to má dělat.

Dokonce kdyby jsis vymyslel komunikační protokol a v něm omezil, aby se ti cyklovaly data (ten co to posílal musí umět poznat, že to poslal on a neposílat to po druhé), tak si může klidně kdykoliv kdokoliv na te lince zavolat o info jakéhokoliv jiného. Jen propojíš to poslední arduino zase na to první do kruhu. V podstatě posílat 4byte [KdoVysílá][KomuToMáBýt][příkaz/odpověď][dataPříkazu/dataOdpovědi].
Poslal jsem to já? neposílám to dal.
Je to pro mě? Neposílám, dál a udělám to co to chce, nebo pošlu odpověď.
Není to pro mě a neposlal jsem to já ? Pošlu to dál ...

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

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

Příspěvek od analytik » 25 srp 2020, 18:38

Moc se stydím ;-(
Mám plný šuplík Arduin všech kalibrů, ale dosud mě nenapadl projekt, na který bych mohl nasadit více než dva kusy. Musím se ještě hodně učit!

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

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

Příspěvek od kiRRow » 25 srp 2020, 19:47

Zrovna u sebe nemam 3 arduina, jinak bych tu myšlenku hned zkusil. Moc nerad se nějak chlubím, ale tohle mi příjde opravdu jako dobrej nápad a řešení. Ani ta obsluha toho nebude nějak programátorsky náročná. Ještě bych přidal na konci jednoho vysílacího řetězce (dá se tomu říkat packet?) stop/oddělovací byte (třeba konec řádku) a rovnou bych data rozšířil aby celý packet měl 8byte + 1znak, že to je konec toho packetu ... nebo ještě lépe, ten znak může být kontrolní součet.

Odpovědět

Kdo je online

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