PRACTICAS CON ARDUINO: Nivel 1

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

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

MEDIDOR DE TEMPERATURA

EL MICROCONTROLADOR ARDUINO

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

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

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

PRÁCTICAS CON ARDUINO UNO

Descripción del sistema eléctrico CAN-BUS con pantallas táctiles.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

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

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

AUTOMATIZACIÓN INDUSTRIAL

PROGRAMAS PARA LA CLASSPAD MANAGER.

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

COMO EMPEZAR... Proceso de conexión de la placa al ordenador:

EJERCICIOS DE ARDUINO RESUELTOS

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Introducción a la programación del robot moway

Guía de usuario de Antena Bluetooth / USB Índice

PUERTAS LOGICAS. Objetivo específico Conectar los circuitos integrados CI TTL Comprobar el funcionamiento lógico del AND, OR, NOT, NAND y NOR

ESTRUCTURA BÁSICA DE UN ORDENADOR

QUÉ ES MBOT? Conectores RJ25

configuración de tu equipo. Rellena la siguiente tabla y contesta a las siguientes preguntas:

Estructuras de Control

Robótica. Un robot...

Microtutorial Arduino

Guía práctica de estudio 05: Diagramas de flujo

fundamentos de programación (unidad 4) programación estructurada en Java

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

CONSTRUCCIÓN DE TIMER PARA VUELO CIRCULAR CON NANO ARDUINO

V 1.0. Ing. Juan C. Guarnizo B.

Estructuras de control

Mando centralizado de desvíos

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

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

Introducción a los microprocesadores / microcontroladores

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

PRÁCTICAS DE ELECTRICIDAD Y ELECTRÓNICA CON CROCODILE. Lucía Defez Sánchez Profesora de la asignatura tecnología en la ESO

Entradas Analógicas.

Programador de riego una estación Manual de Instrucciones

5. Sentencias selectivas o condicionales

FORMATO CONDICIONAL EN EXCEL

GUÍA DE ESTILO EN JAVA

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.

EL ORDENADOR A. PERIFÉRICOS. B. UNIDAD CENTRAL. 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO

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

TEMA 4. ESTRUCTURAS DE CONTROL

Ejercicio: Posicionador de piezas

Tema: Introducción a la Plataforma Arduino

PROYECTO DE ELECTRÓNICA

Práctica 5 Diseño de circuitos con componentes básicos.

VIII. CONTROL USANDO SIMULINK Y ARDUINO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

1.- Conectando el zumbador a un pin PWM

Estructuras en LabVIEW.

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

TuBot 2014 GUIA DE MONTAJE Y PROGRAMACIÓN MOTORES. Dpto. de Electrónica - Universidad de Alcalá TuBot

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

FACULTAD DE INGENIERÍA

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Introducción a la Operación de Computadoras Personales

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

COMPONENTES PRINCIPALES DEL HARDWARE DE UN ORDENADOR:

(El examen consta de 6 preguntas, todas ellas con la misma puntuación) CÓDIGO DE COLORES DE RESISTENCIAS

Tema 1: Arquitectura de ordenadores, hardware y software

El pequeño círculo de la NO-O aporta un NO funcional a la salida, de modo que invierte los estados de la misma.

Ficha de Aprendizaje N 13

El objeto de este proyecto es el de construir un robot araña controlado por un PIC16F84A.

Manual de instrucciones LIGHTING SYSTEMS

Sistemas Electrónicos Digitales

Objetos de aprendizaje: Computadora

Robots para todos con Picaxe (I) El MED1 Picaxe Walker

Análisis y Manejo de datos en Excel 2013 con tablas, funciones y tablas dinámicas

GUIÓN DE PRÁCTICAS Arduino San Valero

UNIDAD 1. COMPONENTES DEL COMPUTADOR

1. Qué es un automatismo?

1-Introducción. KIT ARM- Ténicas Digitales II - Ing. Ruben M. Lozano /9

Software de control y adquisición de datos SCM4000

EQUIPO T2000 GPRS/SMS

FIRMA ELECTRÓNICA INSTALACIÓN Y USO DE CERTIFICADOS EN ARCHIVO PKCS#12 MANUAL DE USUARIO V1.1 14/07/2015

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

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

Fundamentos de programación

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

MANUAL DE USO DE LOS EQUIPOS INSTALADOS EN LAS AULAS DEL EDIFICIO DE FORMACION

Manual de Uso e Instalación

PRÁCTICAS DE ELECTRÓNICA 4º E.S.O.

CONTROLADORAS EDUCATIVAS. Por: Pedro Ruiz

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

Contenido Unidad de Robótica

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

1. Computadores y programación

Investigación y Desarrollos en Open Hardware

