3.0 TALLER DE ARDUINO PRESENTACIÓN PARA ALUMNOS DE CUARTO CURSO DE EDUCACIÓN SECUNDARIA OBLIGATORIA.

Slides:



Advertisements
Presentaciones similares
PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS CONTROL DE BARRERA DE PARKING
Advertisements

Álvaro Narváez Palazón
Controla tu entorno con un microcontrolador PIIISA /2/2014
PROGRAMACION 2 MICROCONTROLADORES BASIC STAMP.
FUNCIÓN IGUAL (Lo que entra igual (=) a lo que sale)
Armando Mtz.R. ITNL Microcontroladores
Physical Computing Clase 4. Memoria y Variables decimal, binario, hexadecimal Ver anexo 4.1. por favor.
INTERMITENCIA VAMOS A APRENDER A ESPERAR. En este programa vamos a presentar una instrucción que nos sirve para esperar antes de ejecutar la instrucción.
INTRODUCCIÓN A ARDUINO
Introducción a la robótica educativa con Arduino
Conceptos Básicos de Programación. Put a pin into input mode Loop Check if the pin is 0 or 5 volts If the pin has 5 volts Do something End if End Loop.
FUNCIÓN OR Una O otra, para que funcione. Función suma OR abS Es aquella función que es cierta (1), si una o las dos entradas son ciertas.
FUNCIÓN AND Para hacer que funcione, debo accionar un pulsador Y el otro.
FUNCIÓN NOR Una Opuesto a una OR. Función suma NOR abS Equivale a la asociación de la función OR, con la función NOT. Por tanto estamos.
Introducción al lenguaje PROCESSING para ARDUINO
Laboratorio de Arduino
ESPECIFICACIONES DE OPERACIÓN DEL MICROCONTROLADOR
El Hardware El Software La Comunidad  Software Libre  Hardware Libre  Puerto USB  Fácil de usar  Precio reducido  Completamente independiente 
Practica 1 Componentes del Robot. Sensor Ultrasónico El Sensor Ultrasónico de Distancia PING (o "PING)))" como lo denomina el fabricante) tiene una interfaz.
Una vez observado el producto programado que se debe construir, es importante que realice los siguientes ejercicios con la ayuda del docente. 1)Con la.
LENGUAJE DE PROGRAMACIÓN DE ARDUINO. LENGUAJE DE LENGUAJE DE PROGRAMACIÓN.
Sensores Ultrasonido. Son importantes en robótica, se usan para calcular distancias.
ARDUINO INTRODUCCIÓN Y PROGRAMACIÓN. Podemos tener Señales analógicas y digitales. INTRODUCCIÓN.
ARDUINO El proyecto Arduino: Recordando… - Pines de entrada
INTRODUCCIÓN A ARDUINO
Ingeniero en Computación José Alfredo Cobián Campos
TALLER DE ARDUINO.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
LENGUAJE DE PROGRAMACIÓN DE ARDUINO
SISTEMAS DE AUTOMATIZACIÓN Y CONTROL ORIENTADO AL CONOCIMIENTO Y APLICACIÓN DE LOS SISTEMAS EMBEBIDOS SESION 04 José Luis Albites Sanabria MSc. Biomedical.
Tecnologías avanzadas para la enseñanza de la Física
Olimpiadas Chilenas de Informática - Formación
CLASE X.
SENSOR ULTRASONIDOS O módulo ultrasónico modelo HC-SR04.
SENSOR ULTRASONIDOS O módulo ultrasónico modelo HC-SR04.
SISTEMAS DE AUTOMATIZACIÓN Y CONTROL ORIENTADO AL CONOCIMIENTO Y APLICACIÓN DE LOS SISTEMAS EMBEBIDOS SESION 03 José Luis Albites Sanabria MSc. Biomedical.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Conceptos básicos de programación
PROGRAMACIÓN DE SERVOS CON ARDUINO
ARDUINO Qué es y por qué usarlo * El proyecto Arduino:
CLASE IV.
Computación Curso 2017.
CLASE III.
Hardware, software, y periféricos
Estructuras de control en PHP
Hardware Description Language
PROGRAMACIÓN 1 INTRODUCCIÓN
Multitareas en Arduino
Clase 4 8:00 AM Repaso La Programación ¿Qué es Arduino? Tipos de Arduinos 10:00 AM Aprendiendo a programar en Arduino Ejemplos Semillero Robótica I.
Fundamentos de programación
LENGUAJE C.
Introducción práctica la uso de la tarjeta Arduino.
Primeros pasos con Arduino
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Metodología de la Programación
Conceptos Básicos Informática
Diapositivas en PowerPoint de la UA: Producción Automatizada
PROGRAMACIÓN (2).
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
SENTENCIAS CONTROL DE FLUJO EN C I.E. Mario Jiménez.
UNIDAD 9 Relés.
Arquitectura de ordenadores
CONTROL Y ROBÓTICA TECNOLOGÍA 4ºESO. Iniciación a LA ROBÓTICA con La µControladora.
Sentencias de control JAVA.
Estructura de un equipo microinformático
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Tema 8. Estructuras de decisión. Clases 1 y 2.
UNIDAD V ESTRUCTURA REPETITIVA (Repetir Hasta Que)
ARDUINO ARDUINO El proyecto Arduino: Recordando… - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino.
¿Qué es Arduino?  Plataforma de electrónica abierta.
Transcripción de la presentación:

3.0 TALLER DE ARDUINO PRESENTACIÓN PARA ALUMNOS DE CUARTO CURSO DE EDUCACIÓN SECUNDARIA OBLIGATORIA

¿QUÉ ES ARDUINO? Arduino es básicamente un SISTEMA DE CONTROL de hardware libre . Está formado por: una placa de circuito impreso dotada de componentes con: Entradas y salidas analógicas y Entradas y salidas digitales. Un entorno de desarrollo de software

¿QUÉ ES ARDUINO? La idea del uso de Arduino es que se utilice como elemento programable que sirva para adquirir datos procedentes de sensores y sea capaz de emitir en consecuencia señales a los elementos actuadores Actuador 1 Sensor 1 Actuador 2 Sensor 2 Sensor 3 Actuador n Sensor n

Las conexiones de Arduino Salidas digitales Entradas digitales Observa las diferentes conexiones de Arduino y cómo están distribuidas. Ten en cuenta que cada terminal tendrá una función Conector USB Conector de Alimentación (6-12 V) Pines de alimentación Entradas analógicas

El entorno de desarrollo IDE Para que Arduino sepa como llevar a cabo una tarea, hay que escribir un programa TENDREIS QUE DESCARGAR E INSTALAR EN EL ORDENADOR, EL ENTORNO DE DESARROLLO DE ARDUINO IDE Para programar Arduino es necesario descargarse de la página web de Arduino http://www.arduino.cc el entorno de desarrollo (IDE), disponible para Windows, MAC y LINUX.

El entorno de desarrollo IDE 1. Conecta la placa de Arduino al puerto USB del ordenador y carga en IDE el ejemplo BLINK 2. CONECTA EL ÁNODO DE UN DIODO LED AL PIN 13 Y EL CÁTODO A GND 3. Observa como el diodo LED se pone a parpadear. Ahora busca en el programa la función DELAY y modifica su valor numérico. Verás como parpadea más lento o más rápido según el valor que hayas asignado

Conectando el hardware Para conectar los dispositivos y componentes de un circuito tendrás que utilizar una placa de circuito impreso o una Protoboard. OBSERVA ESTE EJEMPLO Esquema eléctrico de un circuito para controlar el encendido de un diodo LED, según el nivel de iluminación detectado por un sensor LDR CIRCUITO DE ENTRADA CIRCUITO DE SALIDA ARDUINO

Conectando el hardware Tendréis que hacer acopio de una resistencia de 10K, una de 470 ohm, un diodo LED y un sensor LDR Y conectarlos de la siguiente forma: CIRCUITO DE ENTRADA CIRCUITO DE SALIDA ARDUINO Vcc Señal de salida Señal de entrada GND

Conectando el hardware Observa como son las conexiones en Arduino Realiza el listado de cableado Haz una lista de cables que se hayan conectado entre los componentes y los terminales de Arduino CIRCUITO DE ENTRADA CIRCUITO DE SALIDA

