En C y C++ Arduino: casos con interruptor de caja (3 / 4 paso)

Paso 3: Código

El código es bastante directo. Queremos cada vez se presione el botón, una variable interna la vamos a llamar "botonState" cambie de valor. del estado 0 al 1, al 2 y nuevamente al 0. Para lograr eso, vamos a utilizar un operador matemática bastante utilizado programación del at, es el operador módulo '%'

La operación módulo en una computadora lo hace es retornar el residuo de la división de enteros. Mortajas dos operandos en dividendo y el divisor n , División de la n %, es el resíduo, llamada euclidiana por ser división de dos números enteros, de una entre n. 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 luz-Paris al 0 nuevamente. Este operador es muy útil en el código, donde se quieran comportamientos circulares de variables. En Wikipedia hay una buena explicación de esto.

En la línea 1, creamos una variable global, de tipo entero, la llamamos "botonState". En esta variable almacenaremos el cambio de estado, cada vez se aprieta el botón. At las líneas de 4 que a 7 simplemente inicializamos los pinos. Noten como el pin 8 indicamos es INPUT_PULLUP. Acá pueden ver más sobre los pinos en Arduino.

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

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

Acá es donde cuántos la operación módulo. Noten como le agregamos un retardo para el cambio no sea tan rápido. Primero vive si el botón está presionado, es decir cuando la lectura del pin es igual a 0. Si es así, entonces actualizamos el estado de la variable "botonState", con la expresión:

 botonState = (botonState + 1) % 3; 

Lo de ubicandose 1 de hace esta expresión es lo ya estaba en "botonState" y luego aplicar la función módulo, de esa forma la variable puede tener los varlores 0,1,2 y da vueltas en esos números. Ahora para indicar cual llevó Fuchi, cuántos el "estado" en el está "botonState", en la siguiente línea de código (líneas 15 a 31):

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

Como ven, si "botonState" es igual a 1, entonces prende el led conectado al pin2, si es igual a 0, y el resto los apaga. Si es igual a 1, etonces prende el led del pin 3 y el resto los apaga, y así sucesivamente. Listo!

Artículos Relacionados

Control de un SaikoLED myki (o Arduino Leonardo) con una Simple caja de botón--usando ICSP cabecera

Control de un SaikoLED myki (o Arduino Leonardo) con una Simple caja de botón--usando ICSP cabecera

Bienvenidos! Hoy vamos a explicar cómo crear un controlador con 3 botones que se conecta directamente a una tarjeta compatible con Arduino Leonardo--en este caso, la luz de myki de SaikoLED. Más información sobre Leonardo está disponible aquí y en es
Arduino / frambuesa Pi caso con OpenCase

Arduino / frambuesa Pi caso con OpenCase

OpenCase le permite fácilmente y generar archivos DXF de gabinetes de electrónica. Se coloca en el espesor del material, dimensiones, interiores y decirle donde hacer los agujeros y cortes, y lo hace el resto. Utiliza OpenSCAD para todos los cálculos
Arduino Personal con capucha banda sonora

Arduino Personal con capucha banda sonora

esto fue inspirado por la camiseta de banda sonora personal de Raj en la teoría del Big Bang S3, E16, "La adquisición de Excelsior". Ahora se puede comprar en línea pero es mucho más divertido hacer tu propia y es posible ahora que botones diseñ
Ahorro TV-B-Gone con interruptores de selección de región/gama de la batería

Ahorro TV-B-Gone con interruptores de selección de región/gama de la batería

¿Qué es la TV-B-Gone?TV-B-Gone es un pequeño gadget que puede activar y desactivar casi cualquier TV en el mundo desarrollado y vendido como kit por Adafruit. También proporcionan el código fuente y compilado firmware bajo licencia Creative común com
Arduino Nano con DHT11, RTC DS1307 y LCD 16 x 2

Arduino Nano con DHT11, RTC DS1307 y LCD 16 x 2

Hola. Este es mi primer Instructable, así que espero que va a estar bien.Este es mi proyecto de Arduino Nano con LCD I2C Junta, RTC DS1307 y sensor DHT11.Para este proyecto usé Arduino Nano, RTC DS1307 reloj tablero, tablero del sensor DHT11, 16 x 2
Potencia tu Arduino/AVR con una batería de Hand-Cranked

Potencia tu Arduino/AVR con una batería de Hand-Cranked

si alguna vez has querido a tu Arduino o AVR de la energía de una batería de pruebas de desarrollo (las baterías tienen cualidades de entrega de alimentación diferente que, digamos, AC transformado o incluso una fuente regulada de DC) pruebas pero es
El reloj de la historia: Arduino LCD con sensores de la tapa

El reloj de la historia: Arduino LCD con sensores de la tapa

Este es aún otro Arduino LCD reloj, pero con un giro; Este reloj sabe algunas fiestas y cumpleaños, realizar cálculos sobre la marcha de a qué edad una persona es y entonces Mostrar la información en la pantalla LCD. Me inspiré a hacer este reloj por
Controlador MIDI Arduino - techshop con scarff boarduino

Controlador MIDI Arduino - techshop con scarff boarduino

he mirado en un número de soluciones diferentes de arduino para MIDI. Mi concepto de proyecto implica más de 100 entradas analógicas que cada sentido velocidad y proporcionar una salida MIDI.   Utilizando la información de fondo que obtuve de techsho
Arduino sincronizado con otro muerde el polvo

Arduino sincronizado con otro muerde el polvo

En este tutorial te mostraré cómo hacer y arduino sincronizado con "otro uno mordeduras del polvo" de Queen. Se necesita:Arduino Uno3 LEDPerfboardDe la soldaduraAlambreTablero de pan menos soldaduraPaso 1: Ensayo de placa de panConectar tres LED
El Arduino Uno con cuatro baterías AA recargables de la energía

El Arduino Uno con cuatro baterías AA recargables de la energía

este Instructable enseñará a tu Arduino Uno con cuatro baterías AA recargables de la energía. Se necesita:Un Arduino UnoPortapila AA 4 (recomiendo esta uno de RadioShack, que no sólo tiene un interruptor interno para encender el Arduino, también tien
Control de Arduino RoverBot con mando a distancia TV

Control de Arduino RoverBot con mando a distancia TV

soy un pobre Arduino Hacker 15 años de edad, que tiene poco acceso a piezas y materiales para construir un robot de alta tecnología.  Estoy seguro que hay muchos otros por ahí que están en mi situación.  Este Instructable poco se explicar y demostrar
Arduino - Theremin con pantalla de 7 segmentos LED

Arduino - Theremin con pantalla de 7 segmentos LED

en este instructable, le mostraré cómo hacer un juguete simple que combinación de LED y Theremin. Vamos a usar algunos electrónica básica construida encima de un Arduino. La idea básica de 7 segmento LED pantalla fue de disfrutar de la electrónica. E
RS485 Comunicación Serial entre Arduino Mega y Arduino Nano con Visuino

RS485 Comunicación Serial entre Arduino Mega y Arduino Nano con Visuino

A veces necesitamos conectar placas Arduino ubicados muy lejos unos de otros. RS485 es una manera muy conveniente para conectar las tablas con sólo 2 conductores y puede trabajar a una distancia de 1200 m (4000 pies). También permite múltiples tablas
Foto resistor controlado por arduino pong con procesamiento

Foto resistor controlado por arduino pong con procesamiento

En el filamento de la ingeniería eléctrica en el Instituto gobernadores de Vermont 2014 nuestro reto era crear un proyecto utilizando un arduino que tenía un modo interactivo y un modo autónomo. Nuestro grupo decidió rehacer el juego clásico pong uti