Manual Programacion Arduino - Manual+Programacion+Arduino

Embed Size (px)

Citation preview

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    1/71

    La “ inteligencia de Arduino” se expresa mediante su

    lenguaje de programación 

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    2/71

    Datos del documento original

    Arduino Notebook: A Beginner’s Reference Written

    and compiled by Brian W. Evans

    With information or inspiration taken from:http://www.arduino.cchttp://www.wiring.org.cohttp://www.arduino.cc/en/Booklet/HomePagehttp://cslibrary.stanford.edu/101/

    Including material written by:Massimo BanziHernando BarraginDavid Cuartielles

    Tom IgoeTodd Kurt

    David Mellisand others

    Published:First Edition August 2007

    This work is licensed under the Creative CommonsAttribution-Noncommercial-Share Alike 3.0 License.

    To view a copy of this license, visit:

    http://creativecommons.org/licenses/by-nc-/  

    Or send a letter to:

    Creative Commons171 Second Street, Suite 300San Francisco, California, 94105, USA

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    3/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    4/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    5/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    6/71

     // configura el 'pin' como salida

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    7/71

     // pone en uno (on, 5v) el ´pin´ // espera un segundo (1000 ms) // pone en cero (off, 0v.) el ´pin´

     // crea una variable temporal 'v' // lee el valor del potenciómetro // convierte 0-1023 a 0-255

     // devuelve el valor final

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    8/71

     // declara la variable 'x' como tipo entero de valor 13

     /* esto es un bloque de comentariono se debe olvidar cerrar los comentarios

    estos deben estar equilibrados*/

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    9/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    10/71

     // pregunta si la variable es menor de 100

    ;// si es cierto asigna el valor 100 a esta

     // usa el valor como retardo

    palabra reservada

    entradaVariable“ int” ,

    setup()

    variable global

    setup()

    variable local

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    11/71

      // 'value' es visible para cualquier función

     // no es necesario configurar

     // 'i ' solo es visible // dentro del bucle for

     // 'f' es visible solo // dentro del bucle

     // declara 'unaVariable' como tipo byte

     // declara 'unaVariable' como una variablede tipo entero

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    12/71

     // declara 'unaVariable' como tipo long

    ; // declara 'unaVariable' como tipo flotante

     // declara un array de enteros de 6 posiciones // asigna l valor 10 a la posición 4

     // x ahora es igual a 10 que está en la posición 3

    del array

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    13/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    14/71

    (int) myFloat

     // igual que x = x + 1, o incrementar x en + 1 // igual que x = x - 1, o decrementar x en -1 // igual que x = x + y, o incrementra x en +y // igual que x = x - y, o decrementar x en -y // igual que x = x * y, o multiplicar x por y // igual que x = x / y, o dividir x por y

    if

     // x es igual a y // x no es igual a y

     // x es menor que y // x es mayor que y

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    15/71

     // x es menor o igual que y // x es mayor o igual que y

     // cierto sólo si las dos expresiones son ciertas

     // cierto si una cualquiera de las expresioneses cierta

     // cierto solo si la expresión es falsa

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    16/71

    pinMode

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    17/71

    idea “ si esto no secumple haz esto otro” .

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    18/71

    inicialización condición

     // declara i, prueba que es menor que20, incrementa i en 1

     // envía un 1 al pin 13 // espera ¼ seg. // envía un 0 al pin 13 // espera ¼ de seg.

    variable de prueba

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    19/71

     // testea si es menor que 200

    ejecuta las instrucciones entre llaves // incrementa la variable en 1

    leeSensor()

    setup ()

     // configura ‘pin’ como salida

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    20/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    21/71

     // asigna a LED el valor 13 // asigna a botón el valor 7 // define el valor y le asigna el valor 0

     // configura el led (pin13) como salida // configura botón (pin7) como entrada

     //lee el estado de la entrada botón // envía a la salida ́ led´el valor leído

    resoluciónde 10 bits

     // asigna a valor lo que lee en la entrada ́ pin'

    “ pin PWM”

     // escribe 'valor' en el 'pin' definido comoanalógico

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    22/71

    analogWriteanalogWrite

     // define el pin 10 como ́ led´ // define el pin 0 como ́ analoǵ // define la variable ́ valor´

     // no es necesario configurar entradas y salidas

     // lee el pin 0 y lo asocia a lavariable valor

    ; / /divide valor entre 4 y lo reasigna a valor // escribe en el pin10 valor

     // espera 1 segundo

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    23/71

     // valor recoge el número de mil isegundos

     // asigna a valor el más pequeños de los dos númerosespecificados.

    asigna a valor el mayor de los dos números 'valor' y100.

    random().

    hace que valor sea la semilla del random

    randomSeed

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    24/71

     // asigna a la variable 'valor' un numero aleatoriocomprendido entre 100-200

     // variable que almacena el valor aleatorio // define led como 10

     // no es necesario configurar nada

     // genera una semilla para aleatorio a partirde la función millis() // genera número aleatorio entre 0-255 // envía a la salida led de tipo PWM el valor // espera 0,5 seg.

     // abre el Puerto serie

     // configurando la velocidad en 9600 bps

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    25/71

     // envía el valor 'analogValue' al puerto

     // configura el puerto serie a 9600bps

     // envía valor analógico // espera 1 segundo

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    26/71

    Vuelca o envía el valor de b como un número decimal en caracteres ASCII. Equivaldríaa printInteger().

    prints the string "79".

    Vuelca o envía el valor de b como un número decimal en caracteres ASCII.

    Equivaldría a printInteger().

    prints the string "79".

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    27/71

    Vuelca o envía el valor de b como un número hexdecimal en caracteres ASCII.Equivaldría a printHex();

    prints the string "4F".

    Vuelca o envía el valor de b como un número Octal en caracteres ASCII. Equivaldría aprintOctal();

     // prints the string "117".

    Vuelca o envía el valor de b como un número binario en caracteres ASCII. Equivaldríaa printBinary();

     // prints the string "1001111".

    Vuelca o envía el valor de b como un byte. Equivaldría a printByte();

    Devuelve el caracter "O", el cual representa elcaracter ASCII del valor 79. (Ver tabla ASCII ).

     // vuelca "Hello World!" .

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    28/71

     // almacena el dato serie

    abre el puerto serie, y le asigna la velocidad de 9600bps

     // envía datos sólo si los recibe:

     // lee el byte de entrada:

     //lo vuelca a pantalla

     // almacenar el dato serie

     // abre el puerto serie,y le asigna la velocidad de 9600

    bps

     // envía datos sólo si los recibe:

     // lee el byte de entrada:

     //lo vuelca a pantalla

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    29/71

     // LED en el pin digital 13

     // configura el pin de salida

     // configura el pin 13 comosalida

     // inicia el bucle del programa

     // activa el LED // espera 1 segundo

     // desactiva el LED

     // espera 1 segundo

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    30/71

     // pin 13 asignado para el LED de salida // pin 2 asignado para el pulsador

     // Configura entradas y salidas

     // declara LED como salida // declara pulsador como entrada

     // testea si la entrada esta activa HIGH

     // enciende el LED // espera 1 segundo

     // apaga el LED

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    31/71

     // pin de salida para el MOSFET

     // pin5 como salida

     // repetir bucle 5 veces

    activa el MOSFET // espera 1/4 segundo

     // desactiva el MOSFET // espera 1/4 segundo

     // espera 1 segundo

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    32/71

     // pin PWM para el LED

     // no es necesario configurar nada

    el valor de i asciende

     // se escribe el valor de I en el PIN de salida del LED // pauses for 100ms

     // el valor de I desciendei

     // se escribe el valor de ii // pasusa durante 100ms

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    33/71

     // pin entrada para potenciómetro // pin de salida para el LED

     // declara ledPin como SALIDA

     // pone ledPin en on // detiene la ejecución un tiempo “ potPin” // pone ledPin en off

     // detiene la ejecución un tiempo potPin”

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    34/71

     // Salida analógica PWM para conectar a LEDresistencia variable conectada a la entrada analógica pin 0

     // no es necesario configurar entradas y salidas

     // incremento de valor de i

    configura el nivel brillo con el valor de iespera un tiempo

    decrementa el valor de i

    configura el nivel de bri llo con el valor de iespera un tiempo

     // Método para recoger el tiempo de retardo

    crea una variable temporal (local // lee valor analógico

     // convierte el valor leído de 0-1024 a 0-128 // devuelve el valor v

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    35/71

     // servo conectado al pin digital 2 // ángulo del servo de 0-180

     // anchura del pulso para la función servoPulse

     // configura pin 2 como salida

     // determina retardo // activa el servo

     // pausa // desactiva el servo

     // retardo de refresco

     // el servo inicia su recorrido en 10º y gira hasta 170º

     // el servo vuelve desde 170º hasta 10º

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    36/71

     

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    37/71

    dot() dash()

    ledPinpinMode ()

     

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    38/71

     

    Morse.h - Library for flashing Morse code.Created by David A. Mellis, November 2, 2007.Released into the public domain.

    * /

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    39/71

     

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    40/71

     /*Morse.cpp - Library for flashing Morse code.Created by David A. Mellis, November 2, 2007.Released into the public domain.

    * /

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    41/71

     

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    42/71

     

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    43/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    44/71

     // pin digital 10

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    45/71

     // pin en modo salida

     // asigna el valor HIGH al pin // espera medio segundo

     // asigna el valor LOW al pin // espera medio segundo

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    46/71

     /*Con el siguiente código y con sólo realizar modificaciones en los intervalos detiempo que el pin seleccionado tenga valor HIGH o LOW, a través de la función

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    47/71

    digitalWrite (), generamos la señal PWM a una determinada frecuencia desalida=261Hz* /

     // pin digital 10

     // valor que determina el tiempo que el pulso va a estar en on/off

     // pin digital en modo salida

    ); // espera el valor de PW // asigna el valor LOW al pin

     // espera el valor de PW // asigna el valor HIGH al pin

     // máximo volume es 1000 ¿?

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    48/71

     

     // decimal en ASCII // hexadecimal en ASCII // octal en ASCII

     // binario en ASCII // un Byte

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    49/71

     65 ---DEC---- (“6″ y “5″ ACIIs 54–55) 000110110–000110111

    65 ---HEX---- (“4″ Y “1″ ACIIs 52–49) 000110100–000110001

    65 ---OCT---- (“1″, “0″ y “1″ ACIIs 49–48–49) 000110001–

    000110000–000110001

    65 ---BIN---- (“0″,”1″,”0″,”0″,”0″,”0″,”0″y”1″ ACIIs 49–48–

    49–49–49–49–49–48) 000110000-…

    65 ---BYTE--- 01000001

     //activamos el pin para saber cuandoarranco

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    50/71

     // lee el valor del Pot

    activamos

     // lee el Pot y lo divide entre 4 para quedar entre 0-255 

    ;// Variable para el puerto serial // valor entrante

     // lista los puertos seriales disponibles //abre el primero de esa lista con velocidad 9600

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    51/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    52/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    53/71

     /* Lectura de una entrada analógica en el PC

    El programa lee una entrada analógica, la divide por 4para convertirla en un rango entre 0 y 255, y envía el valor al PC endiferentes formatos ASCCI.A0/PC5: potenciómetro conectado al pin analógico 1 y puerto de PC-5Created by Tom Igoe 6 Oct. 2005Updated* /

     // captura la entrada analógica, la divide por 4 para hacer el rango de 0-255

     // texto de cabecera para separar cada lectura:

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    54/71

     // obtenemos un valor codificado en ASCII (1 Byte) en formato decimal :

     //Carácter espacio // obtenemos un valor codificado en ASCII (1 Byte) en formato hexadecimal :

     // obtenemos un valor codificado en ASCII (1 Byte) en formato binario

     // obtenemos un valor codificado en ASCII (1 Byte)en formato octal:

     //caracter salto de linea y retorno de carro

     // espera 10ms para la próxima lectura

     // variable para capturar el valor del sensor analógico

     // define la velocidad de transferencia a 9600 bps (baudios)

     //fórmula de transformación

     //captura del valor de sensor analógico (0-1023)

     //volcado al puerto serie de 8-bits

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    55/71

     //caracter de retorno de carro

     //caracter de salto de línea

     // Serial Output // by BARRAGAN  

     // interruptor conectado al pin 0

     

     //  // inicia el puerto serie a 9600bps

     //si el interruptor esta en ON

     // envía 1 a Processing

     // en caso contrario envía 0 a Processing

     // espera 100ms

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    56/71

     

     // variable que recibe el dato del puerto serie // LED conectado al pin 13

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    57/71

     // pin 13 (LED)actua como SALIDA // inicia la comunicación con el puerto serie a 9600bps

     // si hay dato e el puerto lo lee

     // lee y almacena el dato en 'val'

     //su el dato recibido es ́ H´

     //activa el LED

     // en caso contrario lo desactiva

     // espera 100ms para una nueva lectura

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    58/71

    “ toma y dame”

     // valores de los sensores analógicos

     // valor entrante de Processing

    sólo si algo ha llegado // lo lee

      // hace la lectura de los sensores en pines 3,4y5 (análogos)

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    59/71

      // y los envía

     // arreglo para recibir los tres datos // contador // posición de un objeto 3D

     // control de verdad

      // puertos serie disponibles

     // Configuración del puerto // Envía el primer dato para iniciar el toma y dame

     //si no hay datos envía uno

     // esta función corre cada vez que llega un dato serial

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    60/71

     // de ahora en adelante el dato de envío se dará por el toma y

    dame

     // Lee el dato y lo añade al arreglo en su última casil la

    Si ya hay tres datos en el arreglo

     // y envía para pedir más

     // y todo empieza de nuevo

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    61/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    62/71

     //captura del valor de sensor analógico (0-1023) //volcado al puerto serie 8-bits

    ;// fórmula de transformación

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    63/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    64/71

     

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    65/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    66/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    67/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    68/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    69/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    70/71

  • 8/15/2019 Manual Programacion Arduino - Manual+Programacion+Arduino

    71/71