Publicado el 16 de Mayo del 2019
4.782 visualizaciones desde el 16 de Mayo del 2019
4,6 MB
34 paginas
Creado hace 11a (18/11/2013)
EJERCICIOS DE ARDUINO
RESUELTOS
Grupo Sabika
«Ejercicios de Arduino resueltos», Grupo Sabika
Revisado: 18/11/2013
1
Instalar Entorno de Programación Arduino en Ubuntu (10.10, 10.04, 9.10 y 9.04)
Para la instalación de Arduino se requieren ciertos paquetes para su funcionamiento...
librxtx-java // Librería para comunicación serial
avr-libc & gcc-avr // Paquete de compiladores para la programación de Microcontroladores Atmel
con Lenguaje C
sun-java6-jre // Motor Java
•
•
•
1) Puede instalar estos paquetes desde Synaptic como sigue: Sistema > Administración > Gestor de Paquetes
Synaptic En la ventana del Synaptic proceda a seleccionar cada uno de los paquetes mencionados ó desde
una consola (terminal) escribiendo lo siguiente: sudo apt-get install librxtx-java avr-libc gcc-avr
sun-java6-jre
2) Descargue arduino desde su pagina web en http://arduino.cc/ o abra una terminal y escriba lo siguiente:
Para versiones de 32 bits (i386) wget http://arduino.googlecode.com/files/arduino-0021.tgz
Para versiones de 64 bits (amd64) wget http://files.arduino.cc/downloads/arduino-0021-2.tgz
3) Descomprimalo...
Realizando doble clic sobre el archivador o en una terminal con tar xvf arduino-0021.tgz
4) Ubíquese en la carpeta...
Con el navegador de archivos o mediante una terminal cd arduino-0021
5) Ejecútelo …
Realizando doble clic sobre el archivo llamado arduino o mediante un terminal ./arduino
Otra forma muy sencilla de Instalar Arduino en Ubuntu 9.10 y 10.04 es a través del repositorio de Arduino
para Ubuntu, para ello seguimos los siguientes pasos en un terminal de Linux, «menú Aplicaciones >
Accesorios > Terminal»:
1) «sudo add-apt-repository ppa:arduino-ubuntu-team». Añade el repositorio de ubuntu a las orígenes de
software de tu equipo.
2) «sudo apt-get update». Actutaliza los orígenes de software de tu equipo y por tanto los repositorios.
3) «sudo apt-get install arduino». Instala Arduino con todas sus dependencias.
4) Arduino aparece en el «menú Aplicaciones > Programación > Arduino».
Nota: las ordenes que tengan «sudo» delante requieren permisos de administrador y por tanto pedirá la
contraseña de adminsitrador.
En la actual Ubuntu 10.10 desde el «centro de software de Ubuntu» se instala directamente.
«Ejercicios de Arduino resueltos», Grupo Sabika
2
EJERCICIOS DE ARDUINO.
Led parpadeante.
Se trata de conectar un led al pin13, haciendo que luzca durante 500 ms y que se apague durante 100 ms, este
proceso se repetirá cíclicamente.
Objetivos:
• Reconocer partes de la placa.
• Aprender a conexionar leds a la placa.
•
Familiarizarse con el entorno de programación.
• Reconocer las partes de un programa de arduino.
• Conocer órdenes como: pinMode, digitalWrite y delay.
Vídeo
Solución:
void setup() { //comienza la configuracion
pinMode(13, OUTPUT); //configura el pin 13 como de salida
} //termina la configuracion
void loop() { //comienza el bucle principal del programa
digitalWrite(13, HIGH); //envia 5V al pin (salida) 13
delay (500); //espera 500 ms pin 13 con 5V
«Ejercicios de Arduino resueltos», Grupo Sabika
3
digitalWrite(13, LOW); //envia 0V al pin (salida) 13
delay (100); //espera 100 ms pin 13 con 0V
}
Secuencia de leds.
Se trata de encender y apagar 4 leds secuencialmente. Los leds deben estar conectados a los pines 5,6,7 y 8.
Se deben encender y posteriormente apagar los leds desde el pin 5 al 8, con un tiempo de duración de
encendido y apagado de 200 milisegundos.
Nota: en una segunda soución la secuencia principal del programa debe estar reproducida en una función a la
que llamará el programa principal.
Objetivos:
Familiarizarse con el entorno de programación.
•
• Aprender a declarar variables y variables tipo lista de valores.
• Aprender a declarar una función y llamarla cuando sea necesario.
Solución 1:
int tiempo=200; //declara una variable como entero y de valor 200
Video
void setup() { //comienza la configuracion
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
}
void loop() { //comienza el bucle principal del programa
digitalWrite(5,HIGH);
delay(tiempo);
digitalWrite(5,LOW);
delay(tiempo);
digitalWrite(6,HIGH);
delay(tiempo);
digitalWrite(6,LOW);
delay(tiempo);
digitalWrite(7,HIGH);
delay(tiempo);
«Ejercicios de Arduino resueltos», Grupo Sabika
4
digitalWrite(7,LOW);
delay(tiempo);
digitalWrite(8,HIGH);
delay(tiempo);
digitalWrite(8,LOW);
delay(tiempo);
}
Solución 2:
int tiempo=200;
int n;
void setup() { //comienza la configuracion
for (n=5;n<9;n++) {
pinMode (n, OUTPUT);
}
}
void secuencia() {
for (n=5;n<9;n++) {
digitalWrite (n, HIGH);
delay (tiempo);
digitalWrite (n, LOW);
delay (tiempo);
}
}
void loop() {
secuencia();
}
Solución 3:
int leds[]={5,6,7,8};// Declara variables tipo lista de valores
int tiempo=200;
int n=0;
void setup() { //comienza la configuracion
for (n=0;n<4;n++) {
pinMode (leds[n], OUTPUT);
}
}
void secuencia() {
for (n=0;n<4;n++) {
digitalWrite (leds[n], HIGH);
delay (tiempo);
digitalWrite (leds[n], LOW);
delay (tiempo);
}
}
void loop() {
secuencia();
}
Cruce de semáforos.
Se trata de un cruce de semáforos controlado por arduino, para ello utilizaremos en el primer semáforo los
pines 3 (led rojo), 4 (led ambar), 5 (led verde), en el segundo semáforo utilizaremos los pines 6 (led rojo), 7
(led ambar) y 8 (led verde). La secuencia de funcionamiento debe ser : rojo 1 – verde 2 durante 3 segundos,
rojo 1 – ambar 2 durante 500 ms, verde 1 – rojo 2 durante 3 segundos, ambar 1 - , rojo 2 durante 500 ms.
«Ejercicios de Arduino resueltos», Grupo Sabika
5
Objetivos:
Familiarizarse con el entorno de programación.
•
• Aprender a declarar variables tipo lista de valores.
Solución:
int leds[]={3,4,5,6,7,8);
int tiempo1=3000;
int tiempo2=500;
int n;
void setup() {
for (n=0;n<6;n++) {
pinMode (leds[n],OUTPUT);
}
}
void loop () {
digitalWrite (leds[0],HIGH);
digitalWrite (leds[5],HIGH);
delay (tiempo1);
digitalWrite (leds[5],LOW);
digitalWrite (leds[4],HIGH);
delay (tiempo2);
difitalWrite[leds[0],LOW);
digitalWrite (leds[2],HIGH);
digitalWrite (leds[4],LOW);
digitalWrite (leds[3],HIGH);
delay (tiempo1);
digitalWrite (leds[2],LOW);
digitalWrite(leds[1],HIGH);
delay (tiempo2);
}
SOS con zumbador.
Se trata de un zumbador que en código morse (pitidos largos/cortos) especifica una palabra, en nuestro caso
SOS. Para el que no lo sepa, la S son tres señales acústicas de corta duración y la O tres señales acústica de
larga duración.
El zumbador debe estar conectado al pin 13, los pitidos cortos tendrán una duración de 100 ms y los largos
300 ms. Entre letra y letra debe pasar un tiempo de 300 ms y entre SOSs debe haber un tiempo de 1000 ms.
Nota: Debes usar variables para guardar los tiempos que vas a usar.
Objetivos:
• Reconocer partes de la placa.
• Aprender a conexionar un zumbador a la placa.
•
Familiarizarse con el entorno de programación.
• Reconocer las partes de un programa de arduino.
• Aprender a como declarar variables.
• Conocer órdenes de control de programa como: for.
«Ejercicios de Arduino resueltos», Grupo Sabika
6
Video
Solución:
int corto=100; //Declara la variable de argumento entero "corto" y la inicializa con el valor 100 (letra S)
int pausa=300;//tiempo entre letra y letra
int largo=300; //variable de argumento entero "largo" y la inicializa con el valor 300 (letra O)
int espera=1000;//variable argumento entero "espera" y la inicializa con el valor 1000 (tiempo entre SOS -
SOS)
int n=0;
int zumb=13; //PIN digital al que conectamos el zumbador
void setup(){ //comienza la configuracion
pinMode(zumb,OUTPUT);
}
void loop(){
for(n=0;n<3;n++){ //Iteracion en la que la variable n comienza con el valor 0
digitalWrite(zumb, HIGH); // y va aumentando en 1 en cada ciclo hasta que toma el valor 2,
delay(corto); // con lo que las instrucciones comprendidas entre los corchetes
digitalWrite(zumb,LOW); // se repiten 3 veces
delay(corto);
}
delay(pausa); //Tiempo entre letras
for(n=0;n<3;n++){ //Aqui esta la O
digitalWrite(zumb, HIGH);
delay(largo);
digitalWrite(zumb,LOW);
delay(largo);
}
delay(pausa);
for(n=0;n<3;n++){
digitalWrite(zumb, HIGH);
delay(corto);
digitalWrite(zumb,LOW);
delay(corto);
}
delay(espera); //Tiempo hasta repetir SOS de nuevo
}
Solución 2:
«Ejercicios de Arduino resueltos», Grupo Sabika
7
int tcorto=100;
int tlargo=300;
int pausa=300;
int espera=1000;
int n=0;
void setup(){ //comienza la configuracion
pinMode(13,OUTPUT);
}
void s(){ //comienza el bucle para la letra S
for(n=0;n<3;n++) {
digitalWrite (13,HIGH);
delay (tcorto);
digitalWrite (13,LOW);
delay (tcorto);
}
}
void o(){ //comienza el bucle para la letra O
for(n=0;n<3;n++) {
digitalWrite (13,HIGH);
delay (tlargo);
digitalWrite (13,LOW);
delay (tlargo);
}
}
void loop(){ //se ejecuta el bucle principal en el orden siguiente
s();
delay(pausa);
o();
delay(pausa);
s();
delay(espera);
}
Coche Fantástico.
Se trata de encender y apagar 7 leds secuencialmente. Los leds deben estar conectados a los pines
5,6,7,8,9,10 y 11.
Se deben encender y apagar los leds desde el pin 5 al 11, con un tiempo de encendido y apagado de 50 ms,
más tarde se deben encender y apagar los leds desde el pin 11 al 5, con un tiempo de encendido y apagado de
50 ms. La secuencia se debe repetir indefinidamente.
El efecto del programa es el de las luces delanteras de nuestro querido "Coche fantástico".
Objetivos:
Familiarizarse con el entorno de programación.
•
• Repasar declaración de variables tipo lista de valores.
• Repasar órdenes de control de programa como: for.
«Ejercicios de Arduino resueltos», Grupo Sabika
8
Solución:
int leds[]={5,6,7,8,9,10,11};
int n=0;
int tiempo=50;
Video
void setup() { //comienza la configuración
for (n=0;n<7;n++) {
pinMode(leds[n],OUTPUT);
}
}
void loop() {
for (n=0;n<7;n++) {
digitalWrite (leds[n],HIGH);
delay(tiempo);
digitalWrite (leds[n],LOW);
delay(tiempo);
}
for (n=6;n>=0;n--) {
digitalWrite (leds[n],HIGH);
Comentarios de: Ejercicios de Arduino resueltos (0)
No hay comentarios