0% encontró este documento útil (0 votos)
149 vistas14 páginas

Practica 1

Este documento presenta dos prácticas realizadas con un microcontrolador. La primera práctica programa un semáforo usando tres LEDs RGB. Enciende cada color por un tiempo determinado repitiendo el ciclo. La segunda práctica desarrolla un contador del 0 al 9 usando cuatro salidas digitales para mostrar cada número. La tercera práctica extiende el contador hasta 99 usando siete salidas digitales para mostrar las decenas y unidades.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
149 vistas14 páginas

Practica 1

Este documento presenta dos prácticas realizadas con un microcontrolador. La primera práctica programa un semáforo usando tres LEDs RGB. Enciende cada color por un tiempo determinado repitiendo el ciclo. La segunda práctica desarrolla un contador del 0 al 9 usando cuatro salidas digitales para mostrar cada número. La tercera práctica extiende el contador hasta 99 usando siete salidas digitales para mostrar las decenas y unidades.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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.

También podría gustarte