C / C ++ En Arduino: Casos Con Switch Case

È possibile istruire aprendoti a utilizzare il comando switch case. Construiremos un sem [dopo che cambia la luz apretando un botón. Cuando tenemos muchas opciones podríamos llenar de condicionales if ... else, pero el código se hace little leggible and infeiciente. Questo è il modo in cui i casos sono genericamente utili come il tipo di estrazione per i condicionales. La sintaxis es:

 switch (var) {caso 1: // ejecuta algo cuando var es 1 break; // sale del switch case 2: // ejecuta algo cuando var es 2 break; // sale del switch default: // ejecuta algo en cualquier otro caso (default es opcional) break; // sale del switch} 

La variabile var debe ser un entero (int). Dato che la variabile è considerata un valore di 1, conferma la fine del caso "" 1: ", luego de eso el" break "è garantito dalla vendita di" siwtch ". Si no colocamos el "break" va una verifica continua dei casi e perdería del tuscpo buscando los casos que y sabemos no corrispondenti. Estremamente istruibile haremos un semaforo con 3 casos.

Step 1: Materiales

Ocupamos:

  1. Arduino UNO
  2. Leds rojo, amarillo y verde
  3. Resistencias de 330 Ohmn
  4. botón
  5. cavi
  6. breadboard

Passaggio 2: Conexiones

botón

Il bot lo colocamos e il breadboard nel centro como se ve en la foto. Conectamos una pata al GND y otra al pin 8. In questo caso è possibile utilizzare una resistenza di pullup (verissimo istruibile per i dettagli) per il controllo dell'estremità del boton (è quieto decidere se è presente o no)

led

Per quanto riguarda i led hay que usar una resistenza di 330 Ohmns, para cada uno. Inestimabile puede aprender un poco più di los leds y como se conectan. Comunica la foto in foto dei LED e della pata negativa e della resistenza e dell'esterno di GND. Cada ha portato con sé un pin diverso. In ogni caso conectamos el verde al 2, el amarillo al 3 y el rojo al 4.

Step 3: Código

El código es bastante directo. Queremos que cada vez que se presione el botón, una variabile interna che va alla volta con il "botonState" cambie de valor. del periodo 0 al 1, al 2 y nuevamente al 0. Per accedere a questo, è necessario utilizzare un operatore matematico bastante utilizzando la programmazione, quindi il comando "%"

L'operazione módulo in una computadora la coda è rievocata dal residuo della divisione delle imprese. Dados dos operandos, in dividendo con il divisore n, a% n, è il resíduo della divisione, ha annunciato l'euclidiana per la divisione di dos números enteros, di un'impresa . 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, per regresar al 0 nuevamente. è un vero operatore in tutto il mondo, grazie a comportamenti circolari più variabili. En Wikipedia ha buena explicación de esto.

In linea 1, creamos una variabile globale, di tipo entero, con il nome "botonState". In ogni caso, è possibile modificare il cambio di stato, così come è stato aggiunto. In las 4 de 7 simplemente inicializamos los pines. Nota come il pin 8 indica INPUT_PULLUP. Puoi anche vedere i pini in Arduino.

El código en las líneas 10 a 14:

if (digitalRead (8) == 0) {
// el operador% significa modulo botonState = (botonState + 1)% 3; ritardo (200); }

Grazie a questa è stata utilizzata l'operazione. Noten como le agregamos un delay for que cambio non sea tan rápido. In primo luogo, il botón è stato creato, è stato decretato con la lezione del pin esigual a 0. Si as así, entonces actualizamos the estado of the variabile "botonState", with the expresión:

botonState = (botonState + 1)% 3;

Questa è la prima espressione dell'esempio 1 alla data della tua visita in "BotonState" e ora aplicar the función módulo, de esa forma the variabile puede tener los varlores 0, 1, 2 y da vueltas en esos números. Ahora per indicativo principale prender, utilizamos el "estado" en the que está "botonState", in the siguiente línea de código (líneas 15 a 31):

switch (botonState) {
caso 0: digitalWrite (2, HIGH); digitalWrite (3, LOW); digitalWrite (4, LOW); rompere; caso 1: digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); rompere; caso 2: digitalWrite (2, LOW); digitalWrite (3, LOW); digitalWrite (4, HIGH); rompere; }

Como ven, si "botonState" è originale a 1, entonces prende il led collegato al pin2, è uguale a 0, y el resto los apaga. Si tratta di un 1, che prende il led del pin 3 e il resto dell'apaga, così come sucesivamente. Listo!

allegati

  • Download IntroC_Switch.ino

Passaggio 4: Funcionando

Cargar el código. Ahora, semplicemente, aprieten il botón e la luz cambiará acordemente. È possibile che siano state modificate altre opzioni al di fuori del tipo di transazione aziendale. En este otro instructable (REF), per esempio, acomodamos el código usando funzioni, per hacer un semáforo automático.

Articoli Correlati