Professional Documents
Culture Documents
ROBOTICA
INTEGRANTES:
- MUSAYON DURAND, JUAN
- ROSADO PEREZ, ANGHELO
- VILELA LLATAS, FRANKLIN
SEMESTRE:
2016 – I
DOCENTE: BERNARDO NUÑEZ
ROBOTICA
Objetivo:
Realizar un circuito que muestre el conteo de 0 a 99, al presionar un pulsador
deberá detenerse, y al presionar el otro pulsador continuará el conteo.
Materiales:
- 1 Arduino Uno
- 11 resistencias:
o 9 resistencias de 1kΩ (para los 7 segmentos y transistores)
o 2 resistencias de 10kΩ (para pulsadores)
- 2 pulsadores
- 2 displays (7 segmentos – cátodo común)
- 2 transistores NPN
- 1 protoboard
- Cables
Funcionamiento:
Se utilizaron los pines digitales 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13 del ARDUINO
UNO. Los pines del 2, 3, 4, 5, 6, 7, 8 corresponden a los segmentos a, b, c, d, e,
f, g de los 2 displays (7 segmentos – cátodo común) respectivamente. Los pines
10 y 11 se utilizaron para los pulsadores siendo el pin 10 para dar inicio al conteo
o continuar el conteo y el pin 11 para detener el conteo. Los pines 12 y 13 se
utilizaron para los transistores, siendo el pin 13 para dar continuidad a las
unidades y el pin 12 para dar continuidad a las decenas.
Se utilizaron también el GND y 5v del ARDUINO UNO para dar funcionamiento
correcto a los 2 pulsadores y a los 2 transistores.
Se utilizaron los 2 transistores 2N2222 (NPN) que se conmuta por una salida
digital para habilitar cada display en su turno, elegimos el buen nivel valor de la
resistencia de que es 1K, lo que nos permite estar seguros de que el transistor
actúa como un interruptor que está siempre totalmente encendido o totalmente
apagado.
En tanto a los 2 pulsadores, el que se conecta al pin 10 al presionarlo nos permite
dar por comenzado el conteo así como también nos permitirá reiniciar el conteo
desde el numero donde se quedó, cuando antes se hubiese presionado el
pulsador que se conecta al pin 11, el conteo llegara al número 99 y se detendrá
hasta volver a presionar el pulsador que se conecta del pin 10.
Circuito:
Diagrama:
Código:
int inicio=1; // variable para el botón de inicio
int parada=1; // variable para el botón de parada
int activar_boton_inicio=1; // activa botón de inicio con "1" desactiva con "0"
int activar_boton_parada=0; // activa botón de parada con "1" desactiva con
"0"
int activar_incremento=0; // activa incremento del contador con "1" desactiva
con "0"
int retardo=30; // tiempo que dura encendido cada 7 seg (10 mili segundos)
int var=0; // Valor del digito que se va a desplegar por el 7 seg.
int unidad=0; // cuenta las unidades (derecha)
int decena=0; // cuenta las decenas (izquierda)
int conmutador=0; // multiplexación de uno a otro 7 segmentos
int cont=0; // contador de ciclos de espera para cambiar de numero
void setup() {
pinMode(2, OUTPUT); //seg a
pinMode(3, OUTPUT); //seg b
pinMode(4, OUTPUT); //seg c
pinMode(5, OUTPUT); //seg d
pinMode(6, OUTPUT); //seg e
pinMode(7, OUTPUT); //seg f
pinMode(8, OUTPUT); //seg g
}
}
}
else{
digitalWrite(13, 0); // apaga el derecho
digitalWrite(12, 1); // enciende el izquierdo
var=decena; // iguala la variable que escribe el numero en el 7seg
al valor de la decena
conmutador=0; // cambia el conmutador para que en el siguiente
ciclo cumpla la otra condición
}
switch (var) {
case 1: //escribe en el 7seg el numero 1
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
break;
case 2: //escribe en el 7seg el numero 2
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 1);
break;
case 3: //escribe en el 7seg el numero 3
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
break;
case 4: //escribe en el 7seg el numero 4
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 5: //escribe en el 7seg el numero 5
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 6: //escribe en el 7seg el numero 6
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 7: //escribe en el 7seg el numero 7
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
break;
case 8: //escribe en el 7seg el numero 8
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 9: //escribe en el 7seg el numero 9
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 0: //escribe en el 7seg el numero 0
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
break;
default:
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
}
}