IEC Estandarización de esquemas y normalización

INSTRUCCIONES PROGRAMADOR ATR-901. Introducción...2

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Programa de aplicación Tebis

Transcripción:

PRACTICAS CON ARDUINO: Nivel 1 1. INTRODUCCIÓN Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica. Un microcontrolador es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida. El hardware de Arduino consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Consta de 13 puertos o conexiones digitales que pueden ser utilizados cono salidas o entradas (aunque es aconsejable no utilizar la 0 y la 1). Cuando son utilizadas como salidas darán un 0 o un 1, y por tanto, 0 voltios o 5 voltios. Con esta tensión podemos controlar dispositivos electrónicos que consuman poca energía, por ejemplo LED, un zumbador, o cualquier otro cuyo consumo sea inferior a 20 ma. Para controlar un motor, una lámpara, incluso un Relé, es necesario utilizar un transistor. También consta de 5 entradas analógicas que pueden recibir tensiones de 7 a 12 v, procedentes de cualquier sensor que proporcione información del exterior a nuestro Arduino: temperatura, luminosidad, humedad, velocidad, posición, La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de programación de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programación y aplicaciones populares en Arduino. Algunos ejemplos son: Java, Flash (mediante ActionScript), Processing, Pure Data, MaxMSP (entorno gráfico de programación para aplicaciones musicales, de audio y multimedia), VVVV (síntesis de vídeo en tiempo real), Adobe Director, Pitón, Ruby, C, C++ (mediante libserial o en Windows), Cocoa/Objective-C (para Mac OS X), Linux TTY (terminales de Linux), 3DVIA Virtools (aplicaciones interactivas y de tiempo real), SuperCollider (síntesis de audio en tiempo real), Instant Reality (X3D), Visual Basic.NET, VBScript, Gambas, Php, Esto es posible debido a que Arduino se comunica mediante la transmisión de datos en formato serie que es algo que la mayoría de los lenguajes anteriormente citados soportan. Para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida. Es bastante interesante tener la posibilidad de interactuar Arduino mediante esta gran variedad de sistemas y lenguajes puesto que dependiendo de cuales sean las necesidades del problema que vamos a resolver podremos aprovecharnos de la gran compatibilidad de comunicación que ofrece. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Al ser open-hardware, tanto su diseño como su distribución es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia. 1

2. PROGRAMACIÓN BÁSICA La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes. Ambas funciones son necesarias para que el programa trabaje. Hay que ser muy cuidadoso y escribir los comandos exactamente, respetando mayúsculas y minúsculas y colocando ; al finalizar la línea de comando. La estructura básica es esta: En el setup, entre los corchetes tenemos que indicar void setup() estamentos; los datos de configuración del programa. Por ejemplo que pin o puerto vamos a utilizar, cuales son entradas y cuales salidas, cuales son las variables El setup se ejecuta sólo una vez al comenzar el programa, mientras que lo que pongamos en el loop se va a repetir indefinidamente. La función bucle (loop) siguiente contiene el código que void loop() estamentos; se ejecutara continuamente (lectura de entradas, activación de salidas, etc) Esta función es el núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo. 2

PRÁCTICA 1. PROGRAMACIÓN BÁSICA: Activación de una salida digital. El LED conectado a la salida digital nº 12 parpadea. pinmode(patilla, modo). El modo puede ser INPUT (que es entrada) o OUTPUT (que es salida). digitalwrite(patilla,valor). Escribe en una patilla un valor HIGH (que es alto) o LOW. Dentro del setup (entre los corchetes), colocamos la orden void setup() pinmode. Con esta orden indicamos que la salida 12 será una Salida. pinmode(12, OUTPUT); Dentro del loop (entre los corchetes) digitalwrite void loop() digitalwrite(12, HIGH); digitalwrite(12, LOW); delay(100); escribe en la salida digital 12 un valor 1 Ojo!! Después de cada orden hay que escribir ; delay Hace esperar al programa 500 milisegundos ( o sea 0,5 segundos) Repite la orden y escribe un valor 0 en el pin 12. Espera 0,1 segundo. Repite el programa indefinidamente. Una vez escrito el programa pulsamos el botón verificar, para detectar errores de escritura. Si no hay ninguno conectamos arduino al ordenador y pulsamos cargar para que lo ejecute.a los programas se les suele poner un texto que explica como funcionan. El próximo programa que realicemos lo tendrá. Pero hay que tener mucho cuidado y escribir el texto adecuadamente para que no de error. 3

