Crea tu propio Contador Incremental con Arduino y Tinkercad
- publicado por Ing. Jesús Martínez
- Fecha mayo 19, 2023
Contenido
- Introducción
- Accede a Tinkercad y configura tu proyecto
- Programa tu contador incremental
- Simula y prueba tu proyecto
- Conclusión
- Material descargable
Introducción
En el mundo de la electrónica y la programación, los proyectos simples pero fascinantes pueden ser una excelente manera de aprender nuevos conceptos. En esta entrada, te invito a sumergirte en el emocionante mundo de Arduino y Tinkercad para crear tu propio contador incremental de 0 a 9 utilizando un push button y un display de 7 segmentos. ¡Prepárate para explorar los conceptos básicos de la programación y la simulación electrónica mientras te diviertes con este emocionante proyecto!
Materiales necesarios:
- Computadora con acceso a internet
- Cuenta en Tinkercad(Crea una gratuita aquí)
- Arduino Uno(Virtual en Tinkercad)
- Protoboard virtual (incluido en Tinkercad)
- Push button virtual (incluido en Tinkercad)
- Display de 7 segmentos catodo común virtual (incluido en Tinkercad)
- Resistencia de 220 ohms para el push button
- Resistencias de 220 ohms para cada segmento del display
Accede a Tinkercad y configura tu proyecto
Ingresa a Tinkercad y crea un nuevo proyecto. Arrastra un Arduino Uno virtual a tu área de trabajo y luego añade una breadboard virtual. Coloca el push button virtual en la breadboard y conecta los cables según el diagrama que se muestra a continuación.
Realiza las siguientes conexiones en el protoboard:
- Conecta un extremo de la resistencia de 220 ohms a la terminal a 2a del push button y el otro extremo a GND.
- Conecta un cable entre la terminal 2a del push button y la resistencia, el otro extremo del cable hacia el pin digital 2 del Arduino.
- Conecta la terminal 1a del push button a 5V
- Conecta las resistencias de 220 ohms a cada uno de los segmentos (A, B, C, D, E, F, G) del display de 7 segmentos.
- Conecta los pines correspondientes del display de 7 segmentos a los pines digitales 13 a 7 del Arduino, siguiendo el diagrama.
- Conecta el común del display de 7 segmentos a GND
Programa tu contador incremental
En Tinkercad, abre el editor de código de Arduino y escribe el código necesario para leer el estado del push button y actualizar el contador en el display de 7 segmentos.
Lo primero que tenemos que realizar es la definición de las conexiones de los pines y la linealización en 0 de la variable contador, esto lo realizaremos de la siguiente manera
// Definimos las conexiones de los pines
const int buttonPin = 2;
const int segA = 13;
const int segB = 12;
const int segC = 11;
const int segD = 10;
const int segE = 9;
const int segF = 8;
const int segG = 7;
int contador = 0; // Variable para almacenar el valor del contador
Lo siguiente es crear nuestro void setup, que si ya tomaste nuestro curso en Udemy sabrás de primera mano que es la sección donde debemos realizar la configuración inicial del microcontrolador, es decir para este caso, definir el modo de funcionamiento de cada uno de los pines que utilizaremos en este pequeño proyecto. En este caso definiremos el buttonPin como entrada y todos los demás segA, segB, segC, etc, se definirán como salidas.
Otro paso que realizaremos aquí es pasar a la función displayNumber el valor del contador(esta función la realizaremos más tarde)
void setup() {
pinMode(buttonPin, INPUT); // Configuramos el botón como entrada
pinMode(segA, OUTPUT); // Configuramos los pines del display como salidas
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
Serial.begin(9600);
displayNumber(contador);
}
Ahora es el momento de pasar al void loop, en el cual programaremos las secuencias que queremos que se repitan una y otra vez en el microcontrolador, pero bueno tu que vienes de nuestro curso en Udemy ya sabes todo esto y más. En esta sección escribiremos 2 estructuras if anidadas, es decir una dentro de la otra, la primera estructura incrementará el valor de la variable contador siempre que el valor del botón sea alto, es decir siempre que el botón se presione. A su vez esta primera estructura permitirá la ejecución de la segunda estructura if, la cual se ejecutará siempre que el valor de la variable contador sea mayor a 9, lo que provocará que la variable contador regrese a su estado inicial que es 0.
Regresando a la estructura 1, esta también mandará el valor de la variable contador a la función displatNumber() y después aplicará un delay de 200ms.
void loop() {
if (digitalRead(buttonPin) == HIGH) { // Si el botón es presionado
contador++; // Incrementamos el contador
if (contador > 9) {
contador = 0; // Reiniciamos el contador si llega a 10
}
displayNumber(contador); // Mostramos el valor en el display
delay(200); // Pequeña pausa para evitar rebotes del botón
}
}
Ya en este punto podemos avanzar a la creación de la función displayNumber(), la cual se encargará de activar o desactivar los segmentos de nuestro display, esto dependiendo del valor que le enviemos en la variable contador y que es recibida en la variable number. Dentro de esta función nos encontraremos con una estructura switch case, en la cual englobaremos los casos del 0 al 9 y dentro de cada uno de ellos colocaremos las configuraciones de on/off para cada segmento.
// Función para mostrar un número en el display
void displayNumber(int number) {
Serial.println(number);
switch (number) {
case 0:
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, LOW);
break;
case 1:
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;
case 2:
// Configuración de pines para mostrar el número 2
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, LOW);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
break;
case 3:
// Configuración de pines para mostrar el número 3
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, HIGH);
break;
case 4:
// Configuración de pines para mostrar el número 4
digitalWrite(segA, LOW);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 5:
// Configuración de pines para mostrar el número 5
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 6:
// Configuración de pines para mostrar el número 6
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 7:
// Configuración de pines para mostrar el número 7
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;
case 8:
// Configuración de pines para mostrar el número 8
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
break;
case 9:
// Configuración de pines para mostrar el número 9
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
}
}
Simula y prueba tu proyecto
Antes de cargar el código en un Arduino físico, aprovecha la ventaja de Tinkercad para simular y probar tu proyecto. Asegúrate de que el contador se incremente correctamente en el display de 7 segmentos cada vez que presionas el botón virtual. Observa cómo los números van cambiando y disfruta del resultado de tu trabajo.
Conclusión
Crear un contador incremental con Arduino y Tinkercad es un proyecto emocionante y educativo. Te brinda la oportunidad de aprender sobre la programación de Arduino y la simulación electrónica utilizando una herramienta poderosa como Tinkercad. Este proyecto es ideal para principiantes que deseen adentrarse en el mundo de la electrónica y la programación.
Recuerda que este proyecto es solo el comienzo de tus aventuras en Arduino. A medida que adquieras más conocimientos y confianza, podrás explorar proyectos más desafiantes y emocionantes. No dudes en compartir tus resultados y continuar aprendiendo mientras te diviertes con Arduino y Tinkercad.
¡Anímate a llevar tus habilidades al siguiente nivel y crear proyectos electrónicos increíbles!
Código y acceso a la simulación
Debes estar registrado para acceder al material exclusivo Registrarme
Etiqueta:Arduino
Soy un apasionado por la innovación tecnológica, el desarrollo y el emprendimiento. Durante mi educación superior me enfoqué en la programación de software para visión artificial e inteligencia artificial. Poco después al graduarme tuve la oportunidad de aplicar estos conocimientos en el desarrollo de soluciones para empresas como General Motors, Ford, Harley-Davidson, Mack, Tesla y unas cuantas empresas más del ramo automotriz.