Escribiendo el software Escribe el siguiente código y fíjate bien en las expresiones que se emplean para cada línea. Trata de interpretar el programa. // Sensor de luminosidad // Utilizando una LDR como sensor de entrada // Y un LED conectado a una salida digital int LED = 11; //El LED esta en el pin 11 int LDR = A0; //El sensor en la entrada A0 int LDR_val = 0; //Variable para almacenar lectura int UMBRAL = 500;   void setup() { pinMode(LED, OUTPUT); // Define pin del LED como salida } void loop() LDR_val = analogRead(LDR); // Lee el valor luminosidad if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo digitalWrite(LED, LOW); // si es bajo, se apaga el LED else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED // Sensor de luminosidad // Utilizando una LDR como sensor de entrada // Y un LED conectado a una salida digital int LED = 11; //El LED esta en el pin 11 int LDR = A0; //El sensor en la entrada A0 int LDR_val = 0; //Variable para almacenar lectura int UMBRAL = 500;   void setup() { pinMode(LED, OUTPUT); // Define pin del LED como salida } void loop() LDR_val = analogRead(LDR); // Lee el valor luminosidad if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo digitalWrite(LED, LOW); // si es bajo, se apaga el LED else if (LDR_val < UMBRAL) // Si el nivel es elevadado... digitalWrite(LED, HIGH); // se enciende el LED

Interpreta el software Asignación de valores numéricos a expresiones de constantes (LED, LDR, LDR_val y UMBRAL) // Sensor de luminosidad // Utilizando una LDR como sensor de entrada // Y un LED conectado a una salida digital int LED = 11; //El LED esta en el pin 11 int LDR = A0; //El sensor en la entrada A0 int LDR_val = 0; //Variable para almacenar lectura int UMBRAL = 500;   void setup() { pinMode(LED, OUTPUT); // Define pin del LED como salida } void loop() LDR_val = analogRead(LDR); // Lee el valor luminosidad if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo digitalWrite(LED, LOW); // si es bajo, se apaga el LED else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED Parte Setup = Preparación del programa. Esta función se ejecuta una única vez y es empleada para configurar el pinMode Función Loop = Incluye el código que va a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.)

Los tipos de datos en Arduino Arduino permite manejar los siguientes tipos de datos: BYTE  Almacena un valor numérico de 8 bits. Tienen un rango de 0-255. INT Almacena un valor entero (INTEGER) de rango de 32,767 a -32,768. LONG  ƒValor entero (LONG INTEGER) almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648. FLOAT  Tipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a - 3.4028235E+38. Arrays: Se trata de una colección de valor es que pueden ser accedidos con un número de índice (el primer valor del índice es 0). Observa este ejemplo de utilización: Definición y asignación. int myArray[] = {value0, value1, value2...} Definición. int myArray[5]; // declara un array de 6 enteros Asignación del cuarto componente. myArray[3] = 10; Recuperar el cuarto componente y asignarlo a x. x = myArray[3]

Funciones con las entradas y salidas en Arduino Función pinMode(pin, mode) Se emplea en la función setup() para determinar el comportamiento del terminal “pin” como entrada (INPUT) o como salida (OUTPUT). Los terminales de Arduino funcionan por defecto como entradas. Esto significa que no es necesario declarar el comportamiento de un terminal como entrada empleando esta función pinMode(). Por ejemplo, la expresión pinMode(11, OUTPUT); configura el pin número 11 como de salida.

Funciones con las entradas y salidas en Arduino Función digitalRead(pin) Devuelve el valor de un terminal digital específico. Devuelve un valor alto (HIGH) o bajo (LOW). El pin puede ser especificado con una variable o una constante (0-13). Por ejemplo en la expresión V = digitalRead(Pin); el valor digital de la variable Pin se trasladará a la variable V. Función digitalWrite(pin, value) Se escribe en el terminal PIN un nivel alto (HIGH) o nivel bajo (LOW) que se indicará en el lugar de VALUE. En lugar de un número (0-13) de terminal se puede especificar una variable 0-13. Por ejemplo, para hacer que aparezca un valor lógico HIGH en el terminal 11 se utilizará la expresión digitalWrite(11, HIGH);

Funciones con las entradas y salidas en Arduino Función analogRead(pin) Mediante analogRead, se lee el valor del pin analógico con resolución de 10 bits (210 combinaciones = 1024). Esta función solo es aplicable en los pines analógicos (terminales de 0 a 5). El valor resultante es un entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no necesitan declararse previamente como INPUT o OUTPUT. Función analogWrite(pin, value) Escribe un valor analógico. Esta función está activa para los pines 3, 5, 6, 9, 10, 11. Por ejemplo, la expresión analogWrite(3, v);indica que se escribirá el valor de “v” en el terminal 3 analógico. Se puede especificar un valor entre 0 y 255 (lo que corresponde a una resolución de 8 bits). El rango analógico es de 0-5 voltios, con lo que un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Para valores de 0 a 255, el pin alterna rápidamente entre 0 V y 5 V, cuanto mayor sea el valor, más a menudo el pin se encuentra en HIGH (5 V). Por ejemplo, un valor de 64 será 0 V tres cuartas partes del tiempo y 5 V una cuarta parte. Un valor de 128 será 0 V la mitad del tiempo y 5 V la otra mitad. Un valor de 192 será 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.

