2. Programación en Arduino

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

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

Entradas Analógicas.

Clase 3: Sensores I. Conviértete en un Joven Inventor PENTA UC

Práctica 4. Entradas/Salidas Analógicas con Arduino

PROYECTO DE ELECTRÓNICA

PRÁCTICAS CON ARDUINO UNO

Control por Computador. Manual de arduino. Jorge Pomares Baeza. Grupo de Innovación Educativa en Automática 2009 GITE IEA

EL MICROCONTROLADOR ARDUINO

ABIERTO- ELECTRoNICA- PROTOTIPO- PLATAFORMA- QUE ES UN ARDUINO? ES UNA PLATAFORMA DE PROTOTIPADO ELECTRoNICA DE DISEnO ABIERTO. QUE SIGNIFICA ESTO?

Taller de electrónica para usos creativos. Practicando con Arduino

Este manual aborda todos los conceptos básicos de Arduino y es una excelente guía para todo aquel que quiera iniciarse en este apasionante mundo.

Especificaciones técnicas. Power, Inputs and Outputs. Operating Voltage Input Voltage (recommended) Input Voltage (limits) Analog Input Pins

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

EJERCICIOS DE ARDUINO RESUELTOS

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

Actuadores eléctricos - Motores

1.- INTRODUCCIÓN EL HARDWARE DE LA PLACA ARDUINO Alimentación Entradas y Salidas Comunicaciones...

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

MANUAL DE USUARIO Como utilizar un servo motor con Arduino REV. 1.0

Especificaciones técnicas de los prototipos:

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

Sensor Analógico: Potenciómetro

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

Práctica de manejo de motores CC con arduino. Antonio Martínez

Universidad de Costa Rica

Tema: Introducción a la Plataforma Arduino

EJERCICIOS CON ARDUINO LED ENCENDIDO. Se conecta el Led al pin 52 y a alimentación. Compilar Se enciende el LED.

INTRODUCCIÓN DESCRIPCIÓN... 4 Características Hardware... 4

Tutorial para principiantes: Cómo aprender a programar un Dreamster v1.0?

VIII. CONTROL USANDO SIMULINK Y ARDUINO

Arduino. OPEN HARDWARE - David Cuartielles, Máximo Banti.

Registros SFR vistos hasta ahora: Microcontroladores PIC

Guía de usuario de la Relay Control Shield v1.0

Introducción. Que es Arduino? 1. Por qué Arduino? 2. Asequible

Conviértete en un Joven Inventor PENTA UC TAV Humano-Máquina

Introducción a Arduino

Microtutorial Arduino

Ardunio. Test Placa. LunikSoft. Fco. Javier Andrade.

CONSTRUCCIÓN DE TIMER PARA VUELO CIRCULAR CON NANO ARDUINO

AUTOMATIZACIÓN - CURSO: Práctica 4: Sistema de Monitorización de tiempo mediante Arduino

5.- ENTRADAS/SALIDAS DIGITALES

Creación de Funciones de Conducción

GUIÓN DE PRÁCTICAS Arduino San Valero

Sesión 3 (Práctica) Sensores Actuadores

Motor de Corriente Continua

Rastreador de Luz para Panel Solar y Sistema de Carga para Dispositivos USB

MANUAL DE USUARIO ARDUINO DMX MASTER SHIELD MCI-TDD REV. 1.0

Microchip Tips & Tricks...

Curso de introducción a la robótica. Juan Antonio Infantes Díaz Óscar Ramírez Jiménez

Curso de supervivencia con ARDUINO.

PROCESAMIENTO DIGITAL DE SEÑALES PRÁCTICAS DE LABORATORIO CON ARDUINO DUE

AR 9 T. Tutorial 9: Display LCD

ESTACIONAMIENTO AUTOMATIZADO CON ARDUINO

Arduino, aplicaciones actuales y potenciales, para contrarrestar los efectos del cambio climático en la agricultura

Tema: Arduino y Comunicación Serial con Visual Basic

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Instituto Tecnológico de Colima

ANEXO N 1. CÓDIGO PARA CONFIGURACIÓN DE MÓDULO BLUETOOTH POR MEDIO DE MICROCONTROLADOR ATMEGA328P