PRÁCTICA 2. PROGRAMACIÓN BÁSICA: Activación de una salida digital. Se encienden alternativamente 3 LED. Vamos a crear tres variables que asignaremos a cada una de las patillas donde hemos conectado los LED. Programa con las explicaciones iniciales que deben ir /* explicación */ Si queremos hacer alguna explicación en la linea de comando debe de ser después de // /* 02 Salidas Digitales Los tres led parpadean formando una secuencia Rojo, Amarillo y Verde. Instrucciones : Debemos utilizar el punto y coma " ; " al final de cada declaración separando los elementos del probrama. Con la orden int creamos una variable, por ejemplo la variable "rojo" y le asignamos un valor, por ejemplo valor "12". Si la variable queremos que esté disponible para todo el programa debe de crearse ANTES del setup(). También podemos crear variables que sólo afecten a una parte del programa. Es necesario escribir las ordenes correctamente. NO pinmode sino pinmode. Si está bien escrito aparece en color marrón. Conexiones: pin 12 : LED Rojo pin 11 : LED Amarillo pin 10 : LED Verde Crearemos las variables rojo, amarillo y verde y les asignaremos el número de pin. José Antonio González */ int rojo = 12; int amarillo = 11; int verde = 10; // Crea una variable llamada "rojo" y le asigna un valor 13 void setup() pinmode(rojo, OUTPUT); // Indica que la variable " rojo " es una salida de arduino, y por tanto el pin 13 es una salida. pinmode(amarillo, OUTPUT); pinmode(verde, OUTPUT); void loop() digitalwrite(rojo, HIGH); digitalwrite(rojo, LOW); // Escribe en la variable "rojo" un valor alto, un "1". // Espera 0,5 segundos // Escribe en la variable "rojo" un valor bajo, un "0". digitalwrite(amarillo, HIGH); digitalwrite(amarillo, LOW); digitalwrite(verde, HIGH); digitalwrite(verde, LOW); 4

5

PRÁCTICA 3. REGULACIÓN DE UN CRUCE DE SEMÁFOROS. Tenemos dos semáforos con una luz roja, otra amarilla y otra verde. Llamaremos rojo1, amarillo1 y verde1 a las luces de uno de los semáforos y rojo2, amarillo2 y verde2 a las luces del otro. Piensa la secuencia lógica de funcionamiento del sistema escríbela y posteriormente realiza el programa. Utiliza los siguientes pines, creando las variables correspondientes. pin 13 : LED Rojo1 pin 7 : LED Rojo2 pin 12 : LED Amarillo1 pin 6 : LED Amarillo2 pin 11 : LED Verde1 pin 5 : LED Verde2 PRÁCTICA 4. SOS CON ZUMBADOR. Se trata de un zumbador que en código morse (pitidos largos y cortos) emite una palabra, en nuestro caso SOS. En código morse la S se reproduce con 3 señales de corta duración y la O con tres señales de larga duración. El zumbador debe estar conectado al pin 13, los pitidos cortos tendrán una duración de 100 ms y los largos de 300 ms. Entre letra y letra debe pasar un tiempo de 300 ms y, entre SOS y SOS debe pasar un tiempo de 1000 ms. PRÁCTICA 5. EL COCHE FANTÁSTICO. Se trata de encender y apagar 7 leds de forma secuencial. Los led van a estar conectados a los pines 5,6,7,8,9,10 y 11. En primer lugar los led se deben encender del 5 al11, dejando pasar 50 milisegundos, al finalizar deben comenzar a encenderse y apagarse del led 11 al 5. La secuencia debe repetirse indefinidamente. El efecto del programa es el de la serie de televisión el coche fantástico. 3. ENTRADAS DIGITALES Es muy importante saber como podemos introducir en arduino una señal digital ( 0 ó 1) en una de sus entradas. Esta señal puede proceder de un final de carrera, un sensor de luz, un pulsador, En primer lugar debemos configurar el pin que vamos a utilizar como entrada en el programa pero es FUNDAMENTAL que la señal de entrada procedente del exterior sea de 5 voltios y tenga una resistencia de 10 KΩ conectada a tierra o 0 voltios. Así evitamos cortocircuitos. Ojo porque podemos quemar el microprocesador El interruptor podría ser un pulsador, como en el próximo ejercicio o una puerta lógica, un sensor de luz con su transistor, En esta práctica vamos a utilizar también la orden if que nos permite que el programa haga una cosa u otra en función de un dato o una entrada. 6

