Control programado con ARDUINO TECNOLOGÍA IES BELLAVISTA

Documentos relacionados
Control programado con ARDUINO TECNOLOGÍA

Control programado con ARDUINO TECNOLOGÍA

PRESENTA INTRODUCCIÓN A ARDUINO

Empieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria.

Introducción Arduino TPR 3º ESO

LED INTERMITENTE CIRCUITO ELÉCTRICO MATERIALES PROGRAMA LED DOS CONECTORES CABLE USB ROBÓTICA. Puerto 8 ( salida al led rojo ) ARDUINO UNO 220 W GND

Taller Introducción a la Ingeniería Eléctrica Microcontrolador Arduino y Comunicaciones

Introducción a Arduino

Clase 2: Programación

USANDO PULSADORES CUADERNILLO RESUMEN. COMPONENTES ELECTRÓNICOS EN ARDUINO

Conceptos básicos de Arduino:

TPR 3ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz TEMA 5: ROBÓTICA

2. Programación en Arduino

TPR 3ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz TEMA 6: ROBÓTICA

Qué es y por qué usarlo

Tecnología robótica. Tema 7.- Tarjeta controladora Arduino

El Microcontrolador Arduino

Introducción a Arduino

Iniciación al IDE de Arduino y primer ejercicio

Programa del curso de Arduino

Bach. Pablo Sanabria Campos. Programa de Tecnologías Educativas Avanzadas

EL SENSOR DE SONIDO KY-038 (VERSION )

Instalación y entorno de programación

ACTIVIDADES ARDUINO 3º ESO BLOQUE A: SIN ENTRADAS A.0.-

UNIDAD 1 Primeros programas

AR 1 T. Tutorial 1. Introducción a Arduino Controlando un LED.

Las 7 claves de Arduino UNO

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO. ÍÑIGO MARTÍN MIMBELA.

La plataforma Arduino

PRACTICAS CON ARDUINO

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

4.2 Práctica 1: encendiendo y apagando varios leds

Taller Robótica Libre con Arduino Desarrollo del pensamiento computacional a través de la programación y la robótica. UIMP. Julio de 2017.

ARDUINO El proyecto Arduino: Recordando - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino

IM : ARDUINO NANO OEM

CONTROL AUTOMÁTICO CON ARDUINO

EL MICROCONTROLADOR ARDUINO

CYBERTECH 2018 TALLER 03: MOTORES Y POTENCIA

Encender un LED utilizando un pulsador (Ref libro 1 pg 82 pero como y pg 132 como 1.2.3)

Control de LCD y sensor de temperatura

TEMA 7: ROBÓTICA -PROGRAMACIÓN

Taller de Introducción a la Ingeniería Eléctrica Instituto de Ingeniería Eléctrica - Facultad de Ingeniería Universidad de la Republica

CONCEPTOS BÁSICOS DE MICRO CONTROLADORES: CONOCIENDO A ARDUINO

Arduino Punk Console. Idea

Movimiento de servos de rotación continua (Ref libro 1 pg 105)

4 Dispositivos de E/S

Metodología y didáctica de la robótica y el control por ordenador

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

OBJETIVOS QUÉ VAMOS A REALIZAR? CONOCIMIENTOS PREVIOS

INTRODUCCIÓN A LOS SISTEMAS DE CONTROL PROGRAMADOS

ENTRADAS Y SALIDAS DIGITALES USO DE VARIABLES Y TEMPORIZADORES

Métodos con Parámetros

Dynabot II es un kit diseñado para el aprendizaje de robótica móvil basado en arduino. Para qué sirve?

QUÉ ES EL OPEN SOURCE?

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Introducción a Arduino

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

ACTIVIDADES DE SCRATCH PARA ARDUINO (S4A) 3º ESO TECNOLOGÍAS

ACTIVIDADES PROGRAMACIÓN CON ARDUINO

Curso Robótica Práctica

Programación de Arduino

TEMA 6: PROGRAMACIÓN ROBÓTICA.ARDUINO

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