Taller de Interrupciones

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ELECTRONICA

EducaBot. Sensores 2º parte.

AUTOMATIZACIÓN - CURSO: Práctica 3: Automatización de una Puerta de Garaje mediante Arduino

Fernando castaño Portela Ingeniero de soporte y Asesor técnico La Red Electrónica s.a.

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

Universidad Luterana Salvadoreña. Cátedra: Redes I. Docente: Ing. Manuel de Jesús Flores

COMUNIDAD DE FORMADORES DEL EMPRENDIMIENTO TECNOLÓGICO FEMPRETEC

Como utilizar un servo motor con Arduino.

INTERRUPTOR CREPUSCULAR CON LDR Y ARDUINO OBJETIVOS MATERIAL NECESARIO

Contenido Unidad de Robótica

MEDIDOR DE TEMPERATURA

Display LCD y memorias

Guía de Programación para Visual Basic 6

Jefe del Departamento de Tecnología, Institut Pompeu Fabra, Generalitat de Catalunya

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

PRACTICAS CON ARDUINO: Nivel 1

Maqueta de control PID con Arduino

EducaBot. Motores y movilidad.

Detección de luz con sensor LDR

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

MANUAL DE USUARIO Sensor de temperatura y humedad digital MCI-SEN REV. 1.0


Módulo Radio frecuencia FSK y Arduino

Taller Introducción a la Ingeniería Eléctrica Robot y comunicaciones basados en Microcontrolador Arduino

Taller de Introducción a Arduino. Impartido por Abel Arellano y Omar Valencia. Duración: 5 sesiones de 4 horas del -- al --- Presentación:

Figura Discos para enconder de las ruedas

Lenguajes de programación

Robótica en la Universidad

Workshop mbed. Ariel Burman Ernesto Corbellini Sebastián García Marra Tomás González

Utilización de los puertos serial y paralelo de una PC usando LabView

CUADERNO DE VERANO TECNOLOGÍA, PROGRAMACIÓN Y ROBÓTICA 3ºESO

MODULO ANALOGICO REMOTO

TERMÓMETRO DIGITAL DS1624

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA

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

Estructuras de Repetición (Repita para)

Estatutos de Control C# Estatutos de Decisión (Selección)

Módulo Educativo. de construcción de robots para estudiantes. Gobernación de Arauca. Secretaría de Educación Departamental de Arauca

funciones printf scanf

Transcripción:

2. Programación en Arduino Tallerine Android/LED Instituto de Ingenería Eléctrica 13 de marzo de 2017 IIE (TallerIne) Programación 13 de marzo de 2017 1 / 27

Repaso Conocimos al Arduino Vimos nociones de programación Trabajamos con sus salidas digitales Usamos las salidas para prender y apagar leds. IIE (TallerIne) Programación 13 de marzo de 2017 2 / 27

El taller de hoy Entradas digitales Entradas y salidas analógicas Arquitectura básica de un sistema Más sobre funciones IIE (TallerIne) Programación 13 de marzo de 2017 3 / 27

Entrada y salida digital parte 2 IIE (TallerIne) Programación 13 de marzo de 2017 4 / 27

Entradas digitales Los pines 0 a 13 pueden ser usados para leer datos binarios 0 2,5V es considerado como un 0 o FALSE 2,5 5V es un 1 o TRUE Debemos congurar un pin como entrada usando la función pinmode IIE (TallerIne) Programación 13 de marzo de 2017 5 / 27

Entradas digitales const int ENTRADA = 4; // leeremos del pin 4 const int SALIDA = 13; // para ver lo que se lee void setup (){ pinmode ( ENTRADA, INPUT ); // entrada desde pin ENTRADA pinmode ( SALIDA, OUTPUT ); // salida al pin SALIDA } void loop (){ bool valor ; valor = digitalread ( ENTRADA ); // leemos digitalwrite ( SALIDA, valor ); // prendemos o apagamos segun valor delay (50); } IIE (TallerIne) Programación 13 de marzo de 2017 6 / 27

Entradas digitales pull up y pull down Problema Qué valor tiene un pin cuando no está conectado? En general no está denido! Caso muy común: botón pulsador IIE (TallerIne) Programación 13 de marzo de 2017 7 / 27

