Computing">
Nothing Special   »   [go: up one dir, main page]

Arduino Primero

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 18

Guía 1

Tema: introducción a Arduino / Blink


Duración estimada:

Objetivo: identificar los componentes básicos de Arduino

CANTIDAD MATERIAL
1 1 Arduino UNO/MEGA
2 Resistores de valores comunes
3 1 Breadboard
4 LEDS de colores diversos
5 Multímetro
6    Pinzas, UTP

Introducción
Arduino es una plataforma open-hardware basada en una sencilla placa con entradas y salidas (E/S),
analógicas y digitales,
Su corazón es el microcontrolador Atmega8, un chip sencillo y de bajo coste que permite el
desarrollo de múltiples diseños.
Al ser open-hardware tanto su diseño como su distribución es libre, puede utilizarse libremente para
desarrollar cualquier tipo de proyecto sin tener que adquirir ningún tipo de licencia.

Tiene:
- 14 pines de entrada/salida digital (de los cuales 6 pueden ser usados como salidas PWM),
- 6 entradas analógicas,
- una conexión USB,
- un conector para alimentación,
- un botón de reset

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de
sensores
Existen 2 tipos básicos de señales a utilizar cuando estamos programando, esto dependiendo del
tipo de entrada que estamos utilizando, de los sensores que proveen la información al sistema; estos
tipos de señales son:

1
También puede afectar todo aquello que lo rodea (actuadores digitales y analógicos) controlando
luces, motores y otros actuadores.
Entrada - Control - Salida
Sensores - Controlador - Acturadores
Información de entrada - Programa - Información de salida

Estructura de los programas


setup( )
Se encarga de recoger información.
Debe contener la declaración de variables.
Es la primera función a ejecutar el programa.
Se ejecuta solo una vez.
Se utiliza para configurar o inicializar los modos de trabajo de los pins, o
el puerto serie.
loop( )
Contiene un programa que se ejecutará cíclicamente.
Esta función es el núcleo de todos los programas.

Desarrollo
Una vez instalado el IDE, vamos a comprobar que reconoce nuestro Arduino correctamente y que
podemos programarlo. Para ello, Conecta tu Arduino a tu ordenador mediante el USB

Ahora, ya podemos arrancar el icono de Arduino del escritorio de trabajo y configurar el modelo de
Arduino y confirmar el puerto serie al que se conecta. En [Menú]\Herramientas\Placa Elegir el
modelo exacto de nuestro Arduino. En nuestro caso elegimos un Arduino Uno:

En [Menú]\Herramientas\Port es necesario comprobar que tenemos asignado un puerto y que tiene


la marca de selección.

Es importante asignar el puerto y el modelo de Arduino para garantizar el correcto funcionamiento del
IDE. La marca de selección debe estar con el tick. Vamos ahora a volcar un programa de ejemplo:

2
El código es el que se muestra

Lo cargamos al dispositivo y se activara su funcionamiento

Si queremos alterar el tiempo de respuesta de la salida basta con cambiar el parámetro dentro de la
instrucción delay(ms)
Detiene la ejecución del programa la cantidad de tiempo en ms.
1000 equivale a 1 seg
Cambie el parámetro a 500. Que ocurre

Repita, pero esta vez cámbielo a 2000

Modifique por su cuenta el código para agregar un segundo led

3
Basándose en el código anterior diseñe un semáforo y utilizando tarjetas de potencia con Relé active
el semáforo real

Secuencias
Una secuencia es una sucesión de eventos en un orden específico, utilizando las instrucciones de
escritura y temporización podemos elaborar secuencias más o menos sencillas a muy elaboradas,
por ejemplo, el juego de luces del auto fantástico

4
Diseñe una secuencia para display que muestre el conteo de 0 a 9

5
Guía 2
Tema: Entradas digitales
Duración estimada:

Objetivo: utilizar entradas digitales para el control de secuencias y toma de decisiones

CANTIDAD MATERIAL
1 1 Arduino UNO
2 2 Pulsadores N/A
3 Resistores de valores comunes
4 1 Breadboard
5 LEDS de colores diversos
6 Multímetro
7    Pinzas, UTP

Introducción
Instrucciones de e/s digitales
hay 14 pines de e/s digitales numerados del 0 al 13, al ser digitales, los valores que se leen y/o
escriben son 0 y 1.

instrucciones
 pinMode(pin,modo)
 digitalRead(pin)
 digitalWrite(pin, valor)
