Hogyan vezéreljünk egy működtetőt billentyűzettel

Hogyan vezéreljünk egy működtetőt billentyűzettel

Josh Nigh
Josh Nigh
PA Engineer

Projektjeinknek néha további biztonságra van szükségük. Ez számos különböző alkalmazásban előfordulhat, például ajtózár mechanizmusoknál, gépek nem biztonságos vagy jogosulatlan használatának megakadályozásánál, vagy akár réspiaci szabadulószobák kellékeinek beszerzésénél. Ebben a cikkben bemutatjuk a billentyűzetes működtető összeszerelését, és azt, hogyan védheti jelszóval lineáris működtetőjének működését.

Íme, amit használni fogunk:

A működtető bekötése

Először is a bekötéssel kezdjük. Ahhoz, hogy ki tudjuk tolni és be tudjuk húzni a működtetőt, a 2 csatornás relé modulunk mindkét csatornáját használnunk kell. Így, amikor Első váltó aktív, az áram az egyik irányba folyik, és amikor Második relé aktív, az áram az ellenkező irányba folyik. Ha egyik vagy mindkét relé sem aktív, akkor nem folyik áram a működtetőhöz. Ennek megvalósításához a következő csatlakozásokat kell elvégeznünk.

Relék a működtetőhöz és a tápegységhez

  • +12V az NC1-hez (alapértelmezetten zárt csatlakozó az egyes reléjén) (fehér vezeték).
  • -12V az NO1-hez (alapértelmezetten nyitott csatlakozó az egyes reléjén) (fekete vezeték).
  • NC1 - NC2 (kék áthidaló vezeték).
  • NO1 - NO2 (zöld áthidaló vezeték).
  • COMMON1 a működtetőhöz (barna működtető vezeték).
  • COMMON2 a működtetőhöz (kék működtető vezeték).