INTRODUCCIÓN A LA PROGRAMACIÓN ENGINEERING KICKSTART

TEMA 6: ROBÓTICA -PROGRAMACIÓN

PRACTICAS CON ARDUINO: Nivel 1

ACTIVIDADES PROGRAMACIÓN CON ARDUINO. Todas las actividades siguientes se harán con el entrenador.

Sesión 12: Practica 3: Creación de prototipo básico de Arduino.

Introducción a Arduino

UNIDAD 5 Las señales analógicas

APRENDE ARDUINO FACILMENTE CON MIRPAS.COM.

ESTRUCTURAS DE CONTROL

ACTIVIDADES CON S4A (SCRATCH PARA ARDUINO) A.1.-

Tutorial: Uso de Driver L298N para motores DC con Arduino

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Programa la luz inteligente de tu bici

PRÁCTICAS CON ARDUINO UNO

Aprende a construir y programar un robot interactivo utilizando los componentes del Maker Control Kit y el Maker Kit 3.

APRENDE ARDUINO FACILMENTE CON MIRPAS.COM.

Comunicación Serial con Arduino (Por Antony García González - Enero 27, 2013 )

Tutorial Arduino con Fotoresistencia LDR

IES Los Albares (Dep. de Tecnología)

Programar posiciones en un Micro Servo Tower Pro SG90 9G

Puente H: cambio de giro y velocidad de motores DC.

1. Escribir un dato digital del WinCC al Arduino

Clase 4: Motores. Conviértete en un Joven Inventor PENTA UC

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Crear una app con MIT inventor

Tecnológico Nacional de México

CAPÍTULO 5 DISEÑO DE LA INTERFAZ GRÁFICA

Introducción a los Computadores ITTELSI. Curso

MIDIENDO DISTANCIAS CON UN SENSOR DE ULTRASONIDOS

CONTROL DE UN SERVOMOTOR

Lectura de pines analógicos

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

TALLER ARDUINO BÁSICO

DEPARTAMENTO DE CIENCIAS DE LA ENERGIA Y MECANICA Laboratorio de Automatización Industrial Mecánica. TEMA: Control de procesos con Arduino.

1. Detalle de los Comandos:

Transcripción:

Control programado con ARDUINO TECNOLOGÍA IES BELLAVISTA

Control de un sistema técnico cableado El control electrónico cableado convencional de un sistema técnico consiste en un circuito que interactúa con el sistema mediante actuadores y sensores. Dicho circuito viene definido a partir de las condiciones de funcionamiento que queremos para el sistema. SISTEMA CONTROLADO Sensores SISTEMA DE CONTROL Actuadores

Control eléctrico-electrónico cableado Es muy rígido, cualquier cambio en el funcionamiento requiere cambios en los circuitos por personal especializado.

Control programado con ARDUINO

Control programado con Arduino El control electrónico programado implica una enorme flexibilidad, ya que cualquier cambio en las condiciones de funcionamiento no implica cambios en la circuitería sino sólo en el programa grabado en la memoria de la placa Arduino. SISTEMA CONTROLADO Sensores SISTEMA DE CONTROL Actuadores

La plataforma ARDUINO ARDUINO es una plataforma de hardware libre basada en una placa con un microcontrolador y un entorno de desarrollo integrado (IDE). LED conectado al pin 13 Conexión a ordenador Entradas / Salidas digitales LEDs de transmisión Botón de Reset Alimentación con conector Microcontrolador Alimentación cableada Entradas analógicas

Entradas / Salidas digitales Los microcontroladores, y entre ellos el que incorpora Arduino, trabajan con señales digitales binarias, que son aquellas que sólo pueden adoptar dos únicos valores. En los microcontroladores, estas señales son tensiones, que pueden tomar dos valores: alto y bajo, que suelen ser 5 V y 0 V. Las salidas digitales de los microcontroladores sólo pueden aplicar estos dos niveles de tensión a lo que se conecte a ellas. Las entradas digitales de un microcontrolador sólo pueden diferenciar estos dos niveles de tensión o cercanos a ellos. 5 V 0 V t