pin, entre 0 y 13
modo, entre INPUT y OUTPUT
valor, entre HIGH y LOW
Diferencia entre 2 posibles estados.
Digital Ej: frio – calor, On – OFF, HIGH - LOW

RESISTENCIAS DE PULL-DOWN O PULL-UP


Como habíamos adelantado, para resolver el montaje correctamente necesitaremos la presencia de dos
nuevas amigas, las resistencias de Pull Down y Pull Up. Estas dos resistencias son un mecanismo básico,
muy habitual dentro del mundo de la electrónica y automatización.

Las resistencias de Pull-Down y Pull-Up se conectan entre el PIN digital y una de las tensiones de
referencia (0V o 5V) y “fuerzan” (de ahí su nombre) el valor de la tensión a LOW o HIGH, respectivamente.
 La resistencia de Pull-Up fuerza HIGH cuando el pulsador está abierto. Cuando está cerrado el
PIN se pone a LOW, la intensidad que circula se ve limitada por esta resistencia

6
 La resistencia de Pull-Down fuerza LOW cuando el pulsador está abierto. Cuando está cerrado el
PIN se pone a HIGH, y la intensidad que circula se ve limitada por esta resistencia
Así es como quedaría el montaje final en vista esquemática (la conexión de puede realizar en empleando
cualquiera de los PIN digital).

Y así el cableado en una placa de prototipos.


Desarrollo
La lectura digital se realiza mediante el uso de la función <<digitalRead(variable);>> y proporciona un valor
de tipo booleano, para hacer uso del valor que se obtiene de la lectura es preciso almacenar dicho valor en
una variable diferente; una zona de memoria con el valor de un bit siguendo la nomenclatura
<<x=digitalRead(variable);>>.
El valor que leemos puede ser comparado con una condición para verificar si se cumple el parámetro
esperado y asi proceder con el proceso que deseamos. Para eso recurriremos a una estructura condicional
IF
Compara valores y sigue la nomenclatura siguiente: <<if(variable-condicion-valor){argumento;}>>
Para comprenderlo mejor ejecutemos el ejemplo siguiente

Modificaremos el programa para que funcione utilizando 2 pulsadores, uno para encender el led y otro para
apagarlo

7
|
Modifique el código, pero en vez de encender un led haga que seleccione una de dos secuencias diferentes

8
Guía 3
Tema: Lectura Analógica
Duración estimada:

Objetivo: Identificar los puertos analógicos y su método de programación en Arduino


Utilizar puertos analógicos para el control de sistemas electrónicos

CANTIDAD MATERIAL
1 1 Potenciómetro 5K
2 1 Arduino UNO
3 1 LDR, termistor, LM35
4 Resistores de valores comunes
5 1 Breadboard
6 LEDS de colores diversos
7 Multímetro
8    Pinzas, UTP

I. INTRODUCCIÓN

Existen 2 tipos básicos de señales a utilizar cuando estamos programando, esto dependiendo del
tipo de entrada que estamos utilizando, de los sensores que proveen la información al sistema; estos
tipos de señales son:

Diferencia entre 2 posibles estados.


Digital Ej: frio – calor, On – OFF, HIGH - LOW

Análogo Diferencia entre múltiples estados.


Rango: tibio, intensidades, velocidad

Estos tipos de señal son captados a través de las distintos puertos del Arduino, asi los datos digitales
son recibidos por los pines digitales (usados en practicas anteriores) y los valores análogos a través
de los pines análogos (solo funcionan como entradas)

9
Analog In - Entradas análogas
Pins análogos son entradas análogas. Reciben tensiones entre 5V y 0 voltios. Los pines análogos,
al contrario de los digitales, no necesitan ser declarados como modo INPUT o OUTPUT .

Conversión análogo digital o ADC (analog to digital converter) convertir tensiones de 0 a 5


voltios en números enteros que van del 0 al 1023. En otras palabras, representa la información
en números de 10 bits.
Son AI: resistencias variables: potenciómetro - fotocélula - FSR

Comandos básicos
analogRead(pin), Lee o captura el valor de entrada del especificado pin análogo. Placa Arduino
realiza una conversión análoga a digital de 10 bits. Esto quiere decir que mapeará los valores de
voltaje de entrada, entre 0 y 5 voltios, a valores enteros comprendidos entre 0 y 1023.

Elementos analógos de entrada