Arduino a billentyűzethez és a relé modulhoz

  • Csatlakoztasd a billentyűzet 1-8-as lábait az Arduino 2-9-es lábaihoz (ebben a sorrendben).
  • Arduino 10-es csatlakozó az IN1-hez a relé modulon.
  • Arduino 11-es csatlakozó az IN2-höz a relé modulon.
  • Arduino 5V-ról VCC-re egy relé modulon.
  • Arduino GND a GND-hez a relé modulon.
  • Zümmögő anód (hosszabb vezeték) a 12-es érintkezőhöz (opcionális).
  • Zümmögő katód (rövidebb vezeték) a GND-hez (opcionális).
    Arduino to the Keypad and the Relay Module

     

    A projekt kódolása

    Most, hogy az összes csatlakozást elvégeztük, készen állunk a kódra. A kód célja a billentyűzet bemeneteinek kiolvasása, a megfelelő 5 számjegyű bemenet megkeresése és a reléink ennek megfelelő működtetése. Van kód egy opcionális zümmerhez is, amely visszajelzést ad. Ha nem szeretné használni a zümmert, egyszerűen nem csatlakoztathatja, és hagyhatja a kódot úgy, ahogy van. Ha a zümmer csatlakozóját valami másra kell használnia, törölje vagy kommentelje ki az összes, a zümmerhez vagy a „sípoló” funkciókhoz használt kódot.

    Az alábbi kódban szinte minden sorban találsz megjegyzéseket (világosszürke szöveg a „//” után). Ezek a megjegyzések leírják, hogy mi történik a vázlatban, valamint a lehetséges módosításokat. A részletesebb magyarázat érdekében néhány fontos szakaszra is bontunk.

    Használd Arduino mikrovezérlőinket a működtetőd korlátlan vezérlési lehetőségeinek eléréséhez!

    Beállítási kód

    A beállító kódunkban a zümmer és a relé lábait kimenetként fogjuk definiálni. A zümmer LOW, a relék pedig HIGH jellel indulnak. Ez azt eredményezi, hogy mindegyik inaktív lesz, amikor először bekapcsoljuk az Arduinót. Ezenkívül egyszer lefuttatjuk a „retract()” függvényt, hogy az Arduino tudja a működtető helyes állapotát.

     void setup() //runs once on startup
    {
    digitalWrite(buzzer, LOW);//deactivates buzzer
    digitalWrite(relay1,HIGH);//deactivates relay1
    digitalWrite(relay2,HIGH);//deactivates relay2
    for(int i=10;i<14;i++)
    { pinMode(i,OUTPUT);//sets pins 10 - 13 as outputs
    } Serial.begin(9600);//Starts the serial monitor at 9600 baud rate (for debugging only)
    retract();//retracts the actuator on startup if it is not already. comment this out if you do not want the actuator to retract on startup
    Serial.println("READY");//lets us know the serial monitor is running
    }
    

    Billentyűzet kódja

    Ehhez a vázlathoz a Keypad.h könyvtárat használjuk. Ez a könyvtár tartalmazza azokat a függvényeket, amelyeket a billentyűzetről érkező bemenetek fogadására használunk. A könyvtár használatához létre kell hoznunk egy kétdimenziós tömböt a billentyűzet karaktereinek leképezéséhez. Ezt úgy érhetjük el, hogy először meghatározzuk a billentyűzet sorainak és oszlopainak számát. Ezután elkészítjük a tömböt a billentyűzeten található minden egyes karakterrel. A billentyűzetünknek négy sora, négy oszlopa és nyolc kimeneti lába van. Minden sorhoz és minden oszlophoz egy láb tartozik. Ezt a kódunkban egy „sorcsapok” tömb, amely a sorkivezetésekhez csatlakoztatott digitális bemeneteket és egy „colPins” tömb, amely az oszloplábakhoz csatlakoztatott digitális bemeneteket tartalmazza. Amikor megnyomunk egy billentyűt, az egyik sorlábat az egyik oszloplábbal összekötjük. Például, ha megnyomjuk a 2-es gombot, zárt áramkört hozunk létre az egyes sorláb és a második oszlopláb között.

     char customKey; //characters input by pressing keypad
    const byte ROWS = 4; //four rows
    const byte COLS = 4; //four columns char keys[ROWS][COLS] = { //layout your "keymap" here {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}
    };
    byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
    byte colPins[COLS] = {6, 7, 8, 9}; //connect to the column pinouts of the keypad
    Keypad customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); //initialize an instance of class NewKeypad 

    Jelszókód

    Ebben a biztonságos lineáris aktuátorvezérlésre vonatkozó példában a jelszónk 5 számjegyű, tehát a következőt definiáljuk: „Jelszó_hossza” értékét „6”-ra. Ez azért van, mert egy plusz szóközre van szükségünk egy üres karakterhez. Ha módosítani szeretné a jelszó hosszát, egyszerűen módosítsa a 6-ost egy olyan számra, amely eggyel nagyobb a kívánt kódhossznál. Ezután módosítsa a „Jelszó” bármilyen karakterre, amit szeretnél (alapértelmezés szerint „12345”-re van állítva).

    Az egyes lenyomott billentyűkhöz tartozó karakter az „I” mappában tárolódik.bemenet” tömb. Amint a tömb 5 karaktert tartalmaz, összehasonlítja a „Bemenet„és”Jelszó”, hogy ellenőrizzük, helyes-e a jelszó. Ha az értékek egyenlőek, a kódunk utasítja az Arduinót, hogy húzza ki vagy húzza vissza az aktuátort (az aktuátor aktuális állapotától függően). Ha a jelszó helytelen, a berregő tűje gyorsan háromszor magasra, majd alacsonyra kapcsol. Mindkét esetben a „clearInput()” függvényt ezután meghívjuk, hogy törölje az Input tömböt, és helyet csináljon egy új bejegyzésnek.

    Kód kiterjesztése és visszavonása

    Két nagyon hasonló függvényünk van ebben a kódban.void extend()„és”void retract()". Meghívásakor a void extend() függvény az egyes relé értékét alacsonyra írja, aktívvá téve azt. Ez zár egy áramkört, és pozitív feszültséget ad a működtetőnek. A relé a „konstans int kiterjesztésiIdő” (alapértelmezés szerint 25 000 milliszekundumra van beállítva). A void retract() függvény pontosan ugyanezt teszi, azzal a különbséggel, hogy a második relét használja a feszültség megfordításához az egyes relé helyett.

    void extend()//extend the actuator
    { longBeep(); Serial.println("EXTENDING..."); digitalWrite(relay2,HIGH);//makes sure relay2 is not active digitalWrite(relay1,LOW);//activates relay1 delay(extendTime); digitalWrite(relay1,HIGH);//deactivates relay1 Serial.println("DONE EXTENDING"); extended = true; //tells the arduino that the actuator is extended longBeep();
    } void retract()//extend the actuator
    { longBeep(); Serial.println("RETRACTING..."); digitalWrite(relay1,HIGH);//makes sure relay1 is not active digitalWrite(relay2,LOW);//activates relay2 delay(retractTime); digitalWrite(relay2,HIGH);//deactivates relay2 Serial.println("RETRACTING DONE"); extended = false; //tells the arduino that the actuator is retracted longBeep();
    }

    Befejező simítások

    Miután elvégeztük az összes csatlakozást és feltöltöttük a kódunkat, létre kell hoznunk egy működő, jelszóval védett aktuátorvezérlő rendszert. Ha problémába ütközünk az első beállításkor, próbáljuk ki az Arduino IDE soros monitor eszközét. Ez rendkívül hasznos lehet annak megállapításában, hogy a problémákat a kód, a kábelezés vagy a hibás alkatrészek okozzák-e.

    Ez a kód a jelszó megváltoztatásán túl is módosítható. Érdemes lehet megfontolni a relépanel cseréjét egy MegaMoto árnyékolásra, hogy sebességszabályozást lehessen végezni, vagy egy Hall-effektus visszacsatolással rendelkező aktuátor használatát a pozíciószabályozáshoz.

    Reméljük, hogy hasznosnak találta ezt a cikket! Ha bármilyen kérdése van ezzel, bármilyen más távirányítású lineáris aktuátorral kapcsolatban, vagy meg szeretné osztani velünk a projektjét, kérjük, forduljon hozzánk bizalommal. hívjon vagy írjon nekünk.