Salidas digitales en un circuito convencional Podríamos controlar el funcionamiento de un actuador como, por ejemplo, el encendido o apagado de un LED, conectándolo como se indica y haciendo que una persona actúe sobre el conmutador cuando queramos cambiar el estado del LED.

Salidas digitales en un microcontrolador En los sistemas de control programado, sustituimos a la persona por un sistema de control informático (microcontrolador) que ejecuta un programa almacenado en su memoria. El sistema se encarga de colocar en las salidas un valor de tensión de 0 V ó 5 V según las instrucciones del programa.

Salidas digitales en un microcontrolador Lógicamente, el sistema de control no dispone únicamente de una salida digital, sino de muchas, cada una de las cuales controla un actuador de forma independiente.

Salidas digitales en Arduino Hemos conectado un LED, con su correspondiente resistencia en serie, entre el pin número 7 y GND (abreviatura de ground, que es tierra en inglés americano y es el punto que se toma como referencia de tensiones en un circuito, es decir, 0 V). Para encender el LED, el programa dará una orden para que en el pin 7 haya una tensión de 5 V. Para apagarlo hará que haya 0 V. Las órdenes, como veremos luego, serán: digitalwrite (7, HIGH); digitalwrite (7, LOW);

Salidas digitales en Arduino Observamos que el LED rojo está conectado al pin 8, el amarillo en el pin 5 y el verde en el pin 2. Si queremos que los LED puedan estar encendidos varios a la vez, cada uno debe llevar su propia resistencia en serie. Por ejemplo, si queremos que se enciendan los LED rojo y verde y permanezca apagado el amarillo, las órdenes serían: digitalwrite (8, HIGH); digitalwrite (5, LOW); digitalwrite (2, HIGH);

Salidas digitales en Arduino Si en alguna aplicación sólo va a estar encendido un LED cada vez y no de forma simultánea, como por ejemplo, en un semáforo o cuando se indica la ocupación de una plaza de aparcamiento, etc., podemos colocar una única resistencia compartida por todos los LEDs

Salidas digitales en Arduino En las figuras se observa cómo se conectarían un zumbador o un motor que sólo girara en un único sentido. Sin embargo, veremos luego como con el motor hay que tener cuidado, pues absorben picos de corriente en los arranques que pueden dañar la placa Arduino si no usamos circuitos amplificadores.

Salidas digitales en Arduino Cuando necesitamos que un motor gire en ambos sentidos, no podemos conectar una de sus patillas directa y permanentemente a GND como hemos hecho antes. Utilizaremos dos salidas del siguiente modo: Si queremos que gire en un sentido, ordenaremos: digitalwrite (3, HIGH); digitalwrite (5, LOW); Si queremos que gire en sentido contrario, ordenaremos: digitalwrite (3, LOW); digitalwrite (5, HIGH); Si queremos que esté parado ordenaremos: digitalwrite (3, LOW); digitalwrite (5, LOW);

Salidas digitales con amplificador Como hemos dicho, no es conveniente que los motores estén conectados directamente a las salidas de Arduino, pues pueden dañar la placa. Se utiliza un circuito integrado amplificador denominado L293D. El montaje es el que se indica. Placa protoboard L293D Fuente 5V externa

Entradas digitales Una forma de saber si un pulsador o un interruptor está abierto o cerrado es con el montaje de la figura y midiendo con un voltímetro la tensión en el punto X. Si el pulsador está abierto no circula corriente y la tensión será 5 V. Si el pulsador está cerrado circula corriente y la tensión medida por el voltímetro será 0 V.

Entradas digitales en un microcontrolador En los sistemas de control programado la función del voltímetro la hace el propio microcontrolador que es capaz de distinguir si en los pines donde se conectan los sensores (pulsadores, finales de carrera, etc.) hay un nivel alto de tensión (cercano a 5 V) o un nivel bajo (cercano a 0 V). La resistencia también la incluye.