Los sensores análogos a diferencia de los digitales entregan una salida continua, ya sea de voltaje o
corriente. Es decir, no solo 0 o 5V , si no que también valores intermedios.
Cada sensor posee su propia escala por lo que probablemente tendrás que ocupar matemáticas
para poder calcular el valor correcto de la medición.

Tal y como se mencionó, el Arduino maneja valores de hasta 5VDC, por los cual será necesario la
utilización de reguladores de voltaje, siendo el más fácil de usar el divisor de voltajes

10
El divisor podría ser hecho con 2 resistores como en la izquierda, o un potenciómetro (como se hara
en esta guía), y en algunos casos usaremos la configuración de Puente de Wheastone.
Veamos algunos ejemplos de uso de puertos anlogicos

II. DESARROLLO

Ejemplo:

Realizaremos la lectura de un potenciometro en el pin A0 del arduino

1. Abra Arduino IDE y digite el código siguiente:

int analogRead(pin) Lee el valor de un pin analógico. Entrega un valor entre 0 y 1023 que
representa 0 o 5V es decir 4.9mV por unidad.

2. Utilizando el potenciómetro implemente el sistema que se presenta a continuación

3. Agregaremos las líneas al programa para verificar la lectura en el monitor serie de Arduino
IDE

11
4. Primero en la barra de herramientas de Arduino IDE buscamos la opción
Herramientas/Monitor serie o con la combinación Ctrl + Mayus + M

Note que los valores son siempre números entre 0 y 1023, haremos una modificación para visualizar
en unidades más entendibles, reescriba el código según se muestra a continuación

5. Describa el funcionamiento de las entradas analógicas del Arduino

6. Ahora utilizaremos la lectura del potenciómetro y el uso de condiciones para activar cargas,
iniciemos con un LED en el pin 9 del Arduino

12
7. Utilizaremos el código que se muestra a continuación

8. Modifique el código agregando 4 LED de manera que cada uno indique cuando el valor del
potenciómetro haya alcanzado el 20% del total de la señal máxima de entrada (es decir, un
LED enciende con cada voltio que incrementa)

9. Midiendo luz con Arduino. Utilizando una LDR tomaremos valores de intensidad lumínica a fin
de activar cargas de 120VAC utilizando Reles

Recuerde que hay 2 maneras de conectar la LDR, para


medir el incremento o decremento de la intensidad, como
se muestra en las imágenes

13
10. Describa el funcionamiento del programa

11. Invierta la posición de la LDR y describa como afecta eso al funcionamiento del programa

III. ACTIVIDAD COMPLEMENTARIA

Diseñe un programa de termómetro que utilizando termistor y LM35 muestre vía monitor serie
los valores de temperatura en grados Celsius.

Guía 4
Tema: Salidas PWM
Duración estimada:

Objetivo: Realizar el control de potencias utilizando la salida PWM del Arduino

CANTIDAD MATERIAL
1 1 ARDUINO UNO
2 1 Breadboard
3 1 Multímetro
4 1 Transistor 2N2222
5 1 Motor DC
6 1 Fuente de voltaje variable
7 Varios Resistores de valores comerciales, potenciómetro 5K, LDR, Termistor, LM35
8   Tarjetas de relé
14
I. INTRODUCCIÓN

Salidas analógicas (PWM)

Las salidas analógicas son algo más complicadas que las digitales (como ya pasaba con las
entradas analógicas y digitales).

Lo primero que tenemos que entender es que la mayoría de automatismos (y Arduino no es una
excepción) no son capaces de proporcionar una auténtica salida analógica. Ni siquiera pueden
suministrar una salida analógica discretizada (es decir, a saltos) de tensión. Lo único que pueden
proporcionar es una salida digital de -Vcc o Vcc. (por ejemplo, 0V y 5V)

Para salvar esta limitación y simular una salida analógica la mayoría de los automatismos emplean
un “truco”, que consiste en activar una salida digital durante un tiempo y mantenerla apagada
durante el resto. El promedio de la tensión de salida, a lo largo del tiempo, será igual al valor
analógico deseado.

Existe más de una forma de hacer esta aproximación. Una de las más sencillas, y por ello muy
empleada en automatización, es la modulación de ancho de pulso (PWM). En esta modulación se
mantiene constante la frecuencia (es decir, el tiempo entre disparo de pulsos), mientras que se hace
variar la anchura del pulso.

