C/C++ en Arduino: casos con switch fallet (3 / 4 steg)
Steg 3: Código
El código es bastante directo. Queremos que cada vez que se presione el botón, una variabel internationel que la vamos en llamar "botonState" jasminris de valor. del estado 0 al 1, al 2 y nuevamente al 0. Para lograr eso, vamos en utilizar un operador matemática bastante utilizado sv programación, que es el operador módulo "%"
La operación módulo en una computadora lo que hace es retornar el residuo de la división de enteros. Dados dos operandos, sv dividendo en y el divisor n, en % n, es el resíduo de la division, llamada euclidiana por ser división de dos números enteros, de en entre Nilsson. ASí por ejemplo 0% 3 = 0, y 1% 3 = 1, 2 %3 = 2, 3 %3 = 0, 4 %3 = 1, y así sucesivamente, vean como el resultado va circulando entre 0,1 y 2, para regresar al 0 nuevamente. Este operador es muy útil en el código, donde se quieran comportamientos circulares de variabler. Sv Wikipedia hö una buena explicación de esto.
En la línea 1, creamos una variabel globala, de tipo enterokapslar, que la llamamos "botonState". En esta variabel almacenaremos el cambio de estado, cada vez que se aprieta el botón. Sv las líneas de 4 en 7 simplemente inicializamos los pines. Noten como el pin 8 indicamos que es INPUT_PULLUP. ACÁ pueden ver más sobre los tallar en Arduino.
El código sv las líneas 10 a 14:
om (digitalRead(8) == 0) {
El operador % significa modulo
botonState = (botonState + 1) % 3.
Delay(200);
}
ACÁ es donde utilizamos la operación módulo. Noten como le agregamos un dröjsmål para que el cambio ingen havet tan rápido. Primero leemos si el botón está presionado, es decir cuando la lectura del pin es igual 0. SI es así, entonces actualizamos el estado de la variabeln "botonState", con la expresión:
botonState = (botonState + 1) % 3.
Lo que hace esta expresión es sumarle 1 al lo que ya estaba en "botonState" y luego aplicar la función módulo, de ens forma la variabel puede tener los varlores 0,1,2 y da vueltas en esos números. Ahora para ange cual ledde prender, utilizamos el "estado" en el que está "botonState", en la siguiente línea de código (líneas 15 a 31):
växel (botonState) {
fall 0:
digitalWrite (2, hög).
digitalWrite (3, låg).
digitalWrite (4, låg).
bryta;
fall 1:
digitalWrite (2, låg).
digitalWrite (3, hög).
digitalWrite (4, låg).
bryta;
fall 2:
digitalWrite (2, låg).
digitalWrite (3, låg).
digitalWrite (4, hög).
bryta;
}
Como ven, si "botonState" es igual a 1, entonces prende el ledde conectado al pin2, si es igual 0, y el resto los apaga. SI es igual a 1, etonces prende el ledde del pin 3 y el resto los apaga, y así sucesivamente. Listo!