Entradas digitales en un microcontrolador Hemos conectado un pulsador NA entre el pin 5 y GND. Para leer si la tensión en el pin 5 es un valor alto o bajo, el programa tendrán que ejecutar la orden: En la posición de la figura A esta orden devolverá el valor HIGH, mientras que en la posición de la figura B devolverá LOW. Figura B digitalread (5) Figura A

Entradas digitales en un microcontrolador Por supuesto, podemos tener varios sensores conectados en la placa. Por ejemplo, en la figura tenemos conectado el pulsador NA P1 en el pin 5 y el pulsador NA P2 en el pin 2. Para leer el valor de tensión en dichos pines daremos las órdenes: digitalread (5) digitalread (2) Tan como están representados en la figura (P1 pulsado y P2 no pulsado) la primera de estas órdenes nos devolverá el valor LOW y la segunda el valor HIGH.

Entradas digitales en un microcontrolador Para los finales de carrera sólo necesitamos dos de su patillas, la común y la salida NA (la situada en el centro en el final de carrera de la figura) con lo cual equivale a un pulsador NA convencional.

Entradas analógicas Para medir una magnitud analógica, como puede ser el nivel de luz que incide sobre una LDR (resistencia variable con la luz, cuanto más luz le incide menor es su resistencia) realizamos un montaje llamado divisor de tensión con una resistencia de valor fijo adecuado. La tensión medida por el voltímetro en el punto X del circuito dependerá del nivel de luz incidente en la LDR. Si incide mucha luz, la resistencia de la LDR será muy pequeña respecto a la resistencia fija y, por tanto, la tensión en X será baja. Si incide poca luz, la resistencia de la LDR será muy grande respecto a la resistencia fija y, por tanto, la tensión en X será alta.

Señales analógicas en sistemas digitales Los sistemas digitales, como lo microcontroladores, no pueden trabajar con señales analógicas, por lo que incorporan un dispositivo llamado convertidor analógico-digital, que transforma los valores de tensión en un número dentro de un determinado rango. Concretamente, Arduino convierte valores de tensión de 0 a 5 V en un número comprendido entre 0 y 1023.

Entradas analógicas en Arduino Las entradas analógicas de Arduino se reconocen porque se nombran con una A delante del número (A0, A1, ). En el ejemplo de la figura usamos el pin A5. Para tomar la lectura el programa usará la orden: analogread (A5) Esta orden devolverá un valor comprendido entre 0 y 1023. En la figura A (donde la LDR está iluminada), el valor devuelto será bajo, en la figura B (con la LDR tapada), el valor será alto. Figura A Figura B

Diseño de control programado

Algoritmo Un algoritmo es un conjunto de instrucciones ordenadas que permiten realizar una actividad, como, por ejemplo, resolver un problema, mediante pasos sucesivos.

Diagrama de flujo Un diagrama de flujo es una representación gráfica de un algoritmo, lo que facilita su diseño, su compresión y su traducción a un lenguaje de programación.

Traducción Algoritmo-Diagrama de Flujo

Algoritmo y diagrama de flujo En los diagramas de flujo se utiliza una serie de símbolos normalizados:

Algoritmo y diagrama de flujo: Ejemplo En la figura se representa el diagrama de flujo de un algoritmo para cambiar del estado de encendida al de apagada o viceversa de una lámpara al pulsar un pulsador. Lógicamente, para que este algoritmo realice la función de forma satisfactoria tiene que ejecutarse una y otra vez de forma cíclica (cada vez que llega al final vuelve a empezar).

El entorno integrado de ARDUINO Verifica código Carga en la placa Nuevo archivo Abrir archivo Barra de herramientas Pantalla de edición de programas Barra de menús Abre monitor de transmisión serie Gestor de pestañas Guardar archivo Mensajes Consola inferior

Indicación del puerto USB de la placa ARDUINO Indicación del puerto USB donde se encuentra conectada la placa ARDUINO

Indicación del modelo de placa ARDUINO Indicación del modelo de placa ARDUINO que estamos utilizando

