Supervisió de l'estat d'un commutador (sèrie de lectura digital) - Fonaments bàsics d'Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





Aquest element bàsic d’Arduino tracta del mètode d’implementació d’un codi mitjançant el qual es podria llegir o controlar l’estat ON o OFF d’un polsador extern a Arduino.

Lectura en sèrie digital

Aquí aprenem a través d’un exemple com controlar l’estat d’un commutador mitjançant la comunicació en sèrie a través del vostre Arduino i el vostre PC mitjançant USB.



Per sobre de la vostra placa Arduino, necessitareu els elements fonamentals següents:

Maquinari

Un interruptor, un botó o un interruptor momentanis



Resistència de 10k, 1/4 watt ohm

taulell de pa
enllaços de connexió o ponts.

Funcionament del circuit

L'operació es pot fer amb els passos següents:

Agafeu 3 trossos de cables jumper i enganxeu-los amb la vostra placa Arduino. Dos dels cables, vermells i negres, van a les dues llargues files verticals del costat de la placa que es converteixen en els cables de subministrament de la placa cal 5V CC a la placa.

El tercer cable s’utilitza per connectar el pin digital 2 a un dels cables de l’interruptor push-to-ON.

Aquest cable particular del botó també enllaça amb una resistència desplegable de 10 k al carril d'alimentació negatiu o a terra. L'altre cable lliure de l'interruptor està relacionat amb el positiu d'alimentació de 5 volts.

Amb les connexions anteriors realitzades, l'interruptor commuta o realitza una doble acció al circuit quan se li dóna una empenta.

Normalment, quan l’interruptor es troba en una posició desconnectada, els seus dos cables es mantenen aïllats, de manera que el pin que està connectat amb el terra a través de la resistència desplegable fa que el nivell LOW o 0 sigui lògic.

En la situació de pressió, el commutador executa momentàniament un pont dels seus dos cables, de manera que els seus cables estan sotmesos a + 5 volts, donant un nivell ALT o lògic 1 a través d'ells.

Aïllar els pinouts digitals d'E / S de la resta de coses, podria obligar el LED a fer-se malbé i causar parpelleigs erràtics. Això es deu al fet que l'entrada no es representa a res, ni es manté en una posició 'penjant', és a dir, que no està designada per a cap lògica definida, ni alta ni baixa (+ 5V o 0V), és per això que emprem resistència desplegable amb l’interruptor.

Esquema

Comprensió del codi

Al programa següent següent, comencem amb la comunicació serial dins de la funció de configuració a una velocitat de 9600 bits de dades per segon, que s’inicia entre la placa Arduino i l’ordinador connectat: Serial.begin (9600)

Al següent pas, activem el pin digital 2, el pin que seria el responsable de la sortida amb l’interruptor push com a entrada: pinMode (2, INPUT) Això completa la nostra configuració, ara naveguem al bucle principal del nostre codi .

En prémer el botó, es permet que 5 volts passin pel nostre circuit, mentre que el pin d’entrada s’uneix amb el sòl a través de la resistència de 10 quilos quan es troba en un estat no premut.

L'anterior és el que anomenem una entrada digital, que es refereix a una condició en què l'interruptor només pot estar en un estat concret, ja sigui en estat on (acceptat per l'Arduino com a '1' o LOGIC HIGH) o en estat apagat (visualitzat) per l'Arduino com a '0', o LOGIC LOW), sense cap altre estat indefinit entre els dos.

L'acció fonamental que hem d'executar al bucle principal del programa és aplicar una variable per mantenir la informació al seu lloc que s'ha enviat mitjançant el botó de pressió.

Com s'ha comentat anteriorment, amb els senyals en forma de '1' o '0', aquí utilitzem un tipus de dades int. Podem anomenar aquesta variable com a sensorValue i corregir-la perquè correspongui a tot el que es llegeix al pin digital 2. Totes es poden aconseguir mitjançant una línia de codi:

int sensorValue = digitalRead (2) Un cop l'Arduino ha llegit l'entrada, torneu a imprimir-la a l'ordinador en forma de valor decimal.

Això es pot implementar amb l'ajut de l'ordre Serial.println () a la línia final del codi: Serial.println (sensorValue)

Després d'això, sempre que s'iniciï el monitor sèrie al domini Arduino, assistiríem a una cadena de '0 durant la posició oberta del polsador i a les cadenes' 1 en cas que el botó es mantingui tancat.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Anterior: Controlador de flux d’aigua personalitzat amb circuit de temporitzador Següent: Conversió d'analògic a digital (sèrie de lectura analògica): conceptes bàsics d'Arduino