Vídeo
A continuación encontrara el vídeo en donde se explica el funcionamiento del circuito.
Acerca del proyecto
Una practica muy común para entender el funcionamiento de las entradas y salidas de los arduinos, es hacer que se enciendan y apegan led por medio de pulsadores, donde se requiere leer el estado de un pin digital, procesar la señal y escribir ese valor obtenido en otro pin digital diferente. En este post conoceremos los conceptos básicos de arduino y realizaremos un circuito para entender esta funcionalidad.
Conocimiento previo
Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.
Proyecto | Descripción |
---|---|
Circuito pull up | Para poder conectar un interruptor es necesario usar una conexión en donde le podamos enviar estados altos y bajos de forma segura, en este post explicamos el circuito pull up. |
Arduino interruptores miniatura | En este proyecto damos la explicación de como usar las entradas y salidas con unos pulsadores puede servir de base para poder realizar esta practica. |
pinMode() | Con pinMode() podemos configurar un pin digital como salida o como entrada. |
digitalread() | Con esta función podemos obtener el estado digital de un pin de nuestro arduino, previamente configurado como entrada. |
digitalwrite() | Con esta función podemos escribir un estado digital en un pin, previamente configurado como salida. |
Materiales
Como podemos observar los materiales son muy sencillos de conseguir, en cambio del dipswicth si no lo tienes no hay problema, puedes usar cuatro pulsadores de botón u otro sistema que se adapte a la configuración pull up.
Material | Cantidad | Descripción |
---|---|---|
Arduino | 1 | Puede ser cualquier de tu preferencia |
resistencia de 1k | 8 | Resistencia para los leds y el dipswicth |
Led de colores | 4 | Les para la salida del ejercicio |
Dipswicth | 1 | Usado para las entradas del ejercicio |
Circuito
Observemos el circuito como esta construido, en los pines 2, 3, 4 y 5 son las entradas del dipswicth, conectada con la configuración pull up; en los pines 6, 7, 8 y 9 son los pines de salida a los cuales les conectamos leds.
Código
El código lo encontraras en github con los demás proyectos.
//Paso 1
int pinInput[] = {2, 3, 4, 5};
int pinOutput[] = {6, 7, 8, 9};
void setup() {
//Paso 2
for(int i = 0; i < 4; i++){
pinMode(pinInput[i], INPUT);
pinMode(pinOutput[i], OUTPUT);
}
}
void loop() {
//Paso 3
for(int i = 0; i < 4; i++){
int val = digitalRead(pinInput[i]);
if(val == 1){
digitalWrite(pinOutput[i], HIGH);
}else{
digitalWrite(pinOutput[i], LOW);
}
}
}
En este coligo usamos los array en donde declaramos los pines que usamos en las entradas y salidas (paso 1), esto con el fin de ahorrar líneas de código; como observamos en el setup
hay un for en donde recorre un ciclo el cual es el tamaño de los array y dentro del bucle declaramos los pines como salida y entrada con pinMode()
(paso 2), así ahorramos líneas de código, lo mismo hacemos con el loop para preguntar si está o no activo el pin al leerlo con digitalRead()
y dependiendo de la respuesta lo escribimos con digitalWrite
(paso 3).