Sunteți pe pagina 1din 3

Arduino Digital: Deteccin de cambio de estado

(deteccin de bordes)

Una vez que se tiene un pulsador funcionando, a menudo se quiere hacer algo de accin basado en las veces que se
pulsa el botn. Para ello, es necesario saber que el botn cambia el estado de apagado a encendido, y contar el nmero
de veces que ocurre este cambio de estado. Esto se conoce como deteccin de cambio de estado o deteccin de bordes.
El IDE del Arduino nos proporciona una herramienta que nos permite enviar y visualizar los datos que se manejan a
travs del puerto Serial. Dicha herramienta se conoce como Monitor Serial y se puede encontrar en el men de
herramientas, en la opcin Monitor Serial. En el presente proyecto se usara dicha herramienta para visualizar nuestros
datos.

Hardware Requerido

Tarjeta Arduino
Pulsador
Resistencia (10K ohm)
Protoboard
LED
Resistencia (220 ohm)

Circuito

Conectar los tres cables a la tarjeta Arduino. Los dos primeros cables, rojo y negro, se conectan hacia las filas verticales
en un lado del protoboard para proporcionar una fuente de 5 voltios y tierra. El tercer cable se conecta desde el pin
digital 2 hacia una pata del pulsador. La otra pata del pulsador se conecta hacia hacia la fuente de 5 voltios y la
resistencia, donde esta ultima se conecta a tierra. Al presionar el pulsador se conectan los dos puntos. Cuando el
pulsador esta abierto (no presionado) no hay conexin entre sus 2 patas. As que el pin es conectado hacia tierra y lo
lee como LOW, o 0. Cuando el pulsador esta cerrado (presionado), esto crea una conexin entre sus dos patas,
conectando el pin a 5 voltios, as que el pin lo lee como HIGH, o 1.
Tambin conectamos una resistencia de 220-ohm al pin 13. Despus conectamos la pata larga de un LED (la pata
positiva, llamada nodo) a la resistencia. Mientras que la pata corta (la pata negativa, llamada ctodo) a tierra.

Esquemtico

Cdigo:
/*
Deteccin de cambio de estado (deteccin de bordes)
A menudo, no es necesario conocer el estado de una entrada digital todo el
tiempo, pero usted slo tiene que saber cuando la entrada cambia de un
estado a otro. Por ejemplo, usted quiere saber cuando un botn pasa de OFF a
ON. Esto se conoce como deteccin de cambio de estado, o la deteccin de
bordes.

Este ejemplo muestra como detectar cuando un pulsador cambia de OFF a ON y


de OFF a ON
*/

// las constantes no cambiaran su valor.


const int buttonPin = 2; // el nmero del pin, entrada del pulsador
const int ledPin = 13; // el nmero del pin, salida al LED

// declaracion de variables
int buttonPushCounter = 0; // contador para el numero de pulsadas
int buttonState = 0; // estado actual del pulsador
int lastButtonState = 0; // estado anterior del pulsador

void setup() {
// inicializa el pin 2 como pin de entrada
pinMode(buttonPin, INPUT);
// inicializa el pin 13 como pin de salida
pinMode(ledPin, OUTPUT);
// inicializa la comunicacin serial
Serial.begin(9600);
}

void loop() {
// lee el estado del pulsador
buttonState = digitalRead(buttonPin);

// compara el estado del pulsador con el estado previo del mismo


if (buttonState != lastButtonState) {
// si el estado cambio, el contador incrementa
if (buttonState == HIGH) {
// si el estado actual es HIGH entonces el pulsador

// cambio de OFF a ON
buttonPushCounter++;
Serial.println("on");
Serial.print("numero de pulsadores presionados: ");
Serial.println(buttonPushCounter);
}
else {
// si el estado actual del pulsador es LOW entonces el pulsador

// cambio de ON a OFF
Serial.println("off");
}
}
// guarda el estado actual como el ultimo estado,
lastButtonState = buttonState;

// el LED se enciende cada cuatro pulsadas


if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}

S-ar putea să vă placă și