4. ORDEN if (condicional) if es una función que se utiliza para probar si una determinada condición se ha alcanzado, como por ejemplo averiguar si un valor analógico está por encima de un cierto número, y ejecutar una serie de operaciones que se escriben dentro de llaves, si es verdad. Si es falso (la condición no se cumple) el programa salta y no ejecuta las operaciones que están dentro de las llaves. El formato para if es el siguiente: if (x==high) pinwrite(10, LOW) Si la variable x tiene un valor igual a HIGH o 5 voltios entonces pon en el pin 10 un 0. Otro ejemplo: If( digitalread(10)==high) pinwrite(13, LOW) PRACTICA 5: SEMÁFORO CON PULSADOR. Realiza un semáforo con un pulsador de modo que hasta que no lo pongamos a 5 voltios (un 1) no se pondrá en marcha el programa. Ojo con la conexión del pulsador al pin 8. /* 03 Semaforo simple. Con pulsador, de modo que cuando le demos un pulso, se pone en marcha el semáforo, hasta que no le demos otro no volverá a funcionar. ORDEN IF(SI Condicional) If (concicioon) "corchete" ejecutamos las instrucciones entre corchetes "corchete" Conexiones: pin 13 : LED Rojo pin 12 : LED Amarillo pin 11 : LED Verde pin 8 : Pulsador Crearemos las variables rojo, amarillo,verde y pulsador y les asignaremos el número de pin. José Antonio González */ 7

int rojo = 13; // Crea una variable llamada "rojo" y le asigna un valor 13 int amarillo = 12; int verde = 11; int pulsador = 8; void setup() pinmode(rojo, OUTPUT); // Indica que la variable " rojo " es una salida de arduino, y por tanto el pin 13 es una salida. pinmode(amarillo, OUTPUT); pinmode(verde, OUTPUT); pinmode(pulsador, INPUT); void loop() if (digitalread(pulsador) == HIGH) digitalwrite(rojo, HIGH); // Escribe en la variable "rojo" un valor alto, un "1". // Espera 0,5 segundos digitalwrite(rojo, LOW); // Escribe en la variable "rojo" un valor bajo, un "0". digitalwrite(amarillo, HIGH); digitalwrite(amarillo, LOW); digitalwrite(verde, HIGH); digitalwrite(verde, LOW); En el ejemplo anterior se compara una variable con un valor, el cual puede ser una variable o constante. Si la comparación, o la condición entre paréntesis se cumple (es cierta), las declaraciones dentro de los corchetes se ejecutan. Si no es así, el programa salta sobre ellas y sigue. 8

5. ORDEN if...else (si.sino.) if else viene a ser un estructura que se ejecuta en respuesta a la idea si esto no se cumple haz esto otro. Por ejemplo, si se desea probar una entrada digital, y hacer una cosa si la entrada fue alto o hacer otra cosa si la entrada es baja, usted escribiría que de esta manera: if (inputpin == HIGH) instruccionesa; else instruccionesb; Else puede ir precedido de otra condición de manera que se pueden establecer varias estructuras condicionales de tipo unas dentro de las otras (anidamiento) de forma que sean mutuamente excluyentes pudiéndose ejecutar a la vez. Es incluso posible tener un número ilimitado de estos condicionales. Recuerde sin embargo qué sólo un conjunto de declaraciones se llevará a cabo dependiendo de la condición probada: if (inputpin < 500) instruccionesa; else if (inputpin >= 1000) instruccionesb; else instruccionesc; PRACTICA 6: SEMÁFORO CON PULSADOR Y ORDEN if else. Repite la progrmación anterior de modo que si se cierra el pulsador se pone en marcha la secuencia del control de semáforos. Si no pulsamos todos los led deben encenderse, permanecer unos instantes encendidos y luego apagarse. 9

6. ORDEN for La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se vuelve a testear la condición. La declaración for tiene tres partes separadas por (;), vemos el ejemplo de su sintaxis: for (inicialización; condición; expresión) Instrucciones; La inicialización de una variable local se produce una sola vez y la condición se testea cada vez que se termina la ejecución de las instrucciones dentro del bucle. Esta condición puede ser que una entrada esté activa, que un final de carrera esté pulsado, Mientras que la condición sigue cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se cumple, el bucle termina. En la expresión podemos colocar un parámetro que determine cuantas veces va a repetirse el bucle. Ej: En primer lugar se define la variable i y le da un valor 0. Siempre que i sea menor que 20 se repite todo lo que pongamos dentro de los corchetes. Cuando se han ejecutado las órdenes, se ejecuta la expresión i++ que suma 1 al valor de i. Si el valor de i continua siendo menor de 20 se repite el proceso. Cuando i llega a valer 20 se para. for (int i=0; i<20; i++) digitalwrite(13, HIGH); delay(250); digitalwrite(13, LOW); delay(250); REPITE LA PRÁCTICA ZUMBADOR SOS UTILIZANDO LA ORDEN FOR Debes lograr que el zumbador suene 3 veces seguidas para producir la letra S, otras 3 para producir la letra O y otras tres la letra S. 10