Alumno(a): Valdez Chacon Darikson Mathew
Electrónica y Hardware de
Computadoras
Laboratorio 08
“Programación Arduino:
Variables, Funciones, tipos de datos y
operadores”
1
TECSUP Programación Arduino
Programación Arduino: Variables, Funciones, tipos
de datos y operadores”
Objetivos
� Desarrollar sketchs haciendo uso de variabes, funciones, tipos de datos y
operadores.
� Analizar sketchs para identificar la función que realiza.
Equipos y Materiales
● Un computador personal con acceso a internet.
Introducción:
En los sketchs se van a hacer uso de diferentes tipos de variables, funciones, tipos
de datos, operadores, entre otros elementos; por ello es necesario conocerlos y
entender en que casos utilizarlos de manera apropiada.
En este laboratorio empezaremos desarrollando algunos sketchs que nos permitirá ir
familiarizándonos con los diferentes elementos que pueden estar presentes en todo
sketch.
Procedimiento
1. Ejecutar el programa (sketch) que hace parpadear un led cada cierto tiempo. El
tiempo en segundos se especifica mediante el dígito decimal ingresado por
el DIPSWITCH.
byte numero; //Definimos la variable numero
bool bit0,bit1,bit2,bit3; //Definimos variables del tipo booleano
void setup() {
pinMode(13,OUTPUT);
pinMode(7,INPUT);
pinMode(6,INPUT);
pinMode(5,INPUT);
pinMode(4,INPUT);
2
TECSUP Programación Arduino
}
void loop() {
bit0 = digitalRead(7); // Leemos el bit0
bit1 = digitalRead(6); // Leemos el bit1
bit2 = digitalRead(5); // Leemos el bit2
bit3 = digitalRead(4); // Leemos el bit3
//Calculamos el número en BCD
numero = bit3*8 + bit2*4 + bit1*2 + bit0;
digitalWrite(13,1); // Encendemos el led D1
delay(numero*1000); // Multiplicamos por 1000
digitalWrite(13,0); // Apagamos el led D1
delay(numero*1000); // Multiplicamos por 1000
}
2. Ejecutar el programa (sketch) que muestra en los LED el valor en binario del numero
ingresado por el DIPSWITCH.
bool bit0,bit1,bit2,bit3;
void setup() {
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(7,INPUT);
pinMode(6,INPUT);
pinMode(5,INPUT);
pinMode(4,INPUT);
}
void loop() {
bit0 = digitalRead(7); // Leemos el bit0
bit1 = digitalRead(6); // Leemos el bit1
3
TECSUP Programación Arduino
bit2 = digitalRead(5); // Leemos el bit2
bit3 = digitalRead(4); // Leemos el bit3
digitalWrite(13,bit0); // Encendemos el led D1
digitalWrite(12,bit1); // Apagamos el led D1
digitalWrite(11,bit2); // Encendemos el led D1
digitalWrite(10,bit3); // Apagamos el led D1
}
3. En este ejemplo, vamos a encender los segmentos en forma secuencial con el
siguiente orden: a, b, c, d, e, f.
//** Definiciones **//
int a=12; //definimos el valor del pin para el segmento “a”
int b=13; // definimos el valor del pin para el segmento “b”
int c=7; // definimos el valor del pin para el segmento “c”
int d=9; // definimos el valor del pin para el segmento “d”
int e=8; // definimos el valor del pin para el segmento “e
int f=11; // definimos el valor del pin para el segmento “f”
//** Programa **//
void setup() {
pinMode(a,OUTPUT); //declaramos el pin “a” como salida
pinMode(b,OUTPUT); //declaramos el pin “b” como salida
pinMode(c,OUTPUT); //declaramos el pin “c” como salida
pinMode(d,OUTPUT); //declaramos el pin “d” como salida
pinMode(e,OUTPUT); //declaramos el pin “e” como salida
pinMode(f,OUTPUT); //declaramos el pin “f” como salida
}
4
TECSUP Programación Arduino
void loop() {
digitalWrite(a,HIGH); //encendemos el segmento “a”
delay(500); //esperamos medio segundo
digitalWrite(a,LOW); //apagamos el led “a”
delay(500); //esperamos medio segundo
digitalWrite(b,HIGH); //encendemos el segmento “b”
delay(500); // esperamos medio segundo
digitalWrite(b,LOW); //apagamos el segmento “b”
delay(500); //esperamos medio segundo
digitalWrite(c,HIGH); //encendemos el segmento “c”
delay(500); // esperamos medio segundo
digitalWrite(c,LOW); //apagamos el segmento “c”
delay(500); //esperamos medio segundo
digitalWrite(d,HIGH); //encendemos el segmento “d”
delay(500); // esperamos medio segundo
digitalWrite(d,LOW); //apagamos el segmento “d”
delay(500); //esperamos medio segundo
digitalWrite(e,HIGH); //encendemos el segmento “e”
delay(500); // esperamos medio segundo
digitalWrite(e,LOW); //apagamos el segmento “e”
delay(500); //esperamos medio segundo
digitalWrite(f,HIGH); //encendemos el segmento “f”
delay(500); // esperamos medio segundo
digitalWrite(f,LOW); //apagamos el segmento “f”
delay(500); //esperamos medio segundo
}
4. Para el circuito anterior, modificar el programa para que en el display se muestre el
número cero y el 1 en intervalos de 1 segundo.
5
TECSUP Programación Arduino
//** Definiciones **//
int a=12; //definimos el valor del pin para el segmento “a”
int b=13; // definimos el valor del pin para el segmento “b”
int c=7; // definimos el valor del pin para el segmento “c”
int d=9; // definimos el valor del pin para el segmento “d”
int e=8; // definimos el valor del pin para el segmento “e
int f=11; // definimos el valor del pin para el segmento “f”
//** Programa **//
void setup() {
pinMode(a,OUTPUT); //declaramos el pin “a” como salida
pinMode(b,OUTPUT); //declaramos el pin “b” como salida
pinMode(c,OUTPUT); //declaramos el pin “c” como salida
pinMode(d,OUTPUT); //declaramos el pin “d” como salida
pinMode(e,OUTPUT); //declaramos el pin “e” como salida
pinMode(f,OUTPUT); //declaramos el pin “f” como salida
}
void loop() {
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
delay(1000);
digitalWrite(a,0);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,0);
delay(1000);
}
5. Para el circuito anterior, modificar el programa para que en el display se muestre
desde el número cero hasta el número 9 en intervalos de 1 segundo.
6
TECSUP Programación Arduino
int a=12; //definimos el valor del pin para el segmento “a”
int b=13; // definimos el valor del pin para el segmento “b”
int c=7; // definimos el valor del pin para el segmento “c”
int d=9; // definimos el valor del pin para el segmento “d”
int e=8; // definimos el valor del pin para el segmento “e”
int f=11; // definimos el valor del pin para el segmento “f”
int g=10; // definimos el valor del pin para el segmento “g”
//** Programa **//
void setup() {
pinMode(a,OUTPUT); //declaramos el pin “a” como salida
pinMode(b,OUTPUT); //declaramos el pin “b” como salida
pinMode(c,OUTPUT); //declaramos el pin “c” como salida
pinMode(d,OUTPUT); //declaramos el pin “d” como salida
pinMode(e,OUTPUT); //declaramos el pin “e” como salida
pinMode(f,OUTPUT); //declaramos el pin “f” como salida
}
void loop() {
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
delay(1000);
digitalWrite(a,0);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,0);
7
TECSUP Programación Arduino
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,0);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,0);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,0);
digitalWrite(f,0);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,0);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,0);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,0);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,0);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,0);
digitalWrite(g,0);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
8
TECSUP Programación Arduino
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
9
TECSUP Programación Arduino
6. Para el circuito anterior, modificar el programa para que en el display se muestre solo
los números pares desde el número 0 hasta el número 8 en intervalos de 1 segundo.
//** Definiciones **//
int a=12; //definimos el valor del pin para el segmento “a”
int b=13; // definimos el valor del pin para el segmento “b”
int c=7; // definimos el valor del pin para el segmento “c”
int d=9; // definimos el valor del pin para el segmento “d”
int e=8; // definimos el valor del pin para el segmento “e
int f=11;
int g=10;// definimos el valor del pin para el segmento “f”
//** Programa **//
void setup() {
pinMode(a,OUTPUT); //declaramos el pin “a” como salida
pinMode(b,OUTPUT); //declaramos el pin “b” como salida
pinMode(c,OUTPUT); //declaramos el pin “c” como salida
pinMode(d,OUTPUT); //declaramos el pin “d” como salida
pinMode(e,OUTPUT); //declaramos el pin “e” como salida
pinMode(f,OUTPUT); //declaramos el pin “f” como salida
}
void loop() {
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,0);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,0);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,0);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,0);
digitalWrite(e,0);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,0);
digitalWrite(c,1);
10
TECSUP Programación Arduino
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
digitalWrite(a,1);
digitalWrite(b,1);
digitalWrite(c,1);
digitalWrite(d,1);
digitalWrite(e,1);
digitalWrite(f,1);
digitalWrite(g,1);
delay(1000);
Lima, 2022
TECSUP
11