Změna ovládání programu Ardunio Uno

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
turbok
Příspěvky: 78
Registrován: 13 zář 2006, 00:00
Bydliště: Liberec

Změna ovládání programu Ardunio Uno

#1 Příspěvek 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
petrfilipi
Příspěvky: 2901
Registrován: 13 zář 2005, 00:00

#2 Příspěvek 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
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#3 Příspěvek od Cowley »

No a původní sketch, nebo odkaz na něj, máš?
petrfilipi
Příspěvky: 2901
Registrován: 13 zář 2005, 00:00

#4 Příspěvek od petrfilipi »

Tady je popis přerušení v Arduinu.

PF
Uživatelský avatar
turbok
Příspěvky: 78
Registrován: 13 zář 2006, 00:00
Bydliště: Liberec

#5 Příspěvek od turbok »

Mám, kam to mohu poslat?
petrfilipi
Příspěvky: 2901
Registrován: 13 zář 2005, 00:00

#6 Příspěvek od petrfilipi »

Sem se to (po zabalení) nevejde?
Uživatelský avatar
turbok
Příspěvky: 78
Registrován: 13 zář 2006, 00:00
Bydliště: Liberec

#7 Příspěvek od turbok »

Tady to je
Přílohy
web radio uno.rar
(2.97 KiB) Staženo 764 x
petrfilipi
Příspěvky: 2901
Registrován: 13 zář 2005, 00:00

#8 Příspěvek 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
Přílohy
Internet_radio_uno_18_stanic.rar
(3.21 KiB) Staženo 749 x
Uživatelský avatar
turbok
Příspěvky: 78
Registrován: 13 zář 2006, 00:00
Bydliště: Liberec

#9 Příspěvek 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:
Přílohy
Výstřižek1.JPG
Výstřižek1.JPG
petrfilipi
Příspěvky: 2901
Registrován: 13 zář 2005, 00:00

#10 Příspěvek 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
Uživatelský avatar
turbok
Příspěvky: 78
Registrován: 13 zář 2006, 00:00
Bydliště: Liberec

#11 Příspěvek od turbok »

Děkuji, poslal jsem SZ.
Uživatelský avatar
Cowley
Příspěvky: 3557
Registrován: 04 úno 2005, 00:00

#12 Příspěvek 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
Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“