Pany de combinació inusual a Arduino

Arduino és el millor sistema per copiar qualsevol equip. La majoria d’idees no haurien estat possibles sense ella. Fa temps que hi ha una idea com aquesta: crear un pany de combinació especial per a arduino. Per obrir-lo, cal que manteniu premuda una tecla determinada. En aquest cas, el bloqueig no s'ha d'obrir, encara que coneguis el botó dret. Per obrir-lo, és necessari suportar determinats intervals mitjançant la memòria muscular. Aquest delicte no podrà cometre. Però aquesta és només una teoria.

Per muntar-lo cal utilitzar un dispositiu especial de polsos rectangulars, així com diversos comptadors i un munt. Però el dispositiu acabat tindria grans dimensions generals i seria inconvenient el seu ús. Per regla general, aquests pensaments assalten. El primer pas per a la realització d’un somni va ser la creació d’un programa per a Arduino. Servirà com a pany de combinació. Per obrir-lo, haureu de prémer no una tecla, sinó diverses, i fer-ho simultàniament. L’esquema finalitzat s’assembla així:

Pany combinat

La qualitat de la imatge no és la millor, però la connexió es fa a terra, D3, D5, D7, D9 i D11.

A continuació es presenta el codi:

const int ina = 3;







const int inb = 5;







const int inc = 9;







const int ledPin = 13;







int i = 1000;







byte a = 0;







byte b = 0;







byte c = 0;







byte d = 0;







temps no signat = 0; // No oblideu tot el que pren un valor millis ()







temporal sense signar = 0; // emmagatzemar en temps sense signar







byte keya [] = {0, 0, 0, 0, 0, 0, 0, 0}; // codis de fet







byte keyb [] = {1, 1, 1, 1, 0, 1, 0, 0};







byte keyc [] = {1, 0, 1, 0, 1, 1, 1, 0};







byte k = 0;







 







void setup () {







pinMode (ina, INPUT_PULLUP); // 3 entrades connectades als botons







pinMode (inb, INPUT_PULLUP);







pinMode (inc, INPUT_PULLUP);







pinMode (ledPin, OUTPUT); // LED incorporat al 13è pin







pinMode (7, OUTPUT);







pinMode (11, SORTIDA);







digitalWrite (7, BAIX); // substituir la terra







digitalWrite (11, BAIX);







temps = millis (); // necessitava comptar el temps







}







 







void blinktwice () {// LED intermitent doble







digitalWrite (ledPin, HIGH);







retard (100);







digitalWrite (ledPin, LOW);







retard (100);







digitalWrite (ledPin, HIGH);







retard (100);







digitalWrite (ledPin, LOW);







retard (200);







}







 







void loop () {







if (k == 0) {







blinktwice (); // sol·licitud de codi







}







if (k == 8) {







digitalWrite (ledPin, HIGH);







retard (3000);







k és 0;







}







a = digitalRead (ina); // llegir els nivells de senyal dels botons: prement / no premut







b = digitalRead (inb);







c = digitalRead (inc);







retard (100); // següent si: protecció contra falsos positius, no podeu utilitzar







if ((digitalRead (ina) == a) && (digitalRead (inb) == b) && (digitalRead (inc) == c)) {







if (a == keya [k]) {







if (b == keyb [k]) {







if (c == keyc [k]) {







 







k ++;







}







}







}







}







if (k == 1) {







if (d == 0) {







temps = millis ();







d ++;







}







}







temp = millis ();







temp = temp - temps;







if (temp> 10000) {







k és 0;







d és 0;







temps = millis ();







}







}




Per evitar preguntes innecessàries sobre el codi, s’han d’aclarir alguns punts. La funció de configuració s'utilitza per assignar ports. La següent funció és Input_Pullup, que és necessària per augmentar la tensió del pin en 5 V. Això es fa mitjançant una resistència. A causa d'això, no es produiran diversos circuits curts. Per comoditat, es recomana fer servir la funció de parpelleig. En general, quan creeu diversos programes, heu de provar altres funcions.

Un cop assignades les funcions, el senyal es llegeix des dels ports. Si es prem el botó, s'indicarà amb el número 1, i si no - 2. A continuació, es farà una anàlisi de tots els valors. Per exemple, hi va haver una combinació de 0,1,1. Això vol dir que es prem la primera tecla i les altres dues no. Si tots els valors són certs, la condició 8 també és certa. Així ho demostra un LED il·luminat al panell frontal. A continuació, heu d’introduir un codi específic que serveixi per obrir la porta.

Els últims elements de codi s'utilitzen per restablir els valors del comptador. Aquesta funció es realitza si han passat més de 10 segons des de la darrera premsa de tecla.Sense aquest codi, podríeu passar per totes les opcions possibles, tot i que n’hi ha moltes. Després de crear aquest dispositiu, heu de provar-lo.

 

(3 vots)
Carregant ...

Afegeix un comentari