La proporción de tiempo que está encendida la señal, respecto al total del ciclo, se denomina “Duty
cycle”, y generalmente se expresa en tanto por ciento.

Es inmediato deducir que la señal promedio es el


producto de la tensión máxima y el DutyCycle, según la
siguiente expresión.

De forma similar, tenemos que

En Arduino la señal de salida PWM (pines 3, 5, 6, 9, 10 y 11) es una señal de frecuencia constante
(30769 Hz) y que solo nos permite cambiar el "duty cycle" o el tiempo que el pulso está activo (on) o
inactivo (off), utilizando la función analogWrite().
15
II. DESARROLLO

Entendiendo el PWM
1. Con el siguiente código y con solo realizar modificaciones en los intervalos de tiempo que el
pin seleccionado tenga valor HIGH o LOW, a través de la función digitalWrite (), generamos la
señal PWM.

El programa pone el pin a HIGH una vez por segundo, la frecuencia que se genera en dicho
pin es de 1 pulso por segundo o 1 Hertz de pulso de frecuencia (periodo de 1 segundo) .
Cambiando la temporización del programa, podremos cambiar la frecuencia de la señal. Por
ejemplo, si cambiamos las dos lineas con delay(500) a delay(250), multiplicaremos la
frecuencia por dos, de forma que estamos enviando el doble de la cantidad de pulsos por
segundo que antes.,o sea que el LED ya no blinkea, sino que esta brillando al 50% de su brillo
normal.
Ahora cambia los números del LED en 1/4 del tiempo en que esta off. Has correr el sketch y
veras que el brillo es de 25%. Esta técnica se llama pulse width modulation (PWM), la idea
es que el LED blinkea tan rápido que no te das cuenta, pero cambias su rango de brillo entre
el tiempo on y el tiempo off. También se aplica a motores y es controlada con la instrucción
analogWrite()

2. Usando pines PWM


En el ejemplo más básico, simplemente definimos el pin PWM que queremos emplear, y
usamos la función analogWrite para escribir el valor del Duty Cycle, medido de 0 a 255.

El siguiente código incrementa progresivamente el valor de una señal analógica desde 0 a


255. Al alcanzar el valor máximo el contador pasará a 0, por lo que el ciclo volverá a iniciarse.

3. Describa el funcionamiento del programa


4. Modifique el código para visualizar los valores de salida en el monitor serie
16
5. Modifique el código para mostrar 2 LED de modo que cuando la frecuencia de uno se
incremente, la del otro disminuya
6. Control de potencia de salida con potenciómetro
Ahora realizaremos el control de la intensidad lumínica de un LED utilizando la señal de
entrada de un potenciómetro

Tener que calcular la relación de entrada/salida puede resultar complicado en ocasiones; por
eso convendría hacer un mapeo de los valores siguiendo la estructura siguiente:
salida = map(Val entrada, min entrada, max entrada, min salida, max salida)
Es decir q se toma el rango de entrada leído en la variable y se utiliza el rango convertido
como salida, para ser más exactos usaremos:
led_value = map(output, 0, 1023, 0, 255)

Compruebe el funcionamiento del nuevo programa


7. Control de velocidad
Modifique el circuito añadiendo un transistor 2N222A, una fuente externa y un motor DC
Recuerde que los pines de negativo de la fuente externa deberán estar unido al GND del
Arduino

17
III. ACTIVIDAD COMPLEMENTARIA

Diseñe y programe un Sistema que cumpla con los requisitos siguientes:

 Sense la temperatura de un cautín


 Muestre los valores de temperatura en el monitor serie
 Si la temperatura es menor a 35°C se activa una etapa de potencia que alimenta el
cautín
 Cuando la temperatura alcance 60°C se apaga el cautín y se activa un ventilador de PC
para enfriar más rápido
 Un LED bicolor indica los estados: verde para proceso de calentar y rojo cuando está
enfriando
 Un segundo LED está programado para mostrar la temperatura en forma de intensidad,
a más calor más brillo
 PUNTO PARA EXAMEN
o MODIFIQUE EL CODIGO SOLICITADO PARA QUE CON UN POTENCIOMETRO
PUEDA ELEGIRSE LA TEMPERATURA DESEADA Y MUESTRE LOS DATOS EN EL
MONITOR SERIE
o EL PUNTO SOLO SERA VALIDO SI SE ENTREGA DURANTE LA SESION DE
CLASE

18

También podría gustarte