Amikor az Arduino projektekkel, amelyek fizikai gombokkal vagy kapcsolókkal foglalkoznak, az egyik közös kihívás fejlesztője a Switch Pouncing kezelésével foglalkozik. A kapcsoló pattogó több nem szándékos triggerhez vezethet, ami szokatlan viselkedést okozhat a projektekben. Ebben a blogbejegyzésben belemerülünk arra, hogy mi a pattogó, miért problematikus, és felfedezzük a kapcsolók elszámolásának hatékony módszereit, biztosítva a megbízható és pontos bemeneti leolvasásokat az Arduino alkalmazásokban.
A kapcsoló visszapattanásának megértése
A mechanikus kapcsolókat, például a nyomógombokat széles körben használják az Arduino projektekben a felhasználói bemenetekhez. Ezek a kapcsolók azonban nem mindig készítik és törik a kapcsolatot, amikor megnyomják vagy elengedik. Ehelyett hajlamosak "ugrálni", a csatlakozás gyorsan elkészítésére és megszakítására, mielőtt letelepedtek. Ezt a jelenséget Switch pattogónak nevezik.
Amikor egy kapcsoló visszapattan, az Arduino több gyors sajtó vagy felszabadulásként értelmezheti azt, ami nem kívánt viselkedéshez vezet, mint például több LED -es villanás, szokatlan motoros mozgások vagy érzékelők szokatlan leolvasása. A debouning a gyors, nem szándékos jelek kiszűrésének folyamata annak biztosítása érdekében, hogy minden fizikai művelet megfeleljen egyetlen, tiszta bemeneti jelnek.
A kapcsolók elszámolásának módszerei
Két elsődleges módszer létezik a kapcsolók elszámolására: a hardver -debouning és a szoftverek debouningja. Minden módszernek megvannak az előnyei és a felhasználási esetek, és néha még az optimális eredmények elérése érdekében is kombinálják őket.
1.
A hardver kioldása magában foglalja a fizikai összetevők használatát a kapcsoló jel stabilizálására. A leggyakoribb hardveres megközelítések ellenállókat, kondenzátorokat vagy speciális elszámolási IC -ket használnak.
RC (ellenállás-kondenzátor)
Az RC áramkör ki tudja simítani a kapcsoló visszapattanása által okozott gyors átmeneteket. Így állíthatja be:
Ebben a beállításban az ellenállás és a kondenzátor sorozatban van csatlakoztatva a gombbal. A gomb megnyomásakor a kondenzátor tölti a feszültséget és megakadályozva a gyors ingadozásokat, amelyek hamis kiváltókat okozhatnak.
2.
A szoftver -debouncing -t az Arduino -kódban kezeli azáltal, hogy olyan logikát hajt végre, amely kiszűri a Switch Pouncing által okozott gyors változásokat. Ez a módszer rugalmas, és nem igényel további hardver összetevőket.
Példa a szoftverek kioldására
Íme egy egyszerű példa arra, hogyan lehet végrehajtani az Arduino -ban a szoftver -leírást:
Ebben a kódban:
- A program elolvassa a gomb aktuális állapotát.
- Ha az állam megváltozott az utolsó olvasathoz képest, akkor visszaállítja a debound időzítőt.
- Csak akkor, ha az állam hosszabb ideig marad konzisztens, mint a debound késleltetés (ebben az esetben 50 milliszekundum) elfogadja az új államot érvényesnek, és hatnak rajta.
3. Könyvtárak használata a kifogásoláshoz
A bonyolultabb projektekhez vagy a debouning egyszerűsítéséhez használhat dedikált könyvtárakat, mint például a Ugrál könyvtár. A könyvtárak kezelik a debound logikát, lehetővé téve a projekt más aspektusaira összpontosítást.
Példa a Bounce Library használatával
Először telepítse a Bounce könyvtárat az Arduino Könyvtárkezelőn keresztül. Ezután használja a következő kódot:
Ez a megközelítés leegyszerűsíti a debound logikát, így a kód tisztább és karbantarthatóbbá válik.
A megfelelő leírási módszer kiválasztása
A hardver és a szoftver -debouning közötti választás az Ön egyedi igényeitől és korlátaitól függ:
- HARDVER KEZELÉS: Ideális olyan projektekhez, ahol minimalizálni szeretné a szoftvert, vagy ha több kapcsolóval dolgozik. Ez biztosítja, hogy a jelek tisztaak legyenek, mielőtt elérik a mikrovezérlőt.
- Szoftver -debouning: Rugalmasabb és költséghatékonyabb, különösen az egyszerű projektek esetében, amelyek néhány gombbal vannak. Ez lehetővé teszi, hogy a debound időzítését a kódon keresztül könnyen beállítsa.
- Könyvtár-alapú elszámolás: A legjobb a komplex projektekhez, vagy ha időt takaríthat meg, és kerülje a kerék feltalálását. A könyvtárak robusztus és tesztelt elszámolási megoldásokat kínálnak.
A kapcsolók kifogásának legjobb gyakorlatai
- Használjon húzó- vagy legördülő ellenállást: Győződjön meg arról, hogy a gomb bemenetei ismert állapotban vannak-e a pull-up vagy a legördülő ellenállások használatával. Ez megakadályozza a lebegő bemeneteket, a zajcsökkentő zajt és a hamis kiváltókat.
- Konzisztens elszámolási időzítés: Akár hardver, akár szoftver -leírást használ, tartson fenn következetes elszámolási intervallumokat, hogy biztosítsa a megbízható teljesítményt a különböző gombok és feltételek között.
- Ha szükséges, kombináljon módszereket: A nagyon érzékeny alkalmazások esetén fontolja meg a hardver és a szoftver kioldásának kombinálását a legnagyobb megbízhatóság elérése érdekében.
Következtetés
A debouncing kapcsolók döntő lépés a megbízható Arduino projektek kidolgozásában, amelyek magukban foglalják a felhasználói bemeneteket. Függetlenül attól, hogy hardvermegoldásokat, szoftver algoritmusokat választ, vagy kihasználja a meglévő könyvtárakat, a hatékony decound mechanizmusok bevezetése megmenti Önt a hamis kiváltókkal és a szokatlan viselkedéssel való kapcsolattartás frusztrációjától. Ha megérti a kapcsoló visszapattanásának elveit és a megfelelő leírási technikák alkalmazását, javíthatja az Arduino alkotásainak teljesítményét és megbízhatóságát.