Вы находитесь на странице: 1из 21

Elt-256

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

Para elaborar la presente guía, fue necesario utilizar Internet, donde se


encuentran cientos de ejemplos, inclusive con videos que solucionan
problemas paso a paso. En éste sentido, se indicará como referencia las
direcciones url de dónde se extrae información.

Arduino Mega es una tarjeta de desarrollo open-source construida con


un microcontrolador modelo Atmega2560 que posee pines de entradas y
salidas (E/S), analógicas y digitales. Esta tarjeta es programada en un
entorno de desarrollo que implementa el lenguaje Processing/Wiring.
Arduino puede utilizarse en el desarrollo de objetos interactivos
autónomos o puede comunicarse a un PC a través del puerto serial
(conversión con USB) (1).

El Arduino Mega es probablemente el microcontrolador más capaz de la


familia Arduino. Posee 54 pines digitales que funcionan como
entrada/salida; 16 entradas análogas, un cristal oscilador de 16 MHz,
una conexión USB, un botón de reset y una entrada para la alimentación
de la placa.

Si Usted tiene una placa de Arduino diferente, consulte en internet sus


características.

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:

Vamos a elegir la opción Download the Arduino IDE, haciendo clic en


WINDOWS INSTALLER.

Nos pide una contribución pero, por diferentes razones no podemos por
ahora, hacemos clic en JUST DOWNLOAD.

5
ELT-256 ARDUINO- PARTE 1

Luego es conveniente guardar el archivo:

Espere que descargue, luego lleve el archivo descargado a un lugar


seguro, en mi caso lo llevaré a una carpeta en D:.

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:

Es importante hacerle notar que hasta el momento no hemos conectado


la placa arduino a nuestra PC, solamente estamos instalando el
software.

Haga clic para aceptar la instalación del software y tendrá la sgte


pantalla: ( para no tener problemas instale como administrador)

Clic en “ I Agree”,

7
ELT-256 ARDUINO- PARTE 1

clic en Next luego en la sgte pantalla clic en Install.

Le pedirá confirmación, vuelva ha hacerlo con clic en Instalar

para continuar con la instalación instale y acepte todo.

Una vez instalado , éste es el ícono que verá en el


escritorio.

Cómo conectar el Arduino a la PC y probar si está bien instalado

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.

Ejecute el IDE, haciendo doble clic en el ícono que se


encuentra en el escritorio :

luego tendremos la pantalla de inicio:

y finalmente la pantalla donde podemos escribir el código. Note que los


programas se denominan sketch, entonces inicia el ide mostrando un
sketch con el formato de los programas de arduino, que explicaremos
posteriormente. En éste momento solo nos interesa ver que nuestra
placa de arduino está OK.

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:

Si todo está correctamente instalado verá en pantalla el sgte código:

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 .

Considerando que todo está bien, ahora se procederá a conectar


Arduino con la PC.

Para conectar la placa de arduino al PC se utiliza un cable


USB de tipo A-B:,

Simplemente conecte a la placa y al PC ( para desconectarlo


lo retira de la Pc simplemente)

El led interno de la placa Arduino tiene que parpadear, de éste modo


sabrá que todo está OK.

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
}

Explicación del program blink


Ahora analizaremos el programa blink que se utilizó para ver si todo
estaba bien instalado, tanto la tarjeta Arduino como el software IDE de
Arduino:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

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:

 Tiene ambas funciones void setup() y void loop(), siempre debe


tener ambas funciones
 En la función void setup(), utiliza el comando pinMode para
asignar LED_BUILTIN como salida, por eso lleva OUTPUT
 LED_BUILTIN es el nombre por defecto que recibe el pin 13, que
viene con el led incorporado en la placa de Arduino. Es posible que
este nombre no sea reconocido en otro tipo de Arduino, para lo
cual debe poner el número 13 directamente.
 La funcion void loop(), se ejecutará indeterminado número de
veces, siempre.
 En la función loop, se enciende y apaga el led incorporado de
Android un forma contínua.
 Se utiliza HIGH en digitalWrite para encender el led.
 se utiliza delay(1000) para detener la ejecución del programa
1000 nano segundos.
 Se utiliza LOW en digitalWrite para pagar el led

Características y Sintáxis del programa en Arduino.


Las sentencias básicas que utiliza tienen el mismo formato de C++ y/o
Java

 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:

 TRUE relacionado con el valor 1


 FALSE realacionado con el cero.
 OUTPUT salida, se utiliza con el pinMode
 INPUT entrada, relacionada con pinMode
 HIGH alto, para luz de los led por ejemplo
 LOW bajo, apaga la luz de los led.

Funciones declaradas y desarrolladas por el usuario


Una función en un segmento de código, que realiza una tarea específica
y se ejecuta cuando es invocada por otra función. En éste caso puede
ser invocada por la función setup o loop. Su formato es:

tipo_de_dato_de_salida nombre_de_la_funcion(parámetros)

14
ELT-256 ARDUINO- PARTE 1

Comandos importantes
Son instrucciones:

pinMode(pin, mode); Indica el estado mode(HIGH o LOW) del pin.

p i n M o d e ( 7 , O U T P U T ) ; // configura pin 7 como salida

digitalWrite(7, HIGH);

Ejemplos:
Para los ejemplos se utilizó el siguiente esquema:

Ejemplo 1.- Enciende y apaga el led conectado al pin 5


void setup() {
//enciende y apaga el led del pin 5
pinMode(5, OUTPUT);
}
void loop() {
digitalWrite(5, HIGH);
delay(2000);
digitalWrite(5, LOW);
delay(1000);
}

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);
}
}

Ejemplo 4.- Idem al ejemplo 3 pero ahora con funciones


int pines[5] = {5,7,9,11,13};
int n=5; //5 elementos del vector
int i;
void setup(){
for(i=0 ; i<n ; i++)
{
pinMode(pines[i],OUTPUT);
}
}

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
}
}
}

luego de compilar y subir el código a la placa, habilite el monitor serie


para ingresar los datos

tendrá la sgte pantalla:

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
}
}
}

Ejemplo 7. Lee un carácter y escribe su valor ascci ( no produce ningún ejecto en la


placa).
//lee un caracter del teclado e imprime su ascci
int input;
void setup(){
Serial.begin(9600);
}

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);
}

Ejemplo 9.- Encender y apagar un led con menú de opciones.


int input;
char a[]={'1',' ','o','n',' ',' ','2',' ','o','f','f'}; //vector de 12 caracteres
void setup(){
pinMode(13, OUTPUT); // Declaramos que utilizaremos el pin 13 como salida
Serial.begin(9600); //habilitamos puerto serial
for(int i=0;i<12;i++) //mostramos el menu
{
Serial.print(a[i]);
}
}

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

Вам также может понравиться