Arduino projekt 2 feldolgozzuk a gombra kattintva a példa a LED világítás
- legfontosabb
- 2. projekt: A LED-es világítás példájára kattintunk
2. projekt: A LED-es világítás példájára kattintunk
Ez egy kísérlet a gombbal. A gomb megnyomásával bekapcsoljuk a LED-et, és a gomb felengedésekor kikapcsoljuk. Tekintsük a visszafordulási és a szoftveres módszerek fogalmát annak megszüntetésére.
Ebben a kísérletben a D2 Arduino kapcsolatot inputként használjuk. Ez lehetővé teszi, hogy csatlakozzon hozzá egy gombhoz a projekt valós időben történő kölcsönhatásához. Amikor inputként Arduino használatra pull-fel és pulldown-ellenállások bemeneti Arduino nem egy „felfüggesztett” állapotban (ebben az állapotban, akkor összegyűjti a külső beavatkozások és vegye önkényes értékek) és egy ismert állapot (0 vagy 1 ). A húzóerő ellenállások húzza a bemenetet a +5 V-os tápláláshoz, a lefelé irányuló ellenállások húzza a bemenetet a GND-hez. Ezenkívül a felhúzható és lefelé irányuló ellenállások biztosítják, hogy a gomb ne nyomja meg a +5 V-ot és a földelést, ha megnyomja. Kísérletünkben a gomb csatlakoztatásához egy lekapcsoló-ellenállást használunk. A bekötési rajz az 1. ábrán látható. 2.1.
Ábra. 2.1. A gomb és a LED kapcsolat diagramja
A gomb kikapcsolt állapotában a D2 bemenet 10 kΩ-os ellenállással húzódik a földre, amely korlátozza az áramot, és a bemeneti feszültség LOW értékre áll. A gomb megnyomásakor a bemeneti érintkező közvetlenül 5V-ra van csatlakoztatva. A legtöbb áram a zárt gombon keresztül a legkisebb ellenállás útján áramlik, és a bemeneten a MAGAS szintet generálják. Amikor megnyomja a gombot, bekapcsoljuk a LED-et, és amikor felengedi, akkor kialszik.
A vázlat kódját a 2.1.
1. A hosszú lábát a LED (anód) össze van kötve egy digitális terminál D10 Arduino, a másik (katód) - keresztül 220 ohm ellenállást a GND (lásd a 2.1 ábrát ..).
2. Egy bemenet gombok kapcsolódni +5 V, a másik - egy 10 kOhm-os ellenállás, hogy GND, a kimeneti gomb csatlakozik a bemeneti D2 Arduino (lásd a 2.1 ábrát ..).
3. Töltse le az Arduino tábla vázlatát a 2.1-es listáról.
4. Ha megnyomja a gombot, a LED világítani fog, amikor felengedik, ki kell tűnnie.
Bonyolultabbá teszi a feladatot - a gomb minden egyes megnyomásakor bekapcsoljuk a LED állapotát (be / ki). Töltse le az Arduino tábla vázlatát a 2.2-es listából.
A gomb lenyomása után a LED állapotának megváltoztatása szükséges. De ez nem mindig történik meg. Ennek a hibája a gombok ugrálása.
A gombok rugóérintkező rendszerű mechanikus eszközök. Amikor lenyomja a gombot, a jel nem csak az alacsonyról a magasra változik, hanem néhány milliszekundumban megváltoztatja az értéket egyikről a másikra, mielőtt az érintkezők kapcsolatba kerülnének, és a HIGH beállított.
A mikrokontroller rögzíti mindezeket a sajtókat, mivel a visszafordulás megkülönböztethetetlen a gomb tényleges megnyomásakor. A hibakeresési hatás programilag kiküszöbölhető. Az algoritmus a következő:
1. Mentjük a gomb előző állapotát és a gomb aktuális állapotát (amikor a LOW inicializálódik).
2. Olvassa el a gomb aktuális állapotát.
3. Ha a gomb pillanatnyi állapota eltér a gomb előző állapotától, várjon 5 ms-ot, mert a gomb megváltozott.
4. 5 ms elteltével elolvassa a gomb állapotát, és a gomb aktuális állapotaként használja.
5. Ha a gomb korábbi állapota LOW, és a HIGH gomb aktuális állapota, kapcsolja be a LED állapotát.
6. Állítsa be a gomb legutóbbi állapotát a gomb aktuális állapotához.
7. Visszatérés a 2. lépésre. Add hozzá a vázlat hibakeresési rutinához.
Megkapjuk a 2.3. Listán látható kódot.
A vázlatot betesszük az Arduino táblába, és ellenőrizzük a munkát. Most minden jól működik, a gomb minden egyes megnyomása megváltoztatja a LED állapotát.