Академический Документы
Профессиональный Документы
Культура Документы
Laboratorio #1 de Arduino
Docente: M.Sc. Irma Prado
ELT-256 ARDUINO- PARTE 1
Índice
Introducción .................................................................................................................................. 3
Instalación ................................................................................................................................. 4
Cómo conectar el Arduino a la PC y probar si está bien instalado ................................................... 7
Programación en Arduino.................................................................................................... 10
Estructura de un programa en Arduino .................................................................................... 11
void setup() .......................................................................................................................... 11
void loop()............................................................................................................................ 11
Explicación del program blink ................................................................................................... 11
Características y Sintáxis del programa en Arduino................................................................... 12
Palabras reservadas ................................................................................................................. 13
Funciones declaradas y desarrolladas por el usuario ................................................................ 13
Comandos importantes ............................................................................................................ 14
Ejemplos: ..................................................................................................................................... 14
Ejemplo 1.- Enciende y apaga el led conectado al pin 5 ........................................................ 14
Ejemplo 2.- Se configura los pin 5,7,9,11 y 13 como salida, para luego encenderlos y apagarlos
indefinidamente. Se utiliza for para indicar el pin que corresponde, de ésta marena se reduce
las líneas de código .............................................................................................................. 15
Ejemplo 3.- Enciende y apaga los led en secuencia, en ida y vuelta. Ahora utilizando un vector.
............................................................................................................................................ 15
Ejemplo 4.- Idem al ejemplo 3 pero ahora con funciones ...................................................... 16
Ejemplo 5.- Permite encender y apagar un led, controlado por teclado, utilice 1 para encender
y 2 para apagar..................................................................................................................... 17
Ejemplo 6.- Iden al alterior, pero ahora si ingresa 1 enciende el led y con cualquier otra tecla
apaga el led. ......................................................................................................................... 18
Ejemplo 7. Lee un carácter y escribe su valor ascci ( no produce ningún ejecto en la placa). . 18
Ejemplo 8.- Escribe HOLA en la pantalla y ningún efecto en la placa. .................................... 19
Ejemplo 9.- Encender y apagar un led con menú de opciones. .............................................. 19
Ejemplo 10 .- Encender los led controlados por los números 1 al 5, la opción1 enciende el led
5, la opción 2 el led 7, la opcion 3 el led 9, la opción 4 el led 11 y opción 5 el led 13. (No tiene
menú) .................................................................................................................................. 20
Ejemplo 11.- Encender un led en horas determinadas. (agregando la librería time.h) ..... ¡Error!
Marcador no definido.
2
ELT-256 ARDUINO- PARTE 1
3
ELT-256 ARDUINO- PARTE 1
Introducción
1
http://arduino.cl/arduino-mega-2560/
4
ELT-256 ARDUINO- PARTE 1
En ésta guía los ejemplos fueron realizados y probados para Arduino
Mega.
Instalación
Para instalar el software vamos a descargarlo del sitio
http://www.arduino.cc luego haga clic en la opción SOFTWARE, y
tendrá la sgte pantalla:
Nos pide una contribución pero, por diferentes razones no podemos por
ahora, hacemos clic en JUST DOWNLOAD.
5
ELT-256 ARDUINO- PARTE 1
Es posible que cuando Usted lea éste tutorial hayan cambiado las
pantallas de ésta url y no sean exactamente lo mismo que se muestran
en las imágenes, pero la idea es la misma.
6
ELT-256 ARDUINO- PARTE 1
Una vez que tenemos el archivo ejecutable ubicado en una dirección
adecuada, en mi caso en el disco D:, hacemos doble clic para ejecutar el
porgrama:
Clic en “ I Agree”,
7
ELT-256 ARDUINO- PARTE 1
8
ELT-256 ARDUINO- PARTE 1
Para probar si funciona la placa de Arduino y si está todo bien instalado,
vamos a a ejecutar un ejemplo básico que viene
incorporado en los ejemplos del IDE.
Debe abrir el archivo Blink, es un ejemplo que viene instalado junto con
el IDE de Arduino, (es como el “hola mundo” de los programadores, que
9
ELT-256 ARDUINO- PARTE 1
se ejecuta para ver si se ha instalado adecuadamente un software),
hágalo de la sgte manera:
Esta es la parte del código que nos interesa, lo que hace es simplemente
parpadear el led interno que tiene la placa de Arduino. Si no funciona,
10
ELT-256 ARDUINO- PARTE 1
entonces tiene problemas con la instalación y en éste caso vea
https://www.youtube.com/watch?v=bwkHUXa9HWM&t=606s .
Programación en Arduino
Como se mencionó anteriormente, los programas en Arduino se
denominan Sketch y por defecto el IDE, cada vez que se va a crear un
nuevo programa, le agrega la fecha , seguido de un carácter.
11
ELT-256 ARDUINO- PARTE 1
Estructura de un programa en Arduino
Está conformada por dos funciones la función void setup() y la funcion
void loop().
void setup()
En ésta función es donde, por lo general, se declaran las variables, el
modo de trabajo de los pin, los puertos, etc, es decir se inicializa y se
ejecuta al principio una sola vez cuando el programa empieza. Es parte
de la estructura de un programa en arduino y siempre debe estar
presente, así no tenga codificado nada. Esta función inicia y termina con
llaves {}: ejemplo:
void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como salida
}
void loop()
En ésta función es donde realmente se escribe todo el código del
programa, ésta función se ejecuta indeterminado número de veces, es
decir siempre, por éste motiva el programa va respondiendo a los
eventos que se produzcan en la placa o tarjeta Arduino. Ej: Produce un
parpadeo del led encendiéndolo y apagándolo en forma continua.
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´
delay(1000);//espera otros 1000 ns
}
12
ELT-256 ARDUINO- PARTE 1
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Para notar:
Utiliza los mismos tipos de datos que C++ o Java: byte, int, float,
long, etc.
Utiliza arreglos declarados como C++.
Las funciones tiene el formato de C++
Utiliza ; para indicar el final de una sentencia o comando.
Utiliza llaves para indicar de dónde y hasta dónde llega un
comando o sentencia.
Utiliza // para comentario de una línea
/*….*/ para comentario de varias líneas
Operadores aritméticos: + suma, - resta, * multiplicación, /
división.
13
ELT-256 ARDUINO- PARTE 1
La división de enteros da resultado entero.
Asignaciones estándar:
o x++ es igual que x=x+1;
o x—es igual que x=x-1;
o x+=2 es igual que x=x+2;
o x*=3 es igual que x=x*3;
o x/=5 es igual que x=x/5;
Operadores relacionales:
o Es == para preguntar igual.
o Es != para diferente
o Es > mayor
o Es < menor
o Es >= mayor igual
o Es <= menor igual
Operadores lógicos:
o And es &&
o Or es || (alt 124)
o Not es !
Palabras reservadas
Son palabras que están declaradas con un significado en la
programación de Arduino y que no pueden ser utilizadas con otro
propósito. Ejemplo:
tipo_de_dato_de_salida nombre_de_la_funcion(parámetros)
14
ELT-256 ARDUINO- PARTE 1
…
Comandos importantes
Son instrucciones:
digitalWrite(7, HIGH);
Ejemplos:
Para los ejemplos se utilizó el siguiente esquema:
15
ELT-256 ARDUINO- PARTE 1
Ejemplo 2.- Se configura los pin 5,7,9,11 y 13 como salida, para luego encenderlos y
apagarlos indefinidamente. Se utiliza for para indicar el pin que corresponde, de ésta
marena se reduce las líneas de código
void setup() {
for(int i=5;i<=13;i+=2)
{
pinMode(i,OUTPUT);
}
}
void loop()
{
for(int i=5;i<=13;i+=2)
{
digitalWrite(i,HIGH);
delay (1000) ;
digitalWrite(i,LOW);
delay(1000);
}
}
Ejemplo 3.- Enciende y apaga los led en secuencia, en ida y vuelta. Ahora utilizando un
vector.
int pines[5] = {5,7,9,11,13}; //vector
int n=5; //5 elementos del vector
int i;
void setup(){
for(i=0 ; i<n ; i++)
{
pinMode(pines[i],OUTPUT);
}
}
void loop() {
for(i=0 ; i<n ; i++){
digitalWrite(pines[i],HIGH);
delay (100);
digitalWrite(pines[i],LOW);
delay(100);
}
for(i=n-1 ; i>=0 ; i--){
digitalWrite(pines[i],HIGH);
16
ELT-256 ARDUINO- PARTE 1
delay (100);
digitalWrite(pines[i],LOW);
delay(100);
}
}
void loop() {
ida();
vuelta();
}
void ida(){
for(i=0 ; i<n ; i++){
digitalWrite(pines[i],HIGH);
delay (100); //retardo de 100 nano segundos
digitalWrite(pines[i],LOW);
delay(100);
}
}
void vuelta(){
for(i=n-1 ; i>=0 ; i--){
digitalWrite(pines[i],HIGH);
delay (100);
digitalWrite(pines[i],LOW);
delay(100);
}
}
17
ELT-256 ARDUINO- PARTE 1
Ejemplo 5.- Permite encender y apagar un led, controlado por teclado, utilice 1 para
encender y 2 para apagar
int input;
void setup(){
pinMode(13, OUTPUT); // Declaramos que utilizaremos el pin 13 como
salida
Serial.begin(9600); //habilitamos puerto serial
}
void loop(){
if (Serial.available()>0){ //si ocurre un evento en la parte serial
teclado
input=Serial.read();
if (input=='1'){
digitalWrite(13, HIGH); //Si el valor de input es 1, se enciende el
led
}
if (input=='2')
{
digitalWrite(13, LOW); //Si el valor de input es 2 se apaga el LED
}
}
}
18
ELT-256 ARDUINO- PARTE 1
Ejemplo 6.- Iden al alterior, pero ahora si ingresa 1 enciende el led y con cualquier otra
tecla apaga el led.
int input;
void setup(){
pinMode(13, OUTPUT); // Declaramos que utilizaremos el pin 13 como salida
Serial.begin(9600); //habilitamos puerto serial
}
void loop(){
if (Serial.available()>0){ //si ocurre un evento en la parte serial teclado
input=Serial.read();
if (input=='1'){
digitalWrite(13, HIGH); //Si el valor de input es 1, se enciende el led
}
else
{
digitalWrite(13, LOW); //Si el valor de input es diferente de 1, se apaga el LED
}
}
}
void loop(){
if (Serial.available()>0){
input=Serial.read();
Serial.println(input);
}
}
19
ELT-256 ARDUINO- PARTE 1
Ejemplo 8.- Escribe HOLA en la pantalla y ningún efecto en la placa.
//escribe hola en pantalla
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print('H');
Serial.print('O');
Serial.print('L');
Serial.println('A');
delay(1000);
}
void loop(){
if (Serial.available()>0){ //si ocurre un evento en la parte serial teclado
input=Serial.read();
if (input=='1'){
digitalWrite(13, HIGH); //Si el valor de input es 1, se enciende el led
}
if (input=='2')
{
digitalWrite(13, LOW); //Si el valor de input es 2 se apaga el LED
}
}
}
20
ELT-256 ARDUINO- PARTE 1
Ejemplo 10 .- Encender los led controlados por los números 1 al 5, la opción1 enciende
el led 5, la opción 2 el led 7, la opcion 3 el led 9, la opción 4 el led 11 y opción 5 el led 13.
(No tiene menú)
//encendido de luces controlado por el teclado
int input;
int anterior;
void setup(){
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
pinMode(13, OUTPUT); // Declaramos que utilizaremos el pin 13 como salida
anterior=13;
Serial.begin(9600);
}
void loop(){
if (Serial.available()>0){
input=Serial.read();
if (input=='1'){
digitalWrite(anterior,LOW);
digitalWrite(5, HIGH); //Si el valor de input es 1, se enciende el led
anterior=5;
}
if (input=='2'){
digitalWrite(anterior,LOW);
digitalWrite(7, HIGH); //Si el valor de input es 1, se enciende el led
anterior=7;
}
if (input=='3'){
digitalWrite(anterior,LOW);
digitalWrite(9, HIGH); //Si el valor de input es 1, se enciende el led
anterior=9;
}
if (input=='4'){
digitalWrite(anterior,LOW);
digitalWrite(11, HIGH); //Si el valor de input es 1, se enciende el led
anterior=11;
}
if (input=='5'){
digitalWrite(anterior,LOW);
digitalWrite(13, HIGH); //Si el valor de input es 1, se enciende el led
anterior=13;
}
}
}
21