Entradas digitales pull up y pull down Solución eléctrica Pull-up: pin conectado a VCC Pull-down: pin conectado a GND IIE (TallerIne) Programación 13 de marzo de 2017 8 / 27

Pull-up y pull-down en Arduino pull-up y pull-down incorporados en la placa Pull-up: escribir HIGH en pin de entrada Pull-down: escribir LOW en pin de entrada const int ENTRADA = 4; // pin a usar como entrada void setup (){ pinmode ( ENTRADA, INPUT ); digitalwrite ( ENTRADA, HIGH ); // pull - up! una vez alcanza } void loop (){ bool valor = digitalread ( ENTRADA ); // hacer algo con el valor... } IIE (TallerIne) Programación 13 de marzo de 2017 9 / 27

Entradas digitales ejercicios en taller Programa 1 Usar como base al entregable del primer taller Leer periódicamente el pin 8 Cambiar la dirección de los LEDs según valor de lpin Programa 2 Utilizar el pin 8 como pulsador En circuito abierto, debe leerse 1 Al cerrarse el circuito, debe bajar a 0 Invertir la dirección de los LEDs con cada pulsación IIE (TallerIne) Programación 13 de marzo de 2017 10 / 27

Entrada y salida analógica IIE (TallerIne) Programación 13 de marzo de 2017 11 / 27

Entradas analógicas: conversor A/D Las entradas analógicas se leen en los pines A0 a A5 Sólo sirven para leer, no para escribir Los datos son leídos como números mediante un Conversor A/D: Conversor Analógico/Digital (A/D) de 10 bits: recibe señales continuas entre 0 y 5V y retorna números enteros entre 0 y 1023 la función analogread(int pin) se usa para leer un dato analógico IIE (TallerIne) Programación 13 de marzo de 2017 12 / 27

Entradas analógicas del Arduino int dato ; // variable que va a almacenar lo que lee un pin int pin = 0; // pin A0 de entrada analogica void setup (){ // no es necesario inicializar nada } void loop (){ dato = analogread ( pin ); // dato es un entero entre 0 y 1023 } IIE (TallerIne) Programación 13 de marzo de 2017 13 / 27

Salidas analógicas (PWM) del Arduino Pueden emular 256 voltajes distintos entre 0 y 5V. Por ejemplo para controlar motores de un robot, intensidad de un LED Funcion analogwrite(pin,valor) pin pin de salida del Arduino (debe tener ) valor número entre 0 (0V) y 255 (5V) IIE (TallerIne) Programación 13 de marzo de 2017 14 / 27

Ejercicios Ejercicio 3 Determinar qué valor entero corresponde a una tensión de entrada de 3,5 volts en un pin de entrada analógica. Ejercicio 4 Determinar el valor a poner en un pin de salida PWM para emular una tensión de 3,5 volts. IIE (TallerIne) Programación 13 de marzo de 2017 15 / 27

Ejemplo: entrada analógica El siguiente código lee el valor de una entrada analógica y saca ese valor a través de una salida PWM: int pwmpin = 9; // pin de salida que soporta PWM int analogpin = A0 ; // pin de entrada analogica int val = 0; // variable para almacenar el valor leido y a escribir float volt = 0; // variable para almacenar el voltaje leido en la entr void setup () { pinmode ( pwmpin, OUTPUT ); // inicializa el pin como salida } void loop () { val = analogread ( analogpin ); // lee la entrada analogica volt =(5.0 * val ) / 1023; // calcula el voltaje leido val = 255 * ( volt / 5); // calcula el valor a sacar que corresponde al voltaje leido analogwrite ( pwmpin, val ); // saca el valor correspondiente } IIE (TallerIne) Programación 13 de marzo de 2017 16 / 27

Arquitectura de sistemas IIE (TallerIne) Programación 13 de marzo de 2017 17 / 27

Arquitectura del sistema Von Neumann Memoria (estado interno) Programa Entrada de datos Salida de datos Programación estructurada en arduino Constantes Variables globales Tipos de variables Funciones y variables locales Dispositivos de E/S IIE (TallerIne) Programación 13 de marzo de 2017 18 / 27

