Stránka 1 z 1
Změna ovládání programu Ardunio Uno
Napsal: 14 led 2022, 10:23
od turbok
Dobrý den,
potřeboval bych v programu rádia změnit ovládání tlačítky na ovládání kodérem.
Pokud by se tu našel někdo ochotný více v SZ.
Děkuji
Napsal: 14 led 2022, 11:18
od petrfilipi
V PICu (bez nějakého bootloaderu) jsem ovládání kódérem řešil tak, že v přerušení od vzestupné hrany jednoho nebo druhého vstupu se vyhodnotilo, který vstup způsobil přerušení. Následné byla do jedné nebo druhé proměnné zapsána log. 1 a ve standardní programové smyčce jsem se pak na hodnotu této proměnné ptal, reagoval a následně ji vynuloval, abych zase mohl odchytit následné otočení kódérem.
Myslím, že Arduino má také systém přerušení, čili by to mohlo být podobné.
PF
Napsal: 16 led 2022, 10:29
od Cowley
No a původní sketch, nebo odkaz na něj, máš?
Napsal: 16 led 2022, 12:49
od petrfilipi
Tady je popis přerušení v Arduinu.
PF
Napsal: 16 led 2022, 14:44
od turbok
Mám, kam to mohu poslat?
Napsal: 16 led 2022, 15:58
od petrfilipi
Sem se to (po zabalení) nevejde?
Napsal: 16 led 2022, 18:29
od turbok
Tady to je
Napsal: 16 led 2022, 19:42
od petrfilipi
Viděl bych to tak, jak jsem to napsal do kódu - viz příloha.
Poznámky:
•Kódér musí být připojen na vstupy 2 a 3 Arduino Uno. Jiné vstupy nevyhodnocují přerušení.
•Mnou upravené části jsou vloženy mezi párové značky //******************
•Ve zkratce:
·Zapne se přerušení (přílaz "interrupts()")
·Připojí se přerušení (příkaz "attachInterrupt(0, button_down, RISING);"). Nula znamená přerušení od pinu č. 2, RISING reaguje na vzestupnou hranu (zde pozor, zdali kodér spíná +5V nebo 0V) a když se přerušení detekuje, spustí se funkce "button_down".
·Analogicky pro vstup č. 3
·Funkce "button_up" kontroluje, zdali je log.1 na vstupu 2 a zároveň log.0 na vstupu 3 a zároveň číslo stanice je menší než 18. Pokud jsou všechny tři podmínky splněny, změní se hodnota proměnné "ID_stanice".
·Analogicky pro funkci "button_down".
•V hlavní smyčce jsem "zaremoval" ovládání přes tlačítka
•Psal jsem to v poznámkovém bloku, nezkoušel jsem to překládat (stejně bych neměl potřebné knihovny). Tak to zkus a uvidíš.
PF
Napsal: 17 led 2022, 18:21
od turbok
Děkuji,
pin 2 ardunia používá mp3 player /signál DREQ/, může být pin 2 společný?
při ověření mi to píše:
Napsal: 17 led 2022, 18:55
od petrfilipi
Myslím, že na 99% nelze použít jeden vývod pro 2 funkce. Ne že by to nešlo vůbec, ale musel bys přepínat mezi vstupem a výstupem a asi to není použitelné pro komunikaci.
Chyba je na řádku předcházejícím tomu hlášení. Za "interrupts ()" má být středník.
Nemáš schéma toho webového rádia?
PF
Napsal: 18 led 2022, 05:49
od turbok
Děkuji, poslal jsem SZ.
Napsal: 18 led 2022, 15:20
od Cowley
PF: Vypadá to, že má hotový SHIELD s tímto MP3 modulem.
Řešení by bylo použít desku MEGA2560 a přerušení na jiných, volných portech