Funciones con las entradas y salidas en Arduino Funciones de tiempo y funciones matemáticas Función delay(ms). Realiza una pausa en el programa la cantidad de tiempo en milisegundos especificada en el parámetro (entre 1 y 1000). ƒ Función millis(). Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando el programa actual. Después de 9 horas el contador se resetea.   Función min(x,y). Devuelve el valor mínimo de los valores de x e y Función max(x,y). Devuelve el valor máximo de los valores de x e y

Funciones con las entradas y salidas en Arduino Funciones de generación aleatoria Función random(max) devuelve un valor aleatorio entre 0 y el número max Función random(min, max) devuelve un valor aleatorio entre los valores min y max Función randomSeed(seed)  Especifica un valor inicial (semilla) como el punto de inicio para la función random(). Este parámetro debe ser realmente aleatorio y para ello puede emplearse la función millis() o incluso analogRead() para leer ruido eléctrico desde una entrada analógica.

La sintaxis condicional La sintaxis empleada para definir una condición es ya casi universal en todos los lenguajes de programación. La estructura propone una prueba lógica con dos respuestas (SI = CIERTO) o (NO=FALSO) Prueba o pregunta NO SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿PREPARADO PARA CONTESTAR UNAS PREGUNTAS DE RECONOCIMIENTO? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Cuál es la prueba o pregunta en este código? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Cuál es la prueba o pregunta CIERTA en este código? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Qué ocurre si la prueba es CIERTA? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Qué ocurre si la prueba es CIERTA? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Cuál es el caso opuesto de la prueba o pregunta? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Cuál es el caso opuesto de la prueba o pregunta? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Qué ocurre si la prueba es FALSA? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Observa este algoritmo y mira como es el código para Arduino La sintaxis condicional Observa este algoritmo y mira como es el código para Arduino ¿Qué ocurre si la prueba es FALSA? Prueba o pregunta NO if (LDR_val >= UMBRAL) // Comprueba si el nivel es bajo { digitalWrite(LED, LOW); // si es bajo, se apaga el LED } else if (LDR_val < UMBRAL) // Si el nivel es elevado... digitalWrite(LED, HIGH); // se enciende el LED SI Acción B Acción A

Revisa el montaje y el código de este programa y explica como funciona Software Hardware int ledPin= 13; // el terminal 13 se llama LED int inPin= 5; // el terminal 5 se llama inPin (es el pulsador) int val= 0; // variable para leer el status del terminal void setup() { pinMode(ledPin, OUTPUT);// declara el LED como salida pinMode(inPin, INPUT); // declare el pulsador como ENTRADA } void loop(){ val= digitalRead(inPin);// lee valor de entrada if(val== HIGH) {// chequea si el valor leído es “1” (botón presionado) digitalWrite(ledPin, LOW);// pone el LED en OFF } else{ digitalWrite(ledPin, LOW);// parpadea el LED delay(200); digitalWrite(ledPin, HIGH); }

Revisa el montaje y el código de este programa y explica como funciona Software Hardware int ledPin= 13; // el terminal 13 se llama LED int inPin= 5; // el terminal 5 se llama inPin (es el pulsador) int val= 0; // variable para leer el status del terminal void setup() { pinMode(ledPin, OUTPUT);// declara el LED como salida pinMode(inPin, INPUT); // declare el pulsador como ENTRADA } void loop(){ val= digitalRead(inPin);// lee valor de entrada if(val== HIGH) {// chequea si el valor leído es “1” (botón presionado) digitalWrite(ledPin, LOW);// pone el LED en OFF } else{ digitalWrite(ledPin, LOW);// parpadea el LED delay(200); digitalWrite(ledPin, HIGH); } LA RESPUESTA ES : Cuando se pulsa el pulsador (entrada5 a “0”) se enciende y se apaga de forma intermitente la salida 13 . Esto hace que Arduino se comporte como una alarma cuando alguién toca el pulsador, emitiendo una intermitencia en el actuador visual (LED)

Ahora, experimentad en clase y practicad con otros montajes. 3.0 Ahora, experimentad en clase y practicad con otros montajes. Poneos ahora en marcha para utilizar vuestro Arduino en el desarrollo de vuestra innovación TALLER DE ARDUINO