Lab10 - Programación Básica
Lab10 - Programación Básica
Lab10 - Programación Básica
I Ciclo
I. Procedimiento:
Led de prueba (pin 13) intermitente:
Nota: Se utiliza “//” y “/*---*/”, para documentar nuestro programa (comentarios), es una muy buena
práctica comentar siempre nuestro programa, aunque este no se almacene en la memoria del
arduino.
EVIDENCIA DE TINKERCAD
● ¿Qué pasa si en vez de poner “int led = 13” ponemos “int led = 2”? explicar
CODIGO
//Leds intermitentes secuenciales
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
void setup(){
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop(){
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led1, LOW);
delay(200);
digitalWrite(led2, HIGH);
delay(200);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led3, HIGH);
delay(200);
digitalWrite(led3, LOW);
delay(200);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led4, LOW);
delay(200);
}
Lab. N° 10 Programación Básica del Arduino
EVIDENCIA DE TINKERCAD
Lo que sucede en el circuito es que los leds se activan uno tras otro en un
intervalo de 200ms y una vez acaba el ciclo vuelve a repetirse y así
sucesivamente.
● Tener cuidado conectando el led puesto que si se conecta al revés ¿Qué pasaría?
Ejercicio 3: Modificar el programa anterior para que ocho Leds se vayan prendiendo y apagando uno tras otro y
una vez el último led se ha prendido se invierte el sentido. Compilar, analizar y comentar lo que sucede.
//Leds secuenciales
int led1 = 0;
int led2 = 1;
int led3 = 2;
int led4 = 3;
int led5 = 4;
int led6 = 5;
int led7 = 6;
int led8 = 7;
int tiempo = 50;
void setup(){
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
//regreso }
digitalWrite(led7, 1);
delay(tiempo); void loop(){
digitalWrite(led7, 0); //ida
delay(tiempo); digitalWrite(led1, 1);
digitalWrite(led6, 1); delay(tiempo);
delay(tiempo); digitalWrite(led1, 0);
digitalWrite(led6, 0); delay(tiempo);
delay(tiempo); digitalWrite(led2, 1);
digitalWrite(led5, 1); delay(tiempo);
delay(tiempo); digitalWrite(led2, 0);
digitalWrite(led5, 0); delay(tiempo);
delay(tiempo); digitalWrite(led3, 1);
digitalWrite(led4, 1); delay(tiempo);
delay(tiempo); digitalWrite(led3, 0);
digitalWrite(led4, 0); delay(tiempo);
delay(tiempo); digitalWrite(led4, 1);
digitalWrite(led3, 1); delay(tiempo);
delay(tiempo); digitalWrite(led4, 0);
digitalWrite(led3, 0); delay(tiempo);
delay(tiempo); digitalWrite(led5, 1);
digitalWrite(led2, 1); delay(tiempo);
delay(tiempo); digitalWrite(led5, 0);
digitalWrite(led2, 0); delay(tiempo);
delay(tiempo); digitalWrite(led6, 1);
digitalWrite(led1, 1); delay(tiempo);
delay(tiempo); digitalWrite(led6, 0);
digitalWrite(led1, 0); delay(tiempo);
delay(tiempo); digitalWrite(led7, 1);
} delay(tiempo);
digitalWrite(led7, 0);
delay(tiempo);
digitalWrite(led8, 1);
delay(tiempo);
digitalWrite(led8, 0);
delay(tiempo);
Lab. N° 10 Programación Básica del Arduino
EVIDENCIA DE TINKERCAD
Ejercicio 4: Montar el circuito con un display cátodo común, para que realice una cuenta de 0 a 9; realizar el
programa, compilar, analizar y comentar lo que sucede.
digitalWrite(a, 1);//3
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 1);
delay(tiempo);
digitalWrite(a, 0);//4
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 1);
// ejercicio 4 digitalWrite(g, 1);
int a = 9; delay(tiempo);
int b = 10; digitalWrite(a, 1);//5
int c = 6; digitalWrite(b, 0);
int d = 5; digitalWrite(c, 1);
int e = 4; digitalWrite(d, 1);
int f = 8; digitalWrite(e, 0);
int g = 7; digitalWrite(f, 1);
int tiempo = 500; digitalWrite(g, 1);
delay(tiempo);
void setup(){ digitalWrite(a, 1);//6
pinMode(a, OUTPUT); digitalWrite(b, 0);
pinMode(b, OUTPUT); digitalWrite(c, 1);
pinMode(c, OUTPUT); digitalWrite(d, 1);
pinMode(d, OUTPUT); digitalWrite(e, 1);
pinMode(e, OUTPUT); digitalWrite(f, 1);
pinMode(f, OUTPUT); digitalWrite(g, 1);
pinMode(g, OUTPUT); delay(tiempo);
} digitalWrite(a, 1);//7
void loop() digitalWrite(b, 1);
{ digitalWrite(c, 1);
digitalWrite(a, 1);//0 digitalWrite(d, 0);
digitalWrite(b, 1); digitalWrite(e, 0);
digitalWrite(c, 1); digitalWrite(f, 0);
digitalWrite(d, 1); digitalWrite(g, 0);
digitalWrite(e, 1); delay(tiempo);
digitalWrite(f, 1); digitalWrite(a, 1);//8
digitalWrite(g, 0); digitalWrite(b, 1);
delay(tiempo); digitalWrite(c, 1);
digitalWrite(a, 0);//1 digitalWrite(d, 1);
digitalWrite(b, 1); digitalWrite(e, 1);
digitalWrite(c, 1); digitalWrite(f, 1);
digitalWrite(d, 0); digitalWrite(g, 1);
digitalWrite(e, 0); delay(tiempo);
digitalWrite(f, 0); digitalWrite(a, 1);//9
digitalWrite(g, 0); digitalWrite(b, 1);
delay(tiempo); digitalWrite(c, 1);
digitalWrite(a, 1);//2 digitalWrite(d, 0);
digitalWrite(b, 1); digitalWrite(e, 0);
digitalWrite(c, 0); digitalWrite(f, 1);
digitalWrite(d, 1); digitalWrite(g, 1);
digitalWrite(e, 1); delay(tiempo);
digitalWrite(f, 0); }
digitalWrite(g, 1);
EVIDENCIA
delay(tiempo);
Lab. N° 10 Programación Básica del Arduino
Ejercicio 5: Montar el circuito con un led y pulsador, probar con los dos programas de abajo, compilar, analizar y
comentar lo que sucede.
int puls = 2;
int led = 3;
int value = 0;
void setup() {
pinMode(puls, INPUT);
pinMode(led, OUTPUT);
}
void loop(){
value = digitalRead(puls);
if (value == HIGH) {
digitalWrite(led, 1);
}
else {
digitalWrite(led, 0);
}
delay(100);
}
//Enclavamiento
int pulsador, contador = 0;
void setup(){
pinMode(3,OUTPUT);
pinMode(2,INPUT);
}
void loop(){
pulsador = digitalRead(2);
if (pulsador == HIGH){
contador = 1 - contador;
delay(200);
}
if (contador == 1) {
digitalWrite(3, HIGH);
}
else {
digitalWrite(3,LOW);
}
}
Lab. N° 10 Programación Básica del Arduino
Podemos observar que al presionar una vez el pulsador el led se queda encendido
indefinidamente y solo se apaga si se vuelve a presionar.
Lab. N° 10 Programación Básica del Arduino
Ejercicio 6 (Reto Tecsup): Utilizando el Tinkercad, monte el circuito eléctrico en el protoboard tal como se
muestra en la figura de abajo, compilar, analizar y comentar lo que sucede.
● Realizar un programa tal que al mantener presionado un pulsador se observe una cuenta
ascendente de 0 a 9 de forma cíclica en el display de 7 segmentos cátodo común. Con el otro
pulsador se debe observar una cuenta descendente de 9 a 0 de forma cíclica siempre y cuando
el pulsador se mantenga presionado. La cuenta ascendente o descendente debe verse en
intervalos de 500 ms. Colocar evidencia del programa realizado con su respectivo comentario y
análisis. Colocar evidencia de la simulación realizada en el TINKERCAD.
● Modificar el programa anterior para que se active el LED verde sólo cuando se vea el número 9
en el display de 7 segmentos y el LED rojo solo cuando se vea el número 0. Colocar evidencia
del programa realizado con su respectivo comentario y análisis. Colocar evidencia de la
simulación realizada en el TINKERCAD.
Este ejercicio del reto tecsup fue sencillo ya que, solo se modificó el programa
anterior, para que cuando en el display se muestre el 0 se encienda el led rojo y
se apague al cambiar de numero; también se modificó, para que cuando el display
muestre el 9 se encienda el led verde y se apague al cambiar de número.
Lab. N° 10 Programación Básica del Arduino
● Realizar un programa tal que cuando se presione una sola vez un pulsador el LED de color verde
debe parpadear 10 veces a intervalos de 250 ms. Cuando se presione una sola vez el otro pulsador
el LED de color rojo debe parpadear 15 veces a intervalos de 150 ms. Colocar evidencia del
programa realizado con su respectivo comentario y análisis. Colocar evidencia de la simulación
realizada en el TINKERCAD.
Este ejercicio fue complicado ya que, se necesitó crear un nuevo programa, así como
de mucha investigación para poder culminarlo, este consiste en que al presionar uno
de los pulsadores una sola vez uno de los led debe de parpadear en un determinado
intervalo y número veces, lo mismo sucederá con el otro led.
Lab. N° 10 Programación Básica del Arduino
int puls1 = 3;
int led1 = 12;
int value = 0;//estado del pulsador1
int puls2 = 2;
int led2 = 13;
int value1 = 0;//estado del pulsador2
void setup() {
pinMode(led1, OUTPUT);
pinMode(puls1, INPUT);
pinMode(led2, OUTPUT);
pinMode(puls2, INPUT);
}
void loop() {
value = digitalRead(puls1);
if (value == HIGH) {
for (int x = 0; x < 15; x++) {
digitalWrite(led1, HIGH);
delay(150);
digitalWrite(led1, LOW);
delay(150);
}
}
value1 = digitalRead(puls2);
if (value1 == HIGH) {
for (int x = 0; x < 10; x++) {
digitalWrite(led2, HIGH);
delay(250);
digitalWrite(led2, LOW);
delay(250);
}
}
}
Lab. N° 10 Programación Básica del Arduino
Observaciones:
Conclusiones:
Bibliografía
1. https://www.youtube.com/watch?v=eTUkvDe1i6Y
2. https://forum.arduino.cc/t/encender-y-apagar-un-led-3-veces-al-
pulsar-un-pulsador/301091/12