Descargar

Introducción a Arduino

Enviado por Pablo Turmero


    edu.red

    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.

    edu.red

    (Arduino UNO)

    edu.red

    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

    edu.red

    COMENZANDO CON ARDUINO

    1.- Descargar el entorno Arduino.

    2.-Instalar los drivers USB.

    3.Conectar la placa.

    Para programar la placa Arduino necesitas el entorno Arduino. Descarga la última versión desde http://www.arduino.cc/en/Main/Software La última versión de los drivers se puede encontrar en http://www.ftdichip.com/Drivers/ VCP.htm. Se puede alimentar la placa desde el puerto USB (bueno para controlar dispositivos de baja potencia como LEDs). Para alimentar la placa desde una fuente externa (6-12 V). En cualquier caso, conecta la placa a un puerto USB de tu ordenador.

    edu.red

    ESTRUCTURA DEL LENGUAJE DE PROGRAMACIÓN ARDUINO 1.- Organizado en al menos, dos funciones void setup() { Declaraciones; } void loop() { Declaraciones; } 2.- Ambas son necesarias para que el programa funcione 3.-Se puede incluir una sección de declaración de funciones

    edu.red

    edu.red

    edu.red

    EN UN PROGRAMA PUEDE HABER:

    – INSTRUCCIONES

    – FUNCIONES

    – DEFINICIÓN DE VARIABLES

    edu.red

    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

    – POSIBLES VALORES pinMode(pin,modo)

    digitalRead(pin)

    digitalWrite(pin, valor) – pin, entre 0 y 13 – modo, entre INPUT y OUTPUT – valor, entre HIGH y LOW

    edu.red

    INSTRUCCIONES DE E/S ANALÓGICAS – HAY 6 PINES DE E/S DIGITALES NUMERADOS DEL A0 AL A5

    – AL SER ANALÓGICOS, SIEMPRE SON DE LECTURA (NO NECESITA

    LA INSTRUCCIÓN pinMode)

    – INSTRUCCIONES

    analogRead(pin)

    analogWrite(pinPWM, valor) – pinPWM, a elegir entre 3, 5, 6, 9, 10 y 11 – valor, entre 0 y 255 – pin, entre 0 y 5 – el valor que devuelve está entre 0 y 1023

    edu.red

    PIN PWM (MODULACIÓN POR ANCHO DE PULSO) – HAY SEIS PINS PWM, 3, 5, 6, 9, 10 Y 11 – POSIBLES VALORES PARA LA INSTRUCCIÓN analogWrite(pinPWM, valor)

    Valor 0 -> salida de 0 voltios en el pin especificado;

    Valor de 255 -> salida de 5 voltios de salida en el pin especificado.

    Valores entre 0 y 255, el pin saca tensiones entre 0 y 5 voltios – valor de 64 mantiene 0 voltios ¾ partes del tiempo y 5 voltios ¼ del tiempo; – valor de 128 mantiene 0 voltios la mitad del tiempo y 5 voltios la otra mitad, – valor de 192 mantiene 0 voltios ¼ del tiempo y 5 voltios ¾ partes del tiempo.

    edu.red

    edu.red

    int led = 10; //define el pin 10 como 'led' int analog = 0; // define el pin 0 como 'analog' int valor; // define la variable 'valor'

    void setup() { //no es necesario configurar entradas y salidas

    void loop() { valor =analogRead(analog); //lee el pin 0 y lo asocia a //la variable valor valor /= 4; //divide valor entre 4 y lo reasigna a valor

    analogWrite(led, value); // escribe en el pin10 valor } EJEMPLO 1 DE PROGRAMA

    edu.red

    ELEMENTOS DEL LENGUAJE – llaves { }

    void loop () { Bloque de sentencias; }

    – punto y coma ; – bloques de comentarios /* */

    /* este sería un ejemplo de comentario que continúa en otras líneas*/ – comentarios de una sola línea //

    int contador = 0; //declaro la var contador y la inicializo a cero

    edu.red

    int tiempo=200; int n; // Declaración inicial

    void setup() { //comienza la configuracion for (n=5;n< 9;n++) { pinMode (n, OUTPUT); } } /*A continuación defino una función llamada secuencia Que será invocada por loop de manera continua */ void secuencia() { for (n=5;n< 9;n++) { digitalWrite (n, HIGH); //activa el pin n delay (tiempo); //cuenta 200 milisegundos digitalWrite (n, LOW); //desactiva el pin n delay (tiempo); //cuenta 200 milisegundos } } void loop() { secuencia(); } EJEMPLO 2 DE PROGRAMA

    edu.red

    – variables y declaración de variables int contador = 0;

    – Tipos de variables:

    byte (entre 0 y 255 sin signo y sin coma decimal) byte unaVariable=0;

    int (entre –32767 y 32767, sin coma decimal, con signo.) int saldoCuenta=0;

    long (entre – 2147483647 y 2147483647 sin coma decimal) long gastosGasolina= – 3541668;

    float (entre – 3.4028235 · 1038 y 3.4028235 · 1038 con coma decimal ) float costeReparación= 354.16;

    edu.red

    ESTRUCTURAS

    IF (condición) { Instrucciones; } ELSE { Instrucciones; }

    edu.red

    FOR (inicialización; condición; expresión) { Instrucciones; }

    edu.red

    WHILE (condición) { sentencias;}

    edu.red

    EJERCICIOS

    edu.red

    SOLUCIONES Secuencia de luces Semáforos

    edu.red

    El coche fantástico

    edu.red

    edu.red

    Ejemplo de divisor de tensión aplicado a un motor eléctrico

    edu.red

    (Esquema eléctrico)

    edu.red

    Programa

    edu.red

    PROGRAMACIÓN DE UN SERVO MOTOR