Instituto Politécnico Nacional
Escuela Superior de Ingeniería Mecánica y
Eléctrica
Unidad Zacatenco
Ingeniería en Control y Automatización
Interfases y Microcontroladores
Práctica 1. Salidas digitales
Alumno: Sánchez Oviedo Edrei Ricardo
Grupo: 7AM3
Profesor: Mejía García Adrián Esteban
Fecha de Entrega: 06/Octubre/202
1. Realizar un programa para el LED RGB de la tarjeta, que haga la función de un semáforo.
int D0 = 7; delay(500); digitalWrite(D0,LOW);
int D1 = 6; digitalWrite(D0,HIGH); digitalWrite(D1,LOW);
int D2 = 5; digitalWrite(D1,LOW); digitalWrite(D2,HIGH);
digitalWrite(D2,LOW); delay(500);
void setup(){ delay(500); digitalWrite(D0,LOW);//Parpadeo led
pinMode(D0, OUTPUT);//Led verde digitalWrite(D0,LOW);//Parpadeo led rojo
pinMode(D1, OUTPUT);//Led amarillo verde digitalWrite(D1,LOW);
pinMode(D2, OUTPUT);//Led rojo digitalWrite(D1,LOW); digitalWrite(D2,LOW);
} digitalWrite(D2,LOW); delay(500);
delay(500); digitalWrite(D0,LOW);
void loop(){ digitalWrite(D0,HIGH); digitalWrite(D1,LOW);
digitalWrite(D0,HIGH);//Encendido led digitalWrite(D1,LOW); digitalWrite(D2,HIGH);
verde 5 seg digitalWrite(D2,LOW); delay(500);
digitalWrite(D1,LOW); delay(500); digitalWrite(D0,LOW);//Parpadeo led
digitalWrite(D2,LOW); digitalWrite(D0,LOW);//Encendido led rojo
delay(5000); amarillo 2seg digitalWrite(D1,LOW);
digitalWrite(D0,LOW);//Parpadeo led digitalWrite(D1,HIGH); digitalWrite(D2,LOW);
verde digitalWrite(D2,LOW); delay(500);
digitalWrite(D1,LOW); delay(2000); digitalWrite(D0,LOW);
digitalWrite(D2,LOW); digitalWrite(D0,LOW);//Encendido led digitalWrite(D1,LOW);
delay(500); rojo 8seg digitalWrite(D2,HIGH);
digitalWrite(D0,HIGH); digitalWrite(D1,LOW); delay(500);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); digitalWrite(D0,LOW);//Parpadeo led
digitalWrite(D2,LOW); delay(8000); rojo
delay(500); digitalWrite(D0,LOW);//Parpadeo led digitalWrite(D1,LOW);
digitalWrite(D0,LOW);//Parpadeo led rojo digitalWrite(D2,LOW);
verde digitalWrite(D1,LOW); delay(500);
digitalWrite(D1,LOW); digitalWrite(D2,LOW); }
digitalWrite(D2,LOW); delay(500);
a. Enciende el LED verde durante cinco segundos.
b. Parpadea el LED verde tres veces en intervalos de tiempo de 0.5 segundos.
c. Después de los tres parpadeos del LED verde, enciende el color amarillo, durante un
lapso de dos segundos.
d. Posteriormente se activa el LED rojo durante 8 segundos.
e. Parpadea el LED rojo tres veces en intervalos de tiempo de 0.5 segundos.
f. Se repite la secuencia.
2. Elaborar un contador del 0 al 9, empleando el componente BitsIO.
void setup(){ digitalWrite(D3,LOW);
pinMode(D0, OUTPUT); delay(1000);
pinMode(D1, OUTPUT); }
pinMode(D2, OUTPUT); if (cont=5){//CINCO
pinMode(D3, OUTPUT); digitalWrite(D0,HIGH);
} digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
void loop(){//CICLO LOOP digitalWrite(D3,LOW);
for(cont=0;cont<10;cont++){ delay(1000);
if (cont==0){//CERO }
digitalWrite(D0,LOW); if (cont=6){//SEIS
digitalWrite(D1,LOW); digitalWrite(D0,LOW);
digitalWrite(D2,LOW); digitalWrite(D1,HIGH);
digitalWrite(D3,LOW); digitalWrite(D2,HIGH);
delay(1000); digitalWrite(D3,LOW);
} delay(1000);
if (cont=1){//UNO }
digitalWrite(D0,HIGH); if (cont=7){//SIETE
digitalWrite(D1,LOW); digitalWrite(D0,HIGH);
digitalWrite(D2,LOW); digitalWrite(D1,HIGH);
digitalWrite(D3,LOW); digitalWrite(D2,HIGH);
delay(1000); digitalWrite(D3,LOW);
} delay(1000);
if (cont=2){//DOS }
digitalWrite(D0,LOW); if (cont=8){//OCHO
digitalWrite(D1,HIGH); digitalWrite(D0,LOW);
digitalWrite(D2,LOW); digitalWrite(D1,LOW);
digitalWrite(D3,LOW); digitalWrite(D2,LOW);
delay(1000); digitalWrite(D3,HIGH);
} delay(1000);
if (cont=3){//TRES }
digitalWrite(D0,HIGH); if (cont=9){//NUEVE
digitalWrite(D1,HIGH); digitalWrite(D0,HIGH);
digitalWrite(D2,LOW); digitalWrite(D1,LOW);
digitalWrite(D3,LOW); digitalWrite(D2,LOW);
delay(1000); digitalWrite(D3,HIGH);
int D0 = 3; } delay(1000);
int D1 = 2; if (cont=4){//CUATRO cont==0;//DAR CONDICION CERO
int D2 = 1; digitalWrite(D0,LOW); }
int D3 = 0; digitalWrite(D1,LOW); }
int cont;//CONTADOR digitalWrite(D2,HIGH); }
3. Realizar el conteo del 0 al 99.
int D0 = 13; fun1();
int D1 = 12; digitalWrite(D10,LOW);//SEIS }
int D2 = 11; digitalWrite(D11,HIGH); if (a=5){
int D3 = 10; digitalWrite(D12,HIGH); digitalWrite(D0,LOW);//CUAR
int D10 = 3; digitalWrite(D13,LOW); ENTAS
int D11 = 2; delay(250); digitalWrite(D1,LOW);
int D12 = 1; digitalWrite(D2,HIGH);
int D13 = 0; digitalWrite(D10,HIGH);//SIET digitalWrite(D3,LOW);
int a=0; E fun1();
digitalWrite(D11,HIGH); }
void setup() { digitalWrite(D12,HIGH); if (a=6){
pinMode(D0, OUTPUT); digitalWrite(D13,LOW); digitalWrite(D0,HIGH);//CINCU
pinMode(D1, OUTPUT); delay(250); ENTAS
pinMode(D2, OUTPUT); digitalWrite(D1,LOW);
pinMode(D3, OUTPUT); digitalWrite(D10,LOW);//OCH digitalWrite(D2,HIGH);
pinMode(D10, OUTPUT); O digitalWrite(D3,LOW);
pinMode(D11, OUTPUT); digitalWrite(D11,LOW); fun1();
pinMode(D12, OUTPUT); digitalWrite(D12,LOW); }
pinMode(D13, OUTPUT); digitalWrite(D13,HIGH); if (a=7){
} delay(250); digitalWrite(D0,LOW);//SESEN
TAS
void fun1(){ //PROGRAMA digitalWrite(D10,HIGH);//NUE digitalWrite(D1,HIGH);
UNIDADES VE digitalWrite(D2,HIGH);
digitalWrite(D10,LOW);//CER digitalWrite(D11,LOW); digitalWrite(D3,LOW);
O digitalWrite(D12,LOW); fun1();
digitalWrite(D11,LOW); digitalWrite(D13,HIGH); }
digitalWrite(D12,LOW); delay(250); if (a=8){
digitalWrite(D13,LOW); } digitalWrite(D0,HIGH);//SETE
delay(250); NTAS
digitalWrite(D1,HIGH);
digitalWrite(D10,HIGH);//UNO void fun2(){//PROGRAMA digitalWrite(D2,HIGH);
digitalWrite(D11,LOW); DECENAS digitalWrite(D3,LOW);
digitalWrite(D12,LOW); if (a=1){ fun1();
digitalWrite(D13,LOW); digitalWrite(D0,LOW);//CERO }
delay(250); DECENA if (a=9){
digitalWrite(D1,LOW); digitalWrite(D0,LOW);//OCHE
digitalWrite(D10,LOW);//DOS digitalWrite(D2,LOW); NTAS
digitalWrite(D11,HIGH); digitalWrite(D3,LOW); digitalWrite(D1,LOW);
digitalWrite(D12,LOW); fun1(); digitalWrite(D2,LOW);
digitalWrite(D13,LOW); } digitalWrite(D3,HIGH);
delay(250); if (a=2){ fun1();
digitalWrite(D0,HIGH);//DIECE }
digitalWrite(D10,HIGH);//TRE S if (a=10){
S digitalWrite(D1,LOW); digitalWrite(D0,HIGH);//NOVE
digitalWrite(D11,HIGH); digitalWrite(D2,LOW); NTAS
digitalWrite(D12,LOW); digitalWrite(D3,LOW); digitalWrite(D1,LOW);
digitalWrite(D13,LOW); fun1(); digitalWrite(D2,LOW);
delay(250); } digitalWrite(D3,HIGH);
if (a=3){ fun1();
digitalWrite(D10,LOW);//CUAT digitalWrite(D0,LOW);//VEINT }
RO ES if (a=11){
digitalWrite(D11,LOW); digitalWrite(D1,HIGH); digitalWrite(D0,LOW);//REGR
digitalWrite(D12,HIGH); digitalWrite(D2,LOW); ESO A CERO
digitalWrite(D13,LOW); digitalWrite(D3,LOW); digitalWrite(D1,LOW);
delay(250); fun1(); digitalWrite(D2,LOW);
} digitalWrite(D3,LOW);
digitalWrite(D10,HIGH);//CINC if (a=4){ a==0;
O digitalWrite(D0,HIGH);//TREIN }
digitalWrite(D11,LOW); TAS }
digitalWrite(D12,HIGH); digitalWrite(D1,HIGH);
digitalWrite(D13,LOW); digitalWrite(D2,LOW); void loop() {
delay(250); digitalWrite(D3,LOW); a=a+1;//CONTDOR
fun2(); }
4. Empleando el circuito del contador del 0 al 99, y el programa del semáforo, realizar lo
siguiente:
a. Enciende el LED verde durante 10 segundos y los displays muestran el conteo del 0 al
10.
b. Parpadea el LED verde tres veces en intervalos de tiempo de 0.5 segundos y los
displays muestran el valor de 00.
c. Después de los tres parpadeos del LED verde, enciende el color amarillo, durante un
lapso de 5 segundos y se muestra el conteo en el los dos displays.
d. Posteriormente se activa el LED rojo durante 20 segundos y se muestra el conteo en
ambos displays.
e. Parpadea el LED rojo tres veces en intervalos de tiempo de 0.5 segundos y ambos
displays muestran el valor de 00.
f. Se repite la secuencia.
5. Activar el motor a pasos.
void setup() {
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
}
void loop() {
digitalWrite(A0,HIGH);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(A3,LOW);
delay(500);
digitalWrite(A0,LOW);
digitalWrite(A1,HIGH);
digitalWrite(A2,LOW);
digitalWrite(A3,LOW);
delay(500);
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,HIGH);
digitalWrite(A3,LOW);
delay(500);
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(A3,HIGH);
delay(500);
}
6. Combinar el programa del semáforo y el contador, con el del motor a pasos de la siguiente
manera.
a. Enciende el LED verde durante 10 segundos y los displays muestran el conteo del 0 al
10. El motor a pasos se mantiene en este lapso de tiempo a su máxima velocidad.
b. Parpadea el LED verde tres veces en intervalos de tiempo de 0.5 segundos y los
displays muestran el valor de 00. Reduce la velocidad del motor a pasos se reduce a la
mitad.
c. Después de los tres parpadeos del LED verde, enciende el color amarillo, durante un
lapso de 5 segundos y se muestra el conteo en el los dos displays. Se detiene el motor
a pasos.
d. Posteriormente se activa el LED rojo durante 20 segundos y se muestra el conteo en
ambos displays. Se invierte la secuencia de activación del motor a pasos y se activa a
su máxima velocidad.
e. Parpadea el LED rojo tres veces en intervalos de tiempo de 0.5 segundos y ambos
displays muestran el valor de 00. Se detiene el motor a pasos.
f. Se repite la secuencia.