Esquema de funcionamiento de Arduino Las declaraciones de variables globales y de las constantes suelen colocarse delante de la función setup() La función setup() se ejecuta una sola vez cuando alimentamos la placa o cada vez que se presiona el botón reset de la placa. En esta función se suelen incluir las definiciones del modo en que se usarán los pines. A continuación se ejecuta la función loop() de forma cíclica hasta que se corta la alimentación o se presiona el botón reset de la placa.

Programación en ARDUINO: Comentarios, setup() y loop() Todos los programa deben contener como mínimo las funciones setup y loop. Función setup, se ejecuta una sola vez. Se utiliza normalmente para definir las entradas y salidas. Función loop, se ejecuta cíclicamente una y otra vez. Contiene el cuerpo del programa. Comentarios, son notas o aclaraciones para hacer comprensible el programa. Aparecen en color gris.

Programación en ARDUINO: Constantes Para poder recordar mejor el uso que hagamos de los pines podemos asignarles nombres relacionados con dicho uso, así no tenemos que recordar los números. Estos nombres se llaman constantes, y se definen utilizando la intrucción #define const número Observa que esta instrucción no acaba en punto y coma (;) Todas las constantes deben declararse antes de usarse.

Programación en ARDUINO: Elementos de sintaxis Los principales elementos de sintaxis son el punto y coma (;) y las llaves ({ }). Toda instrucción debe ir seguida de un punto y coma (;). Pueden ir varias instrucciones en un mismo renglón, separadas por ;. Las llaves ({ }) se usan para delimitar el inicio y el fin de diversas construcciones: Funciones. Bucles de repetición. Instrucciones condicionales.

Programación en ARDUINO: Entradas / Salidas digitales Los pines digitales de Arduino pueden funcionar tanto como entradas como salidas. El modo hay que declararlo previamente con la instrucción: pinmode (pin, modo) El parámetro modo puede adoptar los valores INPUT u OUTPUT. Se lee en una entrada digital con la función: digitalread (pin) Se escribe en una entrada digital con la función: digitalwrite (pin, valor) El parámetro valor puede valer HIGH o LOW o valores equivalentes.

Programación en ARDUINO: Resistencias pull up Para no tener que utilizar resistencias externas en las entradas de Arduino para garantizar que en todo momento presenten un HIGH o un LOW bien definidos, podemos activar las resistencias internas pull up (conectadas a fuente) de las entradas, que incorpora Arduino, con la función pinmode(). El modo es el siguiente: pinmode (pin, INPUT_PULLUP) El parámetro pin indica el pin para el que se activa la resistencia pull up.

Programación en ARDUINO: Resistencias pull up

Programación en ARDUINO: Variables globales y locales Una variable es un modo de nombrar y guardar un valor que puede variar para su uso posterior por el programa. Cualquier variable debe ser declarada antes de utilizarse Variables globales, se declaran al inicio del programa, delante de la función setup. Pueden usarse en cualquier parte del programa. Variables locales, sólo pueden usarse dentro de la función en la que se declaran.

Programación en ARDUINO: Funciones del usuario Funciones definidas por el usuario, éstas pueden definirse en cualquier parte del programa o incluso en una pestaña separada.

Programación en ARDUINO: Los nombres válidos Los nombres de los sketch, de las variables, de las constantes y de las funciones no pueden contener espacios, (puede usarse el guión bajo). Los nombres dados a variables, constantes y funciones no deben coincidir con palabras clave de Arduino. Se distinguen mayúsculas de minúsculas. Hay una serie de constantes con nombres reservados: false y true. INPUT y OUTPUT. HIGH y LOW.

Programación en ARDUINO: Los tipos de datos Toda variable utilizada debe ser declarada previamente, indicando el tipo de datos que contendrá. Los tipos básicos son: void: sólo para funciones que no devuelven nada. int: valores enteros cortos. long: valores enteros largos. unsigned long: valores enteros largos sin signo. float: valores decimales.