Funciones IIE (TallerIne) Programación 13 de marzo de 2017 19 / 27

Funciones (concepto general) Abstracción matemática recibe un conjunto de parámetros como entrada... produce un resultado como salida IIE (TallerIne) Programación 13 de marzo de 2017 20 / 27

Funciones en Arduino Conjunto de sentencias en un bloque ({}) Nombre único, conjunto de parámetros (opcional) Valor de retorno (opcional) float promediar ( float param1, float param2 ) { float p; p = ( num1 + num2 ) / 2.0; return p; } IIE (TallerIne) Programación 13 de marzo de 2017 21 / 27

Llamada a funciones Denición // DEFINIMOS promediar : // recibe 2 parametros float // devuelve un float float promediar ( float num1, float num2 ) { // encabezado float p; // variable local p = ( num1 + num2 ) / 2.0; // sentencia return p; // termina ( RETORNA ) y devuelve resultado } Llamada void loop () { int k; // LLAMAMOS a la funcion ' promediar ' con param1 =4, param2 =5 // al RETORNAR el resultado se guarda en variable k k = promediar (4, 5); } IIE (TallerIne) Programación 13 de marzo de 2017 22 / 27

Por qué usar funciones? Sintetizar tareas repetitivas ahorra código, reduce errores Encapsular organiza programa en conceptos y tareas facilita el desarrollo reutiliza código IIE (TallerIne) Programación 13 de marzo de 2017 23 / 27

Funciones y Arduino API: Application Program Interface Denidas en Arduino, llamadas por el programador Ejemplos: delay, analogwrite, digitalread, pinmode Hay muchas mas! Callbacks ciclo de vida Denidas por el programadar y llamadas por el Arduino setup: llamada al prenderse o resetearse el Arduino loop: llamada luego de setup, una y otra vez Denidas por el usuario Pueden denirse todas las que se quiera dentro del Sketch Bibliotecas Conjuntos de funciones hechas por otros para algo particular Ejemplo: manejo de motores, control remoto, wi-, etc. IIE (TallerIne) Programación 13 de marzo de 2017 24 / 27

Funciones y Arduino API: Application Program Interface Denidas en Arduino, llamadas por el programador Ejemplos: delay, analogwrite, digitalread, pinmode Hay muchas mas! Callbacks ciclo de vida Denidas por el programadar y llamadas por el Arduino setup: llamada al prenderse o resetearse el Arduino loop: llamada luego de setup, una y otra vez Denidas por el usuario Pueden denirse todas las que se quiera dentro del Sketch Bibliotecas Conjuntos de funciones hechas por otros para algo particular Ejemplo: manejo de motores, control remoto, wi-, etc. IIE (TallerIne) Programación 13 de marzo de 2017 24 / 27

Ejercicios: funciones Entrada analógica a volts Escribir una función float convertirentrada(int valorentrada) que reciba el entero leído de una entrada analógica y devuelva el en voltios correspondiente volts a PWM Escribir una función int convertirsalida(float valorvolts) que tome un valor en voltios de 0 a 5 y genere el valor de PWM (0 a 255) que genere ese voltaje en la salida. Repetidor analógico Escribir un programa que repita indenidamente esta secuencia: lea un pin analógico, utilice las dos funciones anteriores para generar un valor PWM, escriba el valor PWM obtenido en un pin de salida IIE (TallerIne) Programación 13 de marzo de 2017 25 / 27

Para próxima clase IIE (TallerIne) Programación 13 de marzo de 2017 26 / 27

Voltímetro de LEDs Montar un circuito que maneje cuatro LEDs en la y tome la entrada de un divisor resistivo colocado entre GND y VCC (ver gura) programar al Arduino para que cada 50ms lea una entrada analógica y luego prenda o apague los cuatro LEDs de manera que: el primer pin se prenda si el voltaje en la entrada supera 1,0V el segundo pin se prenda si el voltaje en la entrada supera 2,0V el tercer pin se prenda si el voltaje en la entrada supera 3,0V el cuarto pin se prenda si el voltaje en la entrada supera 4,0V IIE (TallerIne) Programación 13 de marzo de 2017 27 / 27