Capítulo 4. Entradas digitales

Imágenes

Códigos

Encendido de un led mediante un pulsador

//Declaramos las variables led y pulsador asociadas
//a las patillas 7 y 8
int led=7;
int pulsador=8;
//Función setup
void setup() {
//Indicamos que la patilla 7 será una salida y la 8 una entrada
pinMode(led,OUTPUT);
pinMode(pulsador,INPUT);
}
//Función loop
void loop() {
//Comprobamos si hay un '1' en la patilla 8
if (digitalRead(pulsador)==HIGH){
//Si se cumple dicha condición, encendemos el led
digitalWrite(led,HIGH);
}
//Si no se cumple, apagamos el led
else{digitalWrite(led,LOW);
}
}

Encendido prolongado de un led mediante pulsador

int led=7;
int pulsador=8;
//Declaramos las dos nuevas variables, asumiendo que de momento son falsas
bool pulsado=false;
bool encendido=false;
void setup() {
pinMode(led,OUTPUT);
pinMode(pulsador,INPUT);
//empezamos el código con el led apagado
digitalWrite(led,LOW);
}
void loop() {
//Si estamos pulsando
if (digitalRead(pulsador)==HIGH){
//Sabemos que estamos pulsando; comprobamos el estado anterior
if (pulsado==false){
//Estamos pulsando y anteriormente no estábamos pulsando…
//¡Cambio de estado del pulsador!
pulsado=true;
//Ya sabemos que el pulsador ha sido oprimido por primera vez.
//Pasamos a cambiar el estado de la variable encendido
if(encendido==false){
encendido=true;
}else{
encendido=false;
}
}
}
//No estamos pulsando. El estado de pulsado es false
else{
pulsado=false;
}
//Escribimos en led el estado (true corresponde a 1 y viceversa).
digitalWrite(led,encendido);
}

Pulsador con memoria (recuerda si se había encendido o apagado)

int led=7;
int pulsador=8;
void setup() {
pinMode(led,OUTPUT);
pinMode(pulsador,INPUT);
}
void loop() {
if (digitalRead(pulsador)==HIGH){
digitalWrite(led,HIGH);
//Establecemos un retraso de 5000 ms
delay(5000);
}
else{
digitalWrite(led,LOW);
}
}