PDF de programación - Apuntes de ARDUINO Nivel Pardillo

Imágen de pdf Apuntes de ARDUINO Nivel Pardillo

Apuntes de ARDUINO Nivel Pardillográfica de visualizaciones

Actualizado el 1 de Octubre del 2019 (Publicado el 16 de Mayo del 2019)
867 visualizaciones desde el 16 de Mayo del 2019
1,3 MB
30 paginas
Creado hace 8a (02/02/2012)
Arduino
Nivel Pardillo

Apuntes de
ARDUINO
Nivel Pardillo

Daniel Gallardo García

Profesor de Tecnología del IES Laguna de Tollón

DGG

1 de 30

Arduino
Nivel Pardillo

1. ¿QUÉ ES ARDUINO?

Arduino es una placa o tarjeta controladora, con una serie de entradas y salidas, y
que se programa a través del ordenador mediante un lenguaje de programación.
Veamos qué elementos componen una Arduino UNO:

Alimentación: Arduino puede estar alimentado por dos vías:

conexión USB (que proporciona 5 V).
jack de alimentación (que normalmente será una pila de 9 V o fuente de
alimentación, que se recomienda que esté entre 7 – 12 V).

Los pines de alimentación son para alimentar los circuitos la placa de prototipos o
breadboard o protoboard:

3.3 V proporciona una tensión de 3,3 V, y una intensidad máxima de 50 mA.
5 V
proporciona una tensión de 5 V, y una intensidad máxima de 300 mA.
GND es la toma de tierra, o nivel 0 V de referencia.
Vin

proporciona la tensión máxima con la que está alimentado Arduino.

Valores de entrada y de salida: en función de cómo esté siendo utilizado en pin,
tendremos:
Salida y entrada digital: los valores de salida pueden ser o 0 V (LOW) o 5 V
(HIGH), y se interpretará una entrada de entre 0 y 2 V como LOW y de entre
3 y 5 V como HIGH.
Salida analógica: los valores de salida van desde 0 V a 5 V en un rango de
0 a 255 (precisión de 8 bits) valores intermedios.
Entrada analógica: los valores de entrada van desde 0 V a 5 V en un rango
de 0 a 1023 (precisión de 10 bits) valores intermedios.

La intensidad máxima de todos estos pines es de 40 mA.

DGG

2 de 30

Arduino
Nivel Pardillo

Normalmente, todo el circuito electrónico que Arduino controlará se monta sobre
una placa de prototipos o breadboard, y el conexionado se realiza con cables tipo
jumper (es importante utilizar este tipo de cables porque no suelen romperse en los
zócalos):

2. PROGRAMANDO ARDUINO

Todo programa para Arduino presenta una estructura básica:

1ª parte
2ª parte
3ª parte

int x=0;
void setup() {…}
void loop() {…}

Declarar las variables.
Configuración de Arduino.
Comandos
comportamiento de Arduino.

que

regirán el

1ª parte: Declarar las variables

int x=0;

Una variable es un valor que Arduino puede almacenar en su memoria, y que
posteriormente podrá ser utilizado o modificado.

Los tipos de variables más utilizados son:

int: almacena un número entero entre -32769 y 32767 (2 bytes).
long: almacena un número entero muy largo, entre -2147483648 y
2147483647 (4 bytes).
float: almacena un número decimal con un rango entre -3.4028235·1038 y
3.4028235·1038 (4 bytes).
const: especifica que la variable definida no podrá ser cambiada durante el
programa, siendo un siempre un valor constante:

const float pi=3.1415;

Es importante saber que es posible declarar una variable sin asignarle un valor
inicial, y hacerlo posteriormente durante el transcurso del programa:

int x;

x=4;

DGG

3 de 30

Arduino
Nivel Pardillo

Dominio de una variable: si declaro una variable al comienzo del programa, podré
emplear dicha variable en cualquier momento (dentro de cualquier función o bloque
de programa), pero si declaro una variable dentro de una función, sólo se podrá
utilizar en dicha función.

Poner nombre a las variables: Por último, una última consideración: a la hora de
poner un nombre a una variable es recomendable utilizar alguna palabra que nos
ayude a reconocer qué se está almacenando en ella, y en caso de utilizar dos o más
palabras se suele emplear la notación de joroba de camello (poner en mayúscula
la primera letra de las siguientes palabras). Ejemplos son:
ledPin
miVariable

cuentaPulsaciones
ledPinAzul

estadoAnterior
lecturaSensor

2ª parte: Configuración de Arduino

En este bloque habrá que especificar:

void setup() {…}

Qué pines van a ser empleados como entrada y cuáles como salida.

pinMode(2,OUTPUT); //utilizaré el pin 2 como salida Digital.
pinMode(3,OUTPUT); //utilizaré el pin 3 como salida Digital o Analógica.
pinMode(8,INPUT);

//utilizaré el pin 10 como entrada Digital.

Las entradas analógicas no hacen falta incluirlas en el setup, puesto que
esos pines (A0, A1, A2, A3, A4, A5) solo pueden ser entradas analógicas.

Si vamos a querer establecer una conexión con el ordenador.

Serial.begin(9600);

/*hay que especificar los baudios (bits por
segundo) a la que va a realizarse dicha
comunicación Arduino-PC */

Si vamos a querer utilizar número aleatorios.

randomSeed(0);

//se inicia la generación de número aleatorios.

3ª parte: Comandos que regirán el comportamiento de Arduino

void loop () {…}

