Sie sind auf Seite 1von 7

INSTITUTO TECNOLÓGICO NACIONAL DE MEXICO

EN CELAYA
Ingeniería Mecatrónica

Práctica 1
“Contador binario”
Resumen – Esta práctica el pretende reforzar y ampliar los conocimientos básicos de
programación y dar una introducción al entorno de desarrollo integrado (IDE) de Arduino y
diseñar circuitos eléctricos básicos.

Palabras Clave –Arduino, binario, circuitos eléctricos, contador, IDE.

Objetivo – El alumno desarrolle un sistema embebido básico para un prototipo mecatrónico


empleando las bases de programación.
Descripción - desarrollar un sistema embebido en Arduino que incremente y disminuya una
variable booleana entre 0 y 15 representada con 4 leds a través de 2 botones.
Materiales:
 1 tarjeta Arduino
 6 resistencias 220 – 470 ohms.
 4 leds
 Protoboard
 Computadora
 2 botones.
 Jumpers o alambre para protoboard.
Procedimiento:
1. Conectar dos botones a la protoboard.
2. A cada botón colectarle una resistencia que vaya a tierra.
3. En una de las conexiones de la resistencia el botón conectar un cable que vaya al pin
2 digital y en la otra conexión conectar un cable que vaya al pin 3 digital de nuestro
Arduino.
4. Conectar 4 leds en la protoboard y conectar el cátodo de los leds con un cable a tierra.
5. Conectar el ánodo de los leds a los pines 4, 5, 6, 7 digitales del Arduino como se
muestra en Fig.1.
6. Conectar un cable al otro lado de la conexión del botón para la alimentación.
7. Conectar dos cables uno al pin que dice 5V a la protoboard en la línea de “+” y el otro
del pin que dice GND a la línea de “- “.

A continuación, se muestra un esquemático del circuito ya armado.


Fig. 1. Circuito armado.
Para la realizar el código se deben seguir los siguientes pasos
1. Abrir la IDE de Arduino en la computadora y crear un archivo nuevo.
2. Escribir el código.

/**************************************
* Hernández Esqueda Miguel Alejandro *
* Ing. Mecatronica *
* Práctica 1 contador binario *
**************************************/
/*Al inicio del programa se declaran las
* variables que se requieren.
*/

int contador=0;
int led[4]={4,5,6,7};
int contador_inc=2, contador_dec=3;

/*En la siguiente sección se especifica


* los pines que se van a usar y el modo
* ya se Entrada(INPUT) o salida(OUTPUT)
* Serial.begin (9600) es para mandar de forma serial información
* a la computadora desde el Arduino.
*/

void setup() {
Serial.begin(9600);
pinMode(contador_inc,INPUT);
pinMode(contador_dec,INPUT);
pinMode(led,OUTPUT);
}
/* en el void loop() es el equivalente del main en C
*con la diferencia de que es se te repite infinidad de veces
*/
void loop() {
if(digitalRead(contador_inc)==HIGH and digitalRead(contador_dec) ==
LOW) {
delay(400);
if (contador<15){
contador++;
codificador(contador);
}
}
if(digitalRead(contador_inc)==LOW and digitalRead(contador_dec)
==HIGH){
delay(400);
if (contador>0){
contador--;
codificador(contador);
}
}
}
void codificador(int ctn){
switch(ctn){
case 1: digitalWrite(led[3],HIGH);
digitalWrite(led[2],LOW);
digitalWrite(led[1],LOW);
digitalWrite(led[0],LOW);
break;
case 2: digitalWrite(led[3],LOW);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],LOW);
digitalWrite(led[0],LOW);
break;
case 3: digitalWrite(led[3],HIGH);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],LOW);
digitalWrite(led[0],LOW);
break;
case 4: digitalWrite(led[3],LOW);
digitalWrite(led[2],LOW);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],LOW);
break;
case 5: digitalWrite(led[3],HIGH);
digitalWrite(led[2],LOW);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],LOW);
break;
case 6: digitalWrite(led[3],LOW);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],LOW);
break;
case 7: digitalWrite(led[3],HIGH);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],LOW);
break;
case 8: digitalWrite(led[3],LOW);
digitalWrite(led[2],LOW);
digitalWrite(led[1],LOW);
digitalWrite(led[0],HIGH);
break;
case 9: digitalWrite(led[3],HIGH);
digitalWrite(led[2],LOW);
digitalWrite(led[1],LOW);
digitalWrite(led[0],HIGH);
break;
case 10: digitalWrite(led[3],LOW);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],LOW);
digitalWrite(led[0],HIGH);
break;
case 11: digitalWrite(led[3],HIGH);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],LOW);
digitalWrite(led[0],HIGH);
break;
case 12: digitalWrite(led[3],LOW);
digitalWrite(led[2],LOW);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],HIGH);
break;
case 13: digitalWrite(led[3],HIGH);
digitalWrite(led[2],LOW);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],HIGH);
break;
case 14: digitalWrite(led[3],LOW);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],HIGH);
break;
case 15: digitalWrite(led[3],HIGH);
digitalWrite(led[2],HIGH);
digitalWrite(led[1],HIGH);
digitalWrite(led[0],HIGH);
break;
default: digitalWrite(led[3],LOW);
digitalWrite(led[2],LOW);
digitalWrite(led[1],LOW);
digitalWrite(led[0],LOW);
break;
}
Serial.println(contador);
}

Das könnte Ihnen auch gefallen