Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Un cop heu fet funcionar el polsador, sovint voleu fer alguna acció segons quantes vegades es prem el botó. Per fer-ho, heu de saber quan el botó canvia d'estat de desactivat a activat i comptar quantes vegades es produeix aquest canvi d'estat. Això s’anomena detecció de canvis d’estat o detecció de vores. En aquest tutorial aprenem a comprovar el canvi d'estat, enviem un missatge al monitor sèrie amb la informació pertinent i comptem quatre canvis d'estat per encendre i apagar un LED.
Pas 1: components necessaris:
1. Arduino UNO
2. Taula de pa
3. Polsador
4. Resistència
5. Cables de pont
Pas 2: diagrama del circuit:
Connecteu tres cables a la placa. El primer va des d’una pota del polsador a través d’una resistència desplegable (aquí 10k ohm) fins a terra. El segon va des de la pota corresponent del polsador fins a l’alimentació de 5 volts. El tercer es connecta a un pin d'E / S digital (aquí el pin 2) que llegeix l'estat del botó.
Quan el polsador està obert (sense prémer) no hi ha connexió entre les dues potes del polsador, de manera que el pin es connecta a terra (a través de la resistència desplegable) i llegim un BAIX. Quan es tanca el botó (es prem), fa una connexió entre les seves dues potes, connectant el pin al voltatge, de manera que llegim un HIGH. (El pin encara està connectat a terra, però la resistència resisteix el flux de corrent, de manera que el camí de menor resistència és de + 5 V.) Si desconnecteu el pin d'E / S digital de tot, el LED pot parpellejar erràticament. Això es deu al fet que l'entrada és "flotant", és a dir, no està connectada ni a tensió ni a terra. Tornarà més o menys aleatòriament ALTA o BAIXA. És per això que necessiteu una resistència desplegable al circuit.
Pas 3: Codi:
Per a projectes més interessants, poseu-vos en contacte amb mi a: Youtube:
Pàgina de Facebook:
Instagram:
botó int = 2;
int a, i = 0; configuració nul·la () {Serial.begin (9600); pinMode (botó, INPUT); } void loop () {a = digitalRead (botó); if (a == 1) {i = i + 1; Serial.print ("Comptador ="); Serial.println (i); } else {i = 0; }}