Lourdes Mª Pérez Villalba
tp ://
ht pe re zv
es
ur d
lo
s. co m
es
dp r
illa lb a. w or
/
INDICE Orden
Concepto
Páginas
1. INTRODUCCIÓN 1.1 1.2
2 2-3
¿Qué es un Arduino? Ventajas del Arduino
3-4 4-5
s. co m
Placa de Arduino Entradas y salidas
3. SOFTWARE
6-7 7-8
4. PRÁCTICAS Lenguaje de programación Arduino Conectar un pulsador Conectar un potenciómetro Intermitente
4.5 4.6 4.7 4.8
Alarma Secuencia de 3 LEDs Coche fantástico Coche fantástico 2
4.9 4.10 4.11
Estrella fugaz Contador Contador de 0 a 10
pe re zv
5. ANEXOS
Datasheet ATmega328 Lista de instrucciones
9 10 11 12 13-14 15-16 17-18 19-20 21 22-23 24-25
26-27-28 29
ht
tp ://
lo
ur d
es
5.1 5.2
illa lb a. w or
4.1 4.2 4.3 4.4
es
Instalación Configuración del IDE
dp r
3.1 3.2
/
2. HARDWARE 2.1 2.2
1
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
1. INTRODUCCIÓN Este manual de prácticas sobre Arduino Uno te ayudará a realizar pequeños proyectos y familiarizarte con una programación básica utilizada en esta plataforma de hardware libre.
s. co m
/
1.1. ¿Qué es un Arduino? ‒ Arduino es una tarjeta electrónica que integra un microcontrolador y un conjunto de pines que actúan como entradas o salidas que permiten, mediante un determinado software, interaccionar con el medio físico.
es
De esta forma se pueden crear proyectos tecnológicos y dotarlos de sensores que detecten magnitudes físicas como luz, calor, fuerza... que con ayuda de un software activarán otros dispositivos como pueden ser bombillas, diodos LEDs, pequeños motores DC, relés, etc.
pe re zv
illa lb a. w or
dp r
1.2. Ventajas del Arduino ‒ Hay muchas plataformas con microcontroladores disponibles para la computación física, como, Parallax Basic Stamp, BX-24 de Netmedia, Phidgets, Handyboard del MIT, entre otros. Todas estas herramientas organizan el complicado trabajo de programar un microcontrolador en paquetes fáciles de usar. Arduino, además de simplificar el proceso de trabajar con microcontroladores, ofrece otras ventajas: • Simplifica. Arduino simplifica el proceso de trabajar con microcontroladores. • Bajos costos. Las placas Arduino son más accesibles comparadas con otras plataformas de microcontroladores.
ur d
es
• Multi-Plataforma. El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux; mientras que la mayoría de otros entornos para microcontroladores están limitados a Windows.
tp ://
lo
• Entorno de programación simple y directo. El entorno de programación de Arduino es fácil de usar para principiantes y flexible para los usuarios avanzados.
ht
• Software ampliable y de código abierto. El software Arduino es de distribución de licencia libre y preparado para ser adaptado por programadores experimentados. El lenguaje puede ampliarse a través de librerías de C++, y en caso de más profundización se puede dar el salto a programación en lenguaje AVR C en el que está basado. • Hardware ampliable y de Código abierto. Arduino está basado en los microcontroladores ATMEGA168, ATMEGA328 y ATMEGA1280. Los diseñadores de circuitos con experiencia pueden hacer su propia versión del módulo, ampliándolo u optimizándolo.
2
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
2.
HARDWARE
E/S DIGITALES
MICROCONTROLADOR
illa lb a. w or
dp r
es
RESET
s. co m
/
2.1. Placa del Arduino ‒ Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar a aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing).
ur d
es
pe re zv
USB
ALIMENTACIÓN
ENTRADAS ANÁLOGICAS
lo
ALIMENTACIÓN EXTERNA
tp ://
• Reset: Poniendo esta línea a LOW resetea el microcontrolador. Utilizada típicamente para añadir un botón de reset a shields que bloquean el de la placa principal.
ht
• E/S Digitales: - Serial: Patillas 0 (RX) y 1 (TX). Utilizado para recibir (RX) y transmitir (TX) datos serie TTL. - Interrupciones externas: Patillas 2 y 3. Estos terminales pueden ser configuradas para disparar una interrupción con un valor bajo, un pulso de subida o bajada, o un cambio de valor. - PWM: Patillas 3, 5, 6, 9. Proporcionan salidas PWM de 8 bit con la función analogWrite(). - Reset BT: Patilla 7. (solo en Arduino BT).
3
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
-
-
SPI: Patillas 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos terminales soportan comunicación SPI (estándar de comunicaciones, para la transferencia de información entre circuitos integrados). Aunque no está incluida actualmente al lenguaje Arduino. LED: Patilla 13. Hay un LED conectado a este pin. Cuando el pin tiene valor HIGH, el LED está encendido, cuando el pin está en LOW, está apagado.
s. co m
/
• Microcontrolador: 14 pines configurables como entrada/salidas (I/O). Se explicará con mayor detenimiento en el apartado siguiente. • USB: Pin para la conexión con el ordenador.
es
• Alimentación externa: Alimentación mediante transformador o batería.
illa lb a. w or
dp r
• Alimentación: - VIN ó 9V. Es el voltaje de entrada a la placa Arduino cuando se está utilizando una fuente de alimentación externa. - 5V. La alimentación regulada utilizada para alimentar el microcontrolador y otros componentes de la placa. - 3V3. Fuente de 3.3 voltios generada por el chip FTDI de la placa. - GND. Pines de tierra. • Entradas analógicas: Soportan conversiones analógico-digital (ADC) de 10 bit.
es
pe re zv
2.2. Entradas y salidas ‒ El Arduino Uno se basa en un microcontrolador (ATmega328) que consta de 14 pines configurables como entrada/salidas (I/O) digitales que operan a 5 voltios. Cada pin puede proporcionar o recibir como máximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Wide Modulation). Si se conecta alguna entrada/salida a los pines 0 ó 1, interferirá con la comunicación USB.
ur d
Los pines 0 y 1 pueden ser utilizados como puerto de comunicación serial (para la comunicación entre la placa Arduino y el ordenador)
tp ://
lo
También tiene 6 entradas analógicas que proporcionan una resolución de 10 bits. Por defecto miden de 0 hasta 5 voltios, aunque es posible cambiarlo.
ht
A continuación se muestra una tabla resumen con las principales características de este microcontrolador y la configuración de sus pines:
4
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
s. co m
5V 7-12 V 6-20 V 14 (6 proporcionan PWM) 6 40 mA 32 KB 1 KB 512 bytes 16 MHz
ht
tp ://
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
Voltaje operativo Voltaje de entrada recomendado Voltaje de entrada limite Pines de entrada y salida digital Pines de entrada analógica Intensidad de corriente Memoria Flash SRAM EEPROM Frecuencia de reloj
/
ATmega328
5
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
3. SOFTWARE La siguiente instalación es específica para Windows. 3.1. Instalación
• Descarga el IDE de la página de descarga:
es
http://arduino.cc/es/Main/Software#.UzdvO_l_uSoç
s. co m
/
• ¿Qué es IDE? ‒ Entorno de Desarrollo Integrado (Integrated Development Environment). Es un entorno de programación que ha sido empaquetado como un programa de aplicación; consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica.
illa lb a. w or
dp r
‒ Cuando la descarga finalice, descomprime el fichero. Haz doble click en la carpeta arduino-00XX para abrirla, dentro aparecerán una serie de ficheros. • Conecta la placa ‒ Conecta la placa Arduino a tu ordenador usando el cable USB el LED verde indicador de la alimentación debería quedar encendido a partir de ese momento.
pe re zv
• Instala los drivers ‒ Cuando conectas la placa, Windows debería inicializar la instalación de los drivers.
es
‒ En Windows Vista y Windows 7: Los drivers deberían descargarse e instalarse automáticamente.
ur d
‒ En Windows XP: Se abrirá el diálogo de instalación de Nuevo Harware:
tp ://
lo
Cuando te pregunten: ¿Puede Windows conectarse a Windows Update para buscar el software? Selecciona No, no esta vez. Haz click en Siguiente.
ht
Selecciona Instalar desde una lista o localización específica (Avanzado) haz click en Siguiente. Asegúrate que Buscar los mejores drivers en estas localizaciones esté seleccionado; deselecciona Buscar en medios removibles; selecciona Incluye esta localización en la búsqueda y navega al directorio drivers/FTDI USB Drivers dentro de la carpeta de Arduino que has descomprimido previamente. (La versión más reciente de los drivers se puede encontrar en la página web del fabricante delchip FTDI.) Haz click en Siguiente.
6
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
El asistente de instalación buscará los drivers y te anunciará que encontró un "USB Serial Converter" (se traduce por Conversor USB-Serie). Haz click en Finalizar. El asistente de instalación de hardware volverá a iniciarse. Repite los mismos pasos que antes y selecciona la misma carpeta de instalación de los drivers. Esta vez el sistema encontrará un "USB Serial Port" (o Puerto USB-Serie).
s. co m
/
Puedes comprobar que los drivers se han instalado correctamente abriendo la carpeta del Administrador del Dispositivos, en el grupo Dispositivos del panel de control del sistema. Busca "USB Serial Port" (o Puerto USB-Serie) en la sección de puertos; esa es tu placa Arduino.
dp r
es
3.2. Configuración del IDE • Entra a la carpeta que descomprimiste, busca y ejecuta el archivo Arduino.exe (1). Si no se ejecuta entonces ejecútalo desde administrador.
illa lb a. w or
• Una vez abierto el IDE de Arduino busca la pestaña “Herramientas”, y da clic en Tarjeta. Selecciona el tipo de Arduino que tienes (UNO) (2). • Ya estará terminada la configuración del IDE.
ht
tp ://
lo
ur d
es
pe re zv
(1)
(2 )
7
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
illa lb a. w or
dp r
es
s. co m
/
(2)
[ La siguiente instalación es específica para Linux ]
pe re zv
• La instalación en Linux es mucho más sencilla basta con entrar en el terminal y escribir:
ht
tp ://
lo
ur d
es
• Con esto ya estará instalada la versión estable de Arduino, Si se desea la última versión Beta o Nightly solo habrá que escribir:
8
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
4. PRACTICAS 4.1. Lenguaje de programación Arduino
Asignar a una variable un PIN
int vble = número;
Asignar a una variable un valor
void setup()
A partir de aquí se configuran las salidas
void loop()
Inicio de un bucle (programa)
pinMode (número-de-pin, OUTPUT);
Inicialar un PIN como salida
illa lb a. w or
dp r
es
s. co m
/
int vble = número-de-pin;
pinMode (número-de-pin, INPUT);
Inicializar un PIN como entrada
digitalRead(número-de-pin);
Leer el valor de la entrada
pe re zv
digitalWrite (número-de-pin, HIGH)
Activar PIN
Desactivar PIN
Delay (número);
Tiempo de espera (ms)
ur d
es
digitalWrite (número-de-pin, LOW);
lo
int pinArray[] = {2, 3, 4, 5, 6, 7};
for (vble=0; vble <6; vble++)
Bucle “for” ascendente
for (vble =0; vble <6; vble -)
Bucle “for” descendente
if (vble == 0)
Bucle “if”
tp :// ht 9
Definir un array
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: -
Aprender a colocar un pulsador y su lenguaje para su correcto funcionamiento. Para ello, utilizaremos un LED para su comprobación.
· INSTRUMENTOS:
/
Pulsador Resistencia de 10K (para el pulsador) Diodo LED
s. co m
-
es
· ORGANIGRAMA Y PROGRAMA:
dp r
int ledPin = 13; // PIN del LED int inPin = 10; // PIN del pulsador int value = 0; // Inicializa el pulsador a 0 void setup() { pinMode(ledPin, OUTPUT); // Inicializa PIN 13 como salida pinMode(inPin, INPUT); // Inicializa PIN 10 como entrada } void loop() { value = digitalRead(inPin); // Lee el valor de la entrada digital digitalWrite(ledPin, value); //Escribe valor en PIN 13 }
illa lb a. w or
Inicio Configuración E/S SD PIN13 (LED) ED PIN10 (pulsador)
pe re zv
Leer entrada
lo
ur d
es
Escribir valor
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.2
Conectar un pulsador ESPECIALIDAD :
10
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: - Aprender a colocar un potenciómetro y su lenguaje para su correcto funcionamiento. Para ello, utilizaremos un LED para su comprobación.
· INSTRUMENTOS:
/
Potenciómetro Diodo LED
s. co m
-
· ORGANIGRAMA Y PROGRAMA:
es
Inicio
dp r
Configuración E/S SD PIN13 EA PIN2
illa lb a. w or
int potPin = 2; // PIN del potenciómetro (analógico) int ledPin = 13; // PIN del LED int val = 0; // Variable para almacenar el valor capturado desde el sensor, se inicializa a 0 void setup() { pinMode(ledPin, OUTPUT); // Inicializa PIN 13 como salida } void loop() { val = analogRead(potPin); // Lee el valor del sensor digitalWrite(ledPin, HIGH); // Enciende el LED delay(val); // Detiene el programa por un tiempo digitalWrite(ledPin, LOW); // Apaga el LED delay(val); // Detiene el programa por un tiempo }
Leer entrada Analógica (PIN2) Activa Salida PIN13 = HIGH
pe re zv
Retardo
es
Desactiva Salida PIN13 = LOW
lo
ur d
Retardo
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.3
Conectar un potenciómetro ESPECIALIDAD :
11
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: -
Realizar un ejercicio que consiste en encender y apagar un LED que conectamos en el PIN 13 de Arduino Uno configurado como salida. El tiempo d*e encendido y apagado será de 1 segundo.
· INSTRUMENTOS: Diodo LED
s. co m
/
-
· ORGANIGRAMA Y PROGRAMA:
ur d
es
pe re zv
illa lb a. w or
dp r
es
int ledPin = 13; // PIN del LED void setup() { pinMode(ledPin, OUTPUT); // Inicializa PIN 13 como salida. } void loop() // Bucle de funcionamiento { digitalWrite(ledPin, HIGH); // Activa LED delay(1000); // Tiempo 1 seg. (encendido) digitalWrite(ledPin, LOW); // desactiva el LED delay(1000); // Tiempo 1 seg. (apagado) }
FECHA
NOMBRE
COLEGIO:
lo
MÓDULO
ht
tp ://
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.4
Intermitente ESPECIALIDAD :
12
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: -
Cuando se acciona el pulsador, el LED en la salida 13 se enciende y apaga de forma intermitente.
s. co m
/
· INSTRUMENTOS: - Diodo LED - Pulsador - Resistencia de 10K (para el pulsador)
ur d
es
pe re zv
illa lb a. w or
dp r
es
· ORGANIGRAMA:
FECHA
NOMBRE
COLEGIO:
lo
MÓDULO
ht
tp ://
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.5
Alarma ESPECIALIDAD :
13
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· PROGRAMA:
ur d
es
pe re zv
illa lb a. w or
dp r
es
s. co m
/
int ledPin= 13; // delay(timer); digitalWrite(pin6, LOW); delay(timer); digitalWrite(pin5, HIGH); delay(timer); digitalWrite(pin5, LOW); delay(timer); digitalWrite(pin4, HIGH); delay(timer); digitalWrite(pin4, LOW); delay(timer); digitalWrite(pin3, HIGH); delay(timer); digitalWrite(pin3, LOW); delay(timer); } int inPin= 5; // PIN del pulsador int val= 0; // Inicializa el pulsador a 0 void setup() { pinMode(ledPin, OUTPUT); // Declara LED como salida pinMode(inPin, INPUT); // Declara pulsador como entrada } void loop(){ val= digitalRead(inPin); // lee el valor de entrada if(val== HIGH) { // Comprueba si el valor leído está a “1” (botón presionado) digitalWrite(ledPin, LOW); // Apaga LED } else{ digitalWrite(ledPin, LOW); // Apaga LED delay(200); Tiempo 1 seg. (apagado) digitalWrite(ledPin, HIGH);//Enciende LED delay(200); Tiempo 1 seg. (encendido) } }
FECHA
NOMBRE
COLEGIO:
lo
MÓDULO
ht
tp ://
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.5.1
Alarma ESPECIALIDAD :
14
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: -
Encender y apagar 3 LEDs colocados en las salidas 6, 7 y 8 (PIN6, PIN7 y PIN8) con una cadencia de 200 ms. Las variables asignadas a cada LED serán ledPin1, ledPin2 y ledPin3.
· INSTRUMENTOS: 3 LEDs 3 Resistencias
s. co m
/
-
· ORGANIGRAMA
es
Inicio
illa lb a. w or
dp r
Configuración E/S SD PIN 6 ledPin1 SD PIN 7 ledPin2 SD PIN 8 ledPin3 Activa ledPin1 (PIN6 = HIGH) Tiempo Delay (200 ms)
pe re zv
Desactiva ledPin1 (PIN6 = LOW)
Activa ledPin3 (PIN8 = HIGH)
Tiempo Delay (200 ms)
Tiempo Delay (200 ms)
Desactiva ledPin2 (PIN7 = LOW)
Desactiva ledPin3 (PIN8 = LOW)
Tiempo Delay (200 ms)
Tiempo Delay (200 ms)
lo
ur d
es
Tiempo Delay (200 ms)
Activa ledPin2 (PIN7 = HIGH)
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.6
Secuencia de 3 LEDs ESPECIALIDAD :
15
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
lo
s. co m
ur d
es
pe re zv
illa lb a. w or
dp r
es
int ledPin1 = 6; // Define las salidas de los LEDs int ledPin2 = 7; int ledPin3 = 8; void setup() { // Configura las Salidas pinMode(ledPin1, OUTPUT); // Declara LEDs como Salidas pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); digitalWrite(ledPin1, LOW); // Apaga los LEDs digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, LOW); } void loop(){ //Bucle de Funcionamiento digitalWrite(ledPin1, HIGH); // Enciende LED 1, cada 200 ms delay(200); digitalWrite(ledPin1, LOW); Apaga LED 1, cada 200 ms digitalWrite(ledPin2, HIGH); delay(200); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, HIGH); delay(200); digitalWrite(ledPin3, LOW); }
/
· PROGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.6.1
Secuencia de 3 LEDs ESPECIALIDAD :
16
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: - Aprender a programar secuencialmente una hilera de, en este caso, 6 diodos LEDs haciendo un juego de luces emulando el famoso “coche fantástico”.
s. co m
/
· INSTRUMENTOS: - 6 Diodos LEDs - 6 Resistencias de 220Ω
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
· ORGANIGRAMA:
FECHA
NOMBRE
COLEGIO: Salesiano San Bartolomé
ht
tp ://
MÓDULO
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.7
Coche fantástico ESPECIALIDAD :
17
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
lo
s. co m es dp r
ur d
es
pe re zv
illa lb a. w or
int pin2 = 2; // PIN del LED int pin3 = 3; int pin4 = 4; int pin5 = 5; int pin6 = 6; int pin7 = 7; int timer = 100; // Temporizador void setup(){ pinMode(pin2, OUTPUT); // Declara LED como salida pinMode(pin3, OUTPUT); pinMode(pin4, OUTPUT); pinMode(pin5, OUTPUT); pinMode(pin6, OUTPUT); pinMode(pin7, OUTPUT); } void loop() { digitalWrite(pin2, HIGH); // Enciende LEDs delay(timer); digitalWrite(pin2, LOW);//Apaga LEDs delay(timer); digitalWrite(pin3, HIGH); delay(timer); digitalWrite(pin3, LOW); delay(timer); … digitalWrite(pin7, HIGH); delay(timer); digitalWrite(pin7, LOW); delay(timer); digitalWrite(pin6, HIGH); delay(timer); digitalWrite(pin6, LOW); delay(timer); … digitalWrite(pin3, HIGH); delay(timer); digitalWrite(pin3, LOW); delay(timer); }
/
· PROGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.7.1
Coche fantástico ESPECIALIDAD :
18
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: - Al igual que en la práctica anterior, aquí el objetivo será aprender a programar secuencialmente una hilera de diodos LEDs, pero con otras instrucciones que simplificarán el programa.
s. co m
/
· INSTRUMENTOS: - 6 Diodos LEDs - 6 Resistencias de 220Ω
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
· ORGANIGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.8
Coche fantástico 2 ESPECIALIDAD :
19
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
s. co m
int pinArray[] = {2, 3, 4, 5, 6, 7}; // Define array de PINES int count = 0; // Contador int timer = 100; // Temporizador void setup() { for (count=0;count<6;count++) // Configuración de PINES { pinMode(pinArray[count], OUTPUT); } } void loop()// Secuencia de LEDs (encendido y apagado) { for (count=0;count<6;count++) { digitalWrite(pinArray[count], HIGH); // Recorrido de ida delay(timer); digitalWrite(pinArray[count], LOW); delay(timer); } for (count=5;count>=0;count--) { digitalWrite(pinArray[count], HIGH); // Recorrido de vuelta delay(timer); digitalWrite(pinArray[count], LOW); delay(timer); } }
/
· PROGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.8.2
Coche fantástico 2 ESPECIALIDAD :
20
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: - Realizar un rayo de luz (estrella fugaz), moviéndose a través de una línea de LEDs. - Configurar la velocidad de de la “estrella”. · INSTRUMENTOS: - 11 Diodos LEDs - 11 Resistecias de 220Ω
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
int pinArray [] = { 2,3,4,5,6,7,8,9,10,11,12 }; int controlLed = 13; // LED de control int waitNextLed = 100; // Tiempo de esperar entre LED y LED int tailLength = 4; // Tamaño del array (Número de LEDs conectados) int lineSize = 11; void setup(){ // Configuración de los PINES como salida int i; pinMode (controlLed, OUTPUT); for (i=0; i< lineSize; i++) { pinMode(pinArray[i], OUTPUT); } { void loop() } int i; // Contador para la cola int tailCounter = tailLength; // Se enciende el LED de control digitalWrite(controlLed, HIGH); for (i=0; i<lineSize; i++) { digitalWrite(pinArray[i],HIGH); // Entra en el array (encendido consecutivo de LEDs) delay(waitNextLed); //velocidad de la estrella if (tailCounter == 0) { digitalWrite(pinArray[i-tailLength],LOW); // Se apagan los LEDs else if (tailCounter > 0) tailCounter--; } for (i=(lineSize-tailLength); i<lineSize; i++) { digitalWrite(pinArray[i],LOW); // Se apagan los LED delay(waitNextLed); } }
s. co m
/
· PROGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.9
Estrella fugaz ESPECIALIDAD :
21
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: - Contar las veces que se pulsa un botón conectado a la vez que encendemos un LED.
s. co m
/
· INSTRUMENTOS: - Diodo LED - Pulsador - Resistencia de 10K
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
· ORGANIGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.10
Contador ESPECIALIDAD :
22
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
lo
s. co m
ur d
es
pe re zv
illa lb a. w or
dp r
es
int LED = 13; int boton = 7; int valor = 0; int contador = 0; int anteriorboton = 0; void setup() { beginSerial(9600); // Configura velocidad de transmisión a 9600 pinMode(LED, OUTPUT); // PIN 13 como salida pinMode(boton, INPUT); // PIN 7 como entrada } void loop() { valor = digitalRead(boton); // lee el valor de la entrada (PIN 7) digitalWrite(LED, valor); if(valor != anteriorboton){ if(valor == 1){ contador++; printInteger(contador); serialWrite(10); serialWrite(13); } } anteriorboton = valor; }
/
· PROGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.10.1
Contador ESPECIALIDAD :
23
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
· OBJETIVOS: - Como en la práctica anterior, se trata de realizar un contador, pero en este caso, cuando el valor alcance el número 10 volverá a empezar desde 0.
s. co m
/
· INSTRUMENTOS: - Diodo LED - Pulsador - Resistencia de 10K
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
· ORGANIGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.11
Contador de 0 a 10 ESPECIALIDAD :
24
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
lo
s. co m
ur d
es
pe re zv
illa lb a. w or
dp r
es
int LED = 13; int boton = 7; int valor = 0; int contador = 0; int anteriorboton = 0; void setup() { beginSerial(9600); // Configura velocidad de transmisión a 9600 pinMode(LED, OUTPUT); // PIN 13 como salida pinMode(boton, INPUT); // PIN 7 como entrada } void loop() { valor = digitalRead(boton); // lee el valor de la entrada (PIN 7) digitalWrite(LED, valor); if(valor != anteriorboton){ if(valor == 1){ contador++; printInteger(contador); serialWrite(10); serialWrite(13); if (contador==10) { // Cuenta hasta 10 contador=0; } } } anteriorboton = valor; }
/
· PROGRAMA:
FECHA
NOMBRE
COLEGIO:
tp ://
MÓDULO
ht
Salesiano San Bartolomé
NOTA
FIRMA
Título:
CURSO
NÚMERO
PRÁCTICA 4.11.1
Contador de 0 a 10 ESPECIALIDAD :
25
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
5. ANEXOS
ht
tp ://
lo
ur d
es
pe re zv
illa lb a. w or
dp r
es
s. co m
/
5.1. Datasheet ATmega328
26
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
/ s. co m es dp r illa lb a. w or pe re zv es ur d lo tp :// ht 27
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
/ s. co m es dp r illa lb a. w or pe re zv es ur d lo tp :// ht 28
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba
5.2. Lista de instrucciones
Utilidad
int vble = número-de-pin;
Asignar a una variable un PIN
int vble = número;
Asignar a una variable un valor
void setup()
A partir de aquí se configuran las salidas
void loop()
Inicio de un bucle (programa)
pinMode (número-de-pin, OUTPUT);
Inicialar un PIN como salida
illa lb a. w or
dp r
es
s. co m
/
Instrucción
Inicializar un PIN como entrada
digitalRead(número-de-pin);
Leer el valor de la entrada
Activar PIN
digitalWrite (número-de-pin, LOW);
Desactivar PIN
Delay (número);
Tiempo de espera (ms)
int pinArray[] = {2, 3, 4, 5, 6, 7};
Definir un array
tp ://
lo
ur d
pe re zv
digitalWrite (número-de-pin, HIGH)
es
pinMode (número-de-pin, INPUT);
Bucle “for” ascendente
for (vble =0; vble <6; vble -)
Bucle “for” descendente
if (vble == 0)
Bucle “if”
ht
for (vble=0; vble <6; vble++)
29
Manual de Prácticas Arduino Uno
Lourdes Mª Pérez Villalba