En este bloque se deberá escribir todas aquellas instrucciones, órdenes, primitivas,
comandos o funciones necesarias para que Arduino funcione según nuestro deseo.
Realmente, este bloque constituye un bucle infinito, ya que Arduino, mientras esté
alimentada con energía, funcionará haciendo el programa loop una y otra vez.

Iremos viendo cuáles son estas funciones durante el desarrollo de estos apuntes.

DGG

4 de 30

Arduino
Nivel Pardillo

3. SALIDAS DIGITALES

digitalWrite(4,HIGH);

Podemos indicar a Arduino que en un pin determinado coloque un “0” o un “1” lógico
(que serán 0 V o 5 V) mediante los siguientes comandos, respectivamente:
digitalWrite(12,HIGH);

digitalWrite(12,LOW);

Ejemplo 1. Parpadeo de un LED

Conectaremos un diodo LED en el pin 3. Siempre que conectemos un LED a una
salida de Arduino debemos hacerlo en serie con una resistencia de valor
comprendido entre 100 y 1K para evitar que una intensidad demasiado elevada
destruya dicho LED:

El programa que utilizaremos será el siguiente:

Vemos que ha aparecido una nueva instrucción: delay (milisegundos);

delay(1000);

//realiza una pausa en el programa de 1000 ms

DGG

5 de 30

Arduino
Nivel Pardillo

//conectaré el LED en el pin 3
//t será el tiempo de espera

Es muy cómodo utilizar variables para luego modificar rápidamente los parámetros
del programa, como por ejemplo el tiempo de espera o el pin donde conecto el LED:
int pinLed=3;
int t=1000;
void setup() {
pinMode(pinLed,OUTPUT); /*configuro el pin 3

como pin de salida */
}
void loop() {
digitalWrite(pinLed,HIGH); //enciendo el LED
delay(t); //espero un segundo
digitalWrite(pinLed,LOW); //apago el LED
delay(t); //espero otro segundo
}

Asimismo, es muy útil emplear comentarios dentro de un programa, que facilitan
mucho su lectura y comprensión. A la hora de escribir comentarios podemos
emplear dos opciones:

// …
/* … */

permite escribir un comentario en una línea de código.
permite escribir un comentario en varias líneas de código.

Ejemplo 2. Luz que avanza a través de 5 LEDs

Para este montaje utilizaremos 5 LEDs, conectados en pines consecutivos (del 7 al
11, por ejemplo). Los LEDs se irán encendiendo consecutivamente, empezando por
el 7 y terminado en el 11.
int i=7;
void setup() {
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop() {
for(i=7; i<=11; i++){
digitalWrite(i,HIGH);
digitalWrite(i-1,LOW);
delay(1000);
}
digitalWrite(11,LOW);
}

/*apago el último LED puesto que
nunca se llega a i-1=11 */

//enciendo el LED i
//apago el LED anterior



Aquí ha aparecido una nueva estructura: for (incio; condición; incremento) { … }
La estructura for repite un número de veces las instrucciones que estén contenidas
entre llaves, y la lógica que sigue es la siguiente:

DGG

6 de 30

Arduino
Nivel Pardillo

Emplea una variable (en este caso i) que se inicia (asignándole un valor
inicial, en este ejemplo i=7).
Dicha variable va incrementándose cada vez que se repite el for. El
incremento puede expresarse así:

i=i+5
i+=5
i=i+1
i+=1
i++
i=i-1
i-=1
i--
i=i*3
i*=3
i=i/2
i/=2

//el valor de i se incrementa en 5
//el valor de i se incrementa en 5 (es otra forma)
//el valor de i se incrementa en 1
//el valor de i se incrementa en 1 (es otra forma)
//el valor de i se incrementa en 1 (sólo para incremento +1)
//el valor de i disminuye en 1
//el valor de i disminuye en 1 (es otra forma)
//el valor de i disminuye en 1 (sólo para incremento -1)
//el valor de i se multiplica por 3
//el valor de i se multiplica por 3 (es otra forma)
//el valor de i se divide entre 2
//el valor de i se divide entre 2 (es otra forma)

El bucle for se repetirá siempre y cuando se siga cumpliendo la condición.

for(i=7; i<=11; i ++) { … } hará un primer ciclo con el valor i=7. Después
de hacer todo lo que está entre las llaves, incrementará en 1 el valor de i. ¿Es i
(ahora 8) menor o igual que 11? Como la respuesta es sí, volverá a hacer el bloque.
Cuando termine el ciclo con valor i=11, la i se incrementará en 1 (valdrá 12). En
ese momento ya no cumplirá la condición y el programa se saldrá del bucle for.
Otra observación es que, como la variable i solo se va a utilizar dentro del for (y en
ninguna otra parte del programa) puedo declararla en ese mismo momento:

for(int i=7; i<=11; i++) { … }

4. SALIDAS ANALÓGICAS

analogWrite(5,128);

Podemos indicar a Arduino que en un pin determinado coloque un valor de tensión
comprendido entre 0 V y 5 V, pudiendo seleccionar entre 256 valores intermedios
posibles (de 0 a 255), empleando la siguiente orden:

analogWrite(11,214);

/* coloca en el pin 11 un valor de salida de
214, que equivale a unos 4,2 V */

Realmente, la señal analógica de salida no es analógica en sí, sino un PWM. Esto
significa que la salida es una señal modulada por pulsos, formada por una serie de
pulsos (de valor 5 V) repartidos durante un tiempo determinado de tal forma que el
valor promedio de la señal de salida se hace coincidir con el de la señal analógica
que se persigue imitar. Es importante tener esto pre
  • Links de descarga
http://lwp-l.com/pdf15937

Comentarios de: Apuntes de ARDUINO Nivel Pardillo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad