0% encontró este documento útil (0 votos)
108 vistas9 páginas

Laboratorio Sesion 12

El documento presenta 8 programas desarrollados en Arduino para controlar circuitos digitales y compuertas lógicas. Los programas van desde encender y apagar LEDs de forma secuencial hasta controlar la secuencia mediante sensores. El objetivo es que los estudiantes simulen y graben cada programa en Arduino para comprender el funcionamiento de circuitos digitales básicos.

Cargado por

Elvisvega
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)
108 vistas9 páginas

Laboratorio Sesion 12

El documento presenta 8 programas desarrollados en Arduino para controlar circuitos digitales y compuertas lógicas. Los programas van desde encender y apagar LEDs de forma secuencial hasta controlar la secuencia mediante sensores. El objetivo es que los estudiantes simulen y graben cada programa en Arduino para comprender el funcionamiento de circuitos digitales básicos.

Cargado por

Elvisvega
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

Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 1 de 9

FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA DE SISTEMAS

LABORATORIO SESION-12
Tema: Circuitos Digitales y compuertas Lógicas.

Integrantes:

a.- …………………….

b.-………………………..

1.- A partir del siguiente circuito:

Actividad: Realizar La simulación en TinkerCAD y grabar en Arduino, simular y adjuntar link


más evidencias de fotos y video demostrativo de operación de cada circuito armado desde el
circuito de PROGRAMA-01 HASTA EL PROGRAMA-11.

Desarrollo:

………..

PROGRAMA-01:

int valor;
void setup()
{ pinMode(A0,INPUT); pinMode(11,OUTPUT); }
void loop()
{valor=analogRead(A0);//Valor=[0..1023]
digitalWrite(11,HIGH);delay(valor);
digitalWrite(11,LOW);delay(valor);
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 2 de 9

PROGRAMA-02:

int tiempo=200; //declara una variable


//como entero y de valor 200
void setup() { //comienza la configuración
pinMode(6,OUTPUT);pinMode(7,OUTPUT);
pinMode(8,OUTPUT);pinMode(9,OUTPUT); } //fin setup
void loop() { //Inicio bucle principal Prog
//Desplaza Derecha a Izquierda
digitalWrite(6,HIGH); delay(tiempo);
digitalWrite(6,LOW); delay(tiempo);
digitalWrite(7,HIGH); delay(tiempo);
digitalWrite(7,LOW); delay(tiempo);
digitalWrite(8,HIGH); delay(tiempo);
digitalWrite(8,LOW); delay(tiempo);
digitalWrite(9,HIGH); delay(tiempo);
digitalWrite(9,LOW); delay(tiempo);
//Desplaza Izquierda a Derecha
digitalWrite(9,HIGH); delay(tiempo);
digitalWrite(9,LOW); delay(tiempo);
digitalWrite(8,HIGH); delay(tiempo);
digitalWrite(8,LOW); delay(tiempo);
digitalWrite(7,HIGH); delay(tiempo);
digitalWrite(7,LOW); delay(tiempo);
digitalWrite(6,HIGH); delay(tiempo);
digitalWrite(6,LOW); delay(tiempo);
} //fin loop

PROGRAMA-03:

int tiempo; //declara una variable


//como entero y de valor 200
void setup() { pinMode(A0,INPUT);
pinMode(6,OUTPUT);pinMode(7,OUTPUT);
pinMode(8,OUTPUT);pinMode(9,OUTPUT); } //fin setup

void Derecha(){//Desplaza Derecha a Izquierda


digitalWrite(6,HIGH); delay(tiempo);
digitalWrite(6,LOW); delay(tiempo);
digitalWrite(7,HIGH); delay(tiempo);
digitalWrite(7,LOW); delay(tiempo);
digitalWrite(8,HIGH); delay(tiempo);
digitalWrite(8,LOW); delay(tiempo);
digitalWrite(9,HIGH); delay(tiempo);
digitalWrite(9,LOW); delay(tiempo); }

void Izquierda(){//Desplaza Izquierda a Derecha


digitalWrite(9,HIGH); delay(tiempo);
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 3 de 9

digitalWrite(9,LOW); delay(tiempo);
digitalWrite(8,HIGH); delay(tiempo);
digitalWrite(8,LOW); delay(tiempo);
digitalWrite(7,HIGH); delay(tiempo);
digitalWrite(7,LOW); delay(tiempo);
digitalWrite(6,HIGH); delay(tiempo);
digitalWrite(6,LOW); delay(tiempo);}

void loop() { //Inicio bucle principal Prog


tiempo=analogRead(A0);// tiempo recibe valores desde [0..1023]
Derecha();
Izquierda();
} //fin loop

PROGRAMA-04:

int tiempo,SW1; //declara una variable


//como entero y de valor 200
void setup() { pinMode(A0,INPUT);pinMode(2,INPUT);
pinMode(6,OUTPUT);pinMode(7,OUTPUT);
pinMode(8,OUTPUT);pinMode(9,OUTPUT); } //fin setup

void Derecha(){//Desplaza Derecha a Izquierda


digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,HIGH);
delay(tiempo);
digitalWrite(6,LOW);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,LOW);
delay(tiempo);
digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,LOW);
delay(tiempo);
digitalWrite(6,LOW);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);
delay(tiempo);
}