Programación en ARDUINO: Estructura condicional if La estructura if decide si ejecutar o no una o varias instrucciones en función de que se cumpla una condición. if (condición) instrucción; if (condición) { } instrucción_1; instrucción_2;... Para expresar la condición se utilizan operadores: de comparación: ==,!=, <, >, <=, >= booleanos: &&,,!

Diagrama de flujo de la estructura condicional if if (condición) { instrucción_1; instrucción_2;... }

Programación en ARDUINO: Estructura condicional if...else La estructura if...else decide ejecutar unas instrucciones u otras en función de que se cumpla una condición. if (condición) instrucción_a; else instrucción_b; if (condición) { else { instrucciones_a; } instrucciones_b; } A else le puede seguir otros if, ejecutándose múltiples pruebas. if (condición1) instrucción_a; else if (condición2) instrucción_b; else instrucción_c;

Diagrama de flujo de la estructura condicional if.else if (condición) { instrucciones_a; } else { instrucciones_b; }

Programación en ARDUINO: Funciones de tiempo Las funciones de tiempo permiten realizar temporizaciones en los programas. delay (valor) Pausa el programa durante el número de milisegundos indicado por valor. millis ( ) Devuelve el número de milisegundos transcurridos desde que Arduino empezó a correr el programa actual. Advertencia: Tener en cuenta al usar delay que mientras el programa está pausado no hay lectura de entradas, por lo que si hay un cambio en éstas no será captado por la placa.

Programación en ARDUINO: Bucle repetitivo while El bucle while se repetirá indefinidamente hasta que la expresión booleana (condición) que sigue a la palabra while entre paréntesis antes del bloque de instrucciones se evalúe como false. while (condición) { } bloque de instrucciones; La condición se evalúa al principio del bucle, por lo que, si la primera vez que se evalúa ya es falsa, las instrucciones contenidas en el bucle no se ejecutarán ninguna vez.

Diagrama de flujo del bucle repetitivo while while (condición) { } bloque de instrucciones;

Programación en ARDUINO: break La instrucción break se utiliza para salir de forma inmediata de la estructura en la que se encuentre. Habitualmente se utiliza en las estructuras repetitivas como el bucle while y en otras como switch case. Salida de un bucle while con break.

Programación en ARDUINO: break

Program. en ARDUINO: Estructura condicional switch...case La estructura switch...case compara el valor de una variable con unas etiquetas. Cuando una coincide se ejecuta su bloque de instrucciones. Opcionalmente puede llevar default. switch (variable) { } case etiqueta1: bloque de instrucciones 1; break; case etiqueta2: bloque de instrucciones 2; break; default: //es opcional bloque instrucciones def.;

Diagrama de flujo de la estructura switch case switch (variable) { } case etiqueta_k1: bloque de instrucciones 1; break; case etiqueta_k2:. bloque de instrucciones 2; break;. case etiqueta_kn: bloque de instrucciones n; break; default: //es opcional bloque instrucciones def.;

Programación en ARDUINO: Entradas analógicas Los pines analógicos de Arduino pueden funcionar como entradas analógicas o como pines digitales iguales a los otros (llevan una A delante del número para distinguirlos: A0,A1,...,A5). No pueden funcionar como salidas analógicas. Se lee en una entrada analógica con la función: analogread (pin) Devuelve un valor entre 0 y 1023 que corresponden a tensiones entre 0 V y 5 V respectivamente.

Programación en ARDUINO: Salidas analógicas En realidad Arduino no tiene salidas analógicas sino que simula un nivel de tensión analógico entre 0 V y 5 V con una señal digital cuadrada con anchura de pulso modulada (PWM). En la placa Arduino UNO, los pines digitales que se pueden usar para este tipo de salidas son: 3, 5, 6, 9, 10 y 11. Se escribe un valor analógico en una salida digital con la función: analogwrite (pin, valor) El parámetro valor debe estar comprendido entre 0 y 255, que corresponden a tensiones de 0 V a 5 V respectivamente.