void Izquierda(){//Desplaza Izquierda a Derecha


digitalWrite(9,HIGH); delay(tiempo);
digitalWrite(9,LOW); delay(tiempo);
digitalWrite(8,HIGH); delay(tiempo);
digitalWrite(8,LOW); delay(tiempo);
digitalWrite(7,HIGH); delay(tiempo);
digitalWrite(7,LOW); delay(tiempo);
digitalWrite(6,HIGH); delay(tiempo);
digitalWrite(6,LOW); delay(tiempo);}

void loop() { //Inicio bucle principal Prog


tiempo=analogRead(A0);// tiempo recibe valores desde [0..1023]
SW1=digitalRead(2);
if(SW1==HIGH)
{Derecha();}
else
{Izquierda();}
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 4 de 9

} //fin loop

PROGRAMA-05:

int tiempo,SW1,n; //declara una variable


//como entero y de valor 200
void setup() { pinMode(A0,INPUT);pinMode(2,INPUT);
for (n=6;n<10;n++) { pinMode (n, OUTPUT);
} //fin for
} //fin setup

void Derecha(){//Desplaza Derecha a Izquierda


for (n=6;n<10;n++) {
digitalWrite (n, HIGH);delay (tiempo);
digitalWrite (n, LOW);delay (tiempo); } //fin for
}

void Izquierda(){//Desplaza Izquierda a Derecha


for (n=9;n>5;n--) {
digitalWrite (n, HIGH);delay (tiempo);
digitalWrite (n, LOW);delay (tiempo); } //fin for
}

void loop() { //Inicio bucle principal Prog


tiempo=analogRead(A0);// tiempo recibe valores desde [0..1023]
SW1=digitalRead(2);
if(SW1==HIGH)
{Derecha();}
else
{Izquierda();}
} //fin loop

PROGRAMA-06:

int tiempo,SW1,n; int leds[]={6,7,8,9};// Declara variables


void setup() { pinMode(A0,INPUT);pinMode(2,INPUT);
for (n=0;n<4;n++) { pinMode (leds[n], OUTPUT);
} //fin for
} //fin setup

void Derecha(){//Desplaza Derecha a Izquierda


for (n=0;n<4;n++) {
digitalWrite (leds[n], HIGH);delay (tiempo);
digitalWrite (leds[n], LOW);delay (tiempo); } //fin for
}
void Izquierda(){//Desplaza Izquierda a Derecha
for (n=3;n>=0;n--) {
digitalWrite (leds[n], HIGH);delay (tiempo);
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 5 de 9

digitalWrite (leds[n], LOW);delay (tiempo); } //fin for


}

void loop() { //Inicio bucle principal Prog


tiempo=analogRead(A0);// tiempo recibe valores desde [0..1023]
SW1=digitalRead(2);
if(SW1==HIGH)
{Derecha();}
else
{Izquierda();}
} //fin loop

PROGRAMA-07:

int tiempo,SW1,SW2,n; int leds[]={6,7,8,9};// Declara variables

void setup() { pinMode(A0,INPUT);pinMode(2,INPUT);


for (n=0;n<4;n++) { pinMode (leds[n], OUTPUT);
} //fin for
} //fin setup

void Secuencia01(){//Desplaza Derecha a Izquierda


for (n=0;n<4;n++) {
digitalWrite (leds[n], HIGH);delay (tiempo);
digitalWrite (leds[n], LOW);delay (tiempo); } //fin for
}
void Secuencia02(){//Desplaza Izquierda a Derecha
for (n=3;n>=0;n--) {
digitalWrite (leds[n], HIGH);delay (tiempo);
digitalWrite (leds[n], LOW);delay (tiempo); } //fin for
}
void Secuencia03(){//Desplaza Derecha a Izquierda
digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,HIGH);
delay(tiempo);
digitalWrite(6,LOW);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,LOW);
delay(tiempo);
}
void Secuencia04(){//Desplaza Izquierda a Derecha
digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,LOW);
delay(tiempo);
digitalWrite(6,LOW);digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,HIGH);
delay(tiempo);
}

void loop() { //Inicio bucle principal Prog


tiempo=analogRead(A0);// tiempo recibe valores desde [0..1023]
SW1=digitalRead(2);SW2=digitalRead(3);
if(SW2==LOW && SW1==LOW)
{Secuencia01();}
if(SW2==LOW && SW1==HIGH)
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 6 de 9

{Secuencia02();}
if(SW2==HIGH && SW1==LOW)
{Secuencia03();}
if(SW2==HIGH && SW1==HIGH)
{Secuencia04();}
} //fin loop
PROGRAMA-08:

int led1=6; int led2=7;


int led3=8; int led4=9;

void turn_off() { //Apaga los 3 LEDS


digitalWrite(led1, LOW);digitalWrite(led2, LOW);
digitalWrite(led3, LOW);digitalWrite(led4, LOW); }

void setup() {
pinMode(led1,OUTPUT);pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);pinMode(led4,OUTPUT);
turn_off(); } //

void loop(){
int val= analogRead(A0); //VAL ESTA ENTRE [0..1023]
turn_off();//apaga los LED
// Si el valor de la señal medida es > 204 enciende LED del LED1
if (val>= 204) digitalWrite(led1, HIGH);
// Si el valor de la señal medida es > 408 enciende LED del LED2
if (val>= 408) digitalWrite(led2, HIGH);
// Si el valor de la señal medida es > 612 enciende LED del LED3
if (val>= 612) digitalWrite(led3, HIGH);
// Si el valor de la señal medida es > 816 enciende LED del LED4
if (val>= 816) digitalWrite(led4, HIGH);
}
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 7 de 9

CIRCUITO PARA MEDIDAS DE NIVELES

PROGRAMA-09:

int leds[]={2,3,4,5,6,7,8,9};
void turn_off() { //Apaga los LEDS
for (int n=0;n<8;n++) { digitalWrite (leds[n], LOW); } }
void setup()
{ [Link](9600); [Link]("Es una Medida Analogica:");
pinMode(A0,INPUT);
for (int n=0;n<8;n++) { pinMode (leds[n], OUTPUT); }
turn_off(); }
void loop()
{ [Link]("Sensor Resistivo: ");
[Link](analogRead(A0));
int val;
// lee el valor de la señal analógica
val= analogRead(A0);
turn_off(); //apaga los tres LED
// Si el valor de la señal medida es > 204 enciende LED del PIN8
if (val>= 113) digitalWrite(leds[0],HIGH);
if (val>= 226) digitalWrite(leds[1],HIGH);
if (val>= 339) digitalWrite(leds[2],HIGH);
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 8 de 9

if (val>= 452) digitalWrite(leds[3],HIGH);


if (val>= 565) digitalWrite(leds[4],HIGH);
if (val>= 678) digitalWrite(leds[5],HIGH);
if (val>= 791) digitalWrite(leds[6],HIGH);
if (val>= 904) digitalWrite(leds[7],HIGH);
}

CIRCUITO CON DISPLAY

PROGRAMA-10:

int tiempo,A=1,B=2,C=3,D=4,E=5,F=6,G=7,DP=8;
void setup()
{pinMode(A,OUTPUT);pinMode(B,OUTPUT);pinMode(C,OUTPUT);
pinMode(D,OUTPUT);pinMode(E,OUTPUT);pinMode(F,OUTPUT);
pinMode(G,OUTPUT);pinMode(DP,OUTPUT);pinMode(A0,INPUT); }

void cero()
{digitalWrite(A, HIGH);digitalWrite(B, HIGH);
digitalWrite(C, HIGH);digitalWrite(D, HIGH);
digitalWrite(E, HIGH);digitalWrite(F, HIGH);
digitalWrite(G, LOW);digitalWrite(DP, HIGH); }
void uno()
{digitalWrite(A, LOW);digitalWrite(B, HIGH);
digitalWrite(C, HIGH);digitalWrite(D, LOW);
digitalWrite(E, LOW);digitalWrite(F, LOW);
digitalWrite(G, LOW);digitalWrite(DP, LOW); }
void dos()
{digitalWrite(A, HIGH);digitalWrite(B, HIGH);
digitalWrite(C, LOW);digitalWrite(D, HIGH);
digitalWrite(E, HIGH);digitalWrite(F, LOW);
digitalWrite(G, HIGH);digitalWrite(DP, LOW); }
void tres()
Código : ECD

Versión : 01
ELECTRONICA Y CIRCUITOS DIGITALES Fecha :
09/05/2023
Página : 9 de 9

{digitalWrite(A, HIGH);digitalWrite(B, HIGH);


digitalWrite(C, HIGH);digitalWrite(D, HIGH);
digitalWrite(E, LOW);digitalWrite(F, LOW);
digitalWrite(G, HIGH);digitalWrite(DP, LOW); }
void loop()
{ tiempo=analogRead(A0);
cero();delay(tiempo); uno();delay(tiempo);
dos();delay(tiempo); tres();delay(tiempo); }
TAREA DE RETO

PROGRAMA-11:

En base al circuito anterior hacer que realice 4 secuencias de conteo diferentes:

1.- Conteo ASCENDENTE: 0,1,2,3,4,5,6,7,8,9,0,1,2,………….

2.- Conteo DESCENDENTE: 9,8,7,6,5,4,3,2,1,0,9,8,7…………

3.- Conteo PAR: 0,2,4,6,8,0,2,……

4.- conteo IMPAR: 1,3,5,7,9,1,3,……………

También podría gustarte