SlideShare una empresa de Scribd logo
Computación Física:
Introducción al Arduino
   Programando Arduino /
        Processing
Programación
• Se programa en un dialecto de C
• Se requiere (forzosamente) una función
  setup y una función loop
• Setup es la preparación
• Loop es la ejecución
Referencia - Estructura
•   Control Structures   •   Further Syntax
•   if                   •   ; (semicolon)
•   if...else            •   {} (curly braces)
•   for                  •   // (single line comment)
•   switch case          •   /* */ (multi-line comment)
•   while
•   do... while
•   break
•   continue
•   return
Referencia - Estructura
• Arithmetic           • Comparison
  Operators              Operators
• plus (addition)      • == (equal to)
• - (subtraction)      • != (not equal to)
• * (multiplication)   • < (less than)
• / (division)         • > (greater than)
• % (modulo)           • <= (less than or equal
                         to)
                       • >= (greater than or
                         equal to)
Referencia - Estructura
•   Boolean Operators
•   && (and)
•   || (or)
•   ! (not)
•   Compound Operators
•   ++ (increment)
•   -- (decrement)
•   += (compound addition)
•   -= (compound subtraction)
•   *= (compound multiplication)
•   /= (compound division)
Referencia - Variables
• Constants                         • Data Types
• Constants are particular values   • Variables can have various
  with specific meanings.             types, which are described
• HIGH | LOW                          below.
• INPUT | OUTPUT                    • boolean
• true | false                      • char
• Integer Constants                 • byte
                                    • int
                                    • unsigned int
                                    • long
                                    • unsigned long
                                    • float
                                    • double
                                    • string
                                    • array
Referencia - Funciones
•   Digital I/O                 • Advanced I/O
•   pinMode(pin, mode)          • shiftOut(dataPin,
•   digitalWrite(pin, value)      clockPin, bitOrder, value)
•   int digitalRead(pin)        • unsigned long
•   Analog I/O                    pulseIn(pin, value)
•   int analogRead(pin)         • Time
•   analogWrite(pin, value) -   • unsigned long millis()
    PWM                         • delay(ms)
                                • delayMicroseconds(us)
Referencia - Funciones
•   Math                    •   Serial Communication
•   min(x, y)               •   Serial.begin(speed)
•   max(x, y)               •   int Serial.available()
•   abs(x)                  •   int Serial.read()
•   constrain(x, a, b)      •   Serial.flush()
•   Random Numbers          •   Serial.print(data)
•   randomSeed(seed)        •   Serial.println(data)
•   long random(max)
•   long random(min, max)
Librerías
• ARDUINO                        • WIRING
• SoftwareSerial - for serial    • Matrix - Basic LED Matrix
  communication on any digital     display manipulation library
  pins                           • Sprite - Basic image sprite
• Stepper - for controlling        manipulation library for use in
  stepper motors                   animations with an LED matrix
• EEPROM - reading and writing   • Wire - Two Wire Interface
  to "permanent" storage           (TWI/I2C) for sending and
                                   receiving data over a net of
                                   devices or sensors. On the
                                   Arduino, SDA is on analog
                                   input pin 4, and SCL on analog
                                   input pin 5.
Librerias no oficiales
•   Simple Message System - send messages between Arduino and the
    computer
•   OneWire - control devices (from Dallas Semiconductor) that use the One
    Wire protocol.
•   LCD - control LCDs (using 8 data lines)
•   LCD 4 Bit - control LCDs (using 4 data lines)
•   LedControl - for controlling LED matrices or seven-segment displays with a
    MAX7221 or MAX7219.
•   TextString - handle strings
•   Metro - help you time actions at regular intervals
•   Servo - provides software support for Servo motors on any pins.
•   Servotimer1 - provides hardware support for Servo motors on pins 9 and 10
•   X10 - Sending X10 signals over AC power lines
•   LedControl - an alternative to the Matrix library for driving multiple LEDs
    with Maxim chips.
Ejemplos que veremos
•   Blink, hacer parpadear un LED
•   Ejercicios con LEDs
•   AnalogRead, leer una señal del ADC
•   AnalogWrite, escribir PWM
•   Ejercicios con Processing
•   Sonido piezoeléctrico
•   Display LCD
•   Motor CD
Blink
• Ya hay un LED SMD conectado al pin 13
• También se puede conectar un LED y
  observarlos simultáneamente
Blink - Código
int ledPin = 13; // LED connected to digital pin 13

void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}

void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); //waits for a second

}
Ejercicio
• Hacerlo parpadear con un tiempo de
  encendido de 500 ms y de apagado de
  2000 ms
Ejercicio 2
• Conectar 2 LEDs y hacer que parpadeen
  simultáneamente
• OJO: utilizando puertos diferentes
• Con esos 2 LEDs hacer que parpadeen
  alternadamente (ambos tiempos de 500
  ms)
• Hacer lo mismo con 3 LEDs (tiempo de
  ms)
AnalogRead
• Conectamos un potenciómetro como
  divisor de voltaje
• Leemos ese voltaje
• Un LED parpadea proporcionalmente al
  voltaje leído
AnalogRead - Código
int potPin = 2; // select the input pin for the potentiometer
Int ledPin = 13; // select the pin for the LED
int val = 0; // variable to store the value coming from the sensor

void setup()
{
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
}

void loop()
{
val = analogRead(potPin); // read the value from the sensor
digitalWrite(ledPin, HIGH); // turn the ledPin on
delay(val); // stop the program for some time
digitalWrite(ledPin, LOW); // turn the ledPin off
delay(val); // stop the program for some time

}
Ejercicios
• Invertir el sentido del potenciómetro sin
  cambiar las conexiones eléctricas
• Con Processing graficar el valor leído del
  potenciómetro
Para graficar con Processing
• http://www.arduino.cc/
  en/Tutorial/Graph
• Leeremos el puerto
                           void setup()
  análogo 0                {
                           Serial.begin(9600);
• Primero programar        }
  Arduino con el           void loop()
                           {
  siguiente código (sí,    Serial.println(analogRead(0));
  es realmente             delay(20);
  pequeño):                }
Para graficar con Processing
• Ahora cerrar la aplicación de Arduino y
  abrir Processing
• Volver a checar en Device Manager qué
  puerto tenemos asignado al COM USB
• Pegar el código de la página poniéndo
  atención en la sección que aparece en
  negrita en la siguiente diapositiva:
import processing.serial.*;
Serial port; String buff = "";
int NEWLINE = 10; // Store the last 64 values received so
   we can graph them.
int[] values = new int[64];
void setup() { size(512, 256);

println("Available serial ports:");
println(Serial.list());

port = new Serial(this, Serial.list()[0], 9600);
// If you know the name of the port used by the Arduino
   board, you
// can specify it directly like this.
//port = new Serial(this, "COM1", 9600); }

void draw() { background(53); stroke(255);
for (int i = 0; i < 63; i++)
line(i * 8, 255 - values[i], (i + 1) * 8, 255 - values[i +
   1]);
Debemos obtener esto:
Ejercicio
• Lograr escribir en la misma ventana de la
  gráfica el valor de la altura de la línea (el
  rango es de 0 a 255)
• Se sugiere promediar algunos valores
  para que el valor no oscile
• Se sugiere leer y entender el ejemplo
  examples > basics > typography > words
El resultado debe ser así:
Trabajo Independiente
• Investigar e implementar demostraciones
  de las siguientes técnicas:
• Switch debouncing
• Habilitar resistencia de Pull-Up para
  entradas digitales
Ejercicios Sugeridos
• Programar y mostrar un contador binario
  de 4 bits
• Programar secuencias de LED’s
  (incrementos lineales, El Auto Increíble,
  etc.)
• Reducir y aumentar el brillo de un LED
  con PWM
• Programar un vúmetro con una entrada
  análoga y 8 LED’s
Ejercicios Sugeridos
• Cargar la librería LCD para enviar
  mensajes a una pantalla de cristal líquido
• Leer el valor de temperatura de un sensor
  LM35
• Escribir ese valor en el display LCD
Ejercicios Sugeridos
• Utilizando Processing lograr variar la
  intensidad de un LED moviendo el mouse

Más contenido relacionado

La actualidad más candente

62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-uno
Angelik Hdez
 
Curso de introducción a arduino
Curso de introducción a arduinoCurso de introducción a arduino
Curso de introducción a arduino
3D Print Barcelona
 
Presentación taller arduino
Presentación taller arduinoPresentación taller arduino
Presentación taller arduino
gruposirp
 

La actualidad más candente (20)

Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015
 
Seminario de Arduino
Seminario de ArduinoSeminario de Arduino
Seminario de Arduino
 
Arduino aplicado a la maqueta digital
Arduino aplicado a la maqueta digitalArduino aplicado a la maqueta digital
Arduino aplicado a la maqueta digital
 
Curso intensivo de arduino createc3 d marzo 2014
Curso intensivo de arduino createc3 d marzo 2014Curso intensivo de arduino createc3 d marzo 2014
Curso intensivo de arduino createc3 d marzo 2014
 
ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino ITT 18 Practicas Basicas de Arduino
ITT 18 Practicas Basicas de Arduino
 
Manual programacion arduino
Manual programacion arduinoManual programacion arduino
Manual programacion arduino
 
Arduino - Ejercicios Básicos
Arduino - Ejercicios BásicosArduino - Ejercicios Básicos
Arduino - Ejercicios Básicos
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-uno
 
Introducción a arduino
Introducción a arduinoIntroducción a arduino
Introducción a arduino
 
Arduino - Cuarta sesión
Arduino - Cuarta sesiónArduino - Cuarta sesión
Arduino - Cuarta sesión
 
Workshop iniciacion arduino d2
Workshop iniciacion arduino d2Workshop iniciacion arduino d2
Workshop iniciacion arduino d2
 
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
Arduino Historia, IDE, lenguaje de programacion y proyectos por Msc. Yamil La...
 
Seminario de arduino DeustoTech
Seminario de arduino DeustoTechSeminario de arduino DeustoTech
Seminario de arduino DeustoTech
 
Curso de introducción a arduino
Curso de introducción a arduinoCurso de introducción a arduino
Curso de introducción a arduino
 
Arduino practicas
Arduino practicasArduino practicas
Arduino practicas
 
S4 a + arduino
S4 a + arduinoS4 a + arduino
S4 a + arduino
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a Arduino
 
Presentación taller arduino
Presentación taller arduinoPresentación taller arduino
Presentación taller arduino
 
Proyecto Arduino y Proteus
Proyecto Arduino y ProteusProyecto Arduino y Proteus
Proyecto Arduino y Proteus
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
 

Similar a Tutorial arduino 03 programación

03 Arduino - Analogo (2).pdf
03 Arduino - Analogo (2).pdf03 Arduino - Analogo (2).pdf
03 Arduino - Analogo (2).pdf
AaronContreras28
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
Oscar Pastrana
 

Similar a Tutorial arduino 03 programación (20)

Arduino
ArduinoArduino
Arduino
 
P4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscularP4: Kiwibot Basic Shield: Interruptor crepuscular
P4: Kiwibot Basic Shield: Interruptor crepuscular
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
arduino
arduinoarduino
arduino
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1
 
Introducción a la Programación de Arduino.pptx
Introducción a la Programación de Arduino.pptxIntroducción a la Programación de Arduino.pptx
Introducción a la Programación de Arduino.pptx
 
Introducción arduino
Introducción arduinoIntroducción arduino
Introducción arduino
 
presentación arduino, ARDUINO Y SUS PARTES
presentación arduino, ARDUINO Y SUS PARTESpresentación arduino, ARDUINO Y SUS PARTES
presentación arduino, ARDUINO Y SUS PARTES
 
Memoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggMemoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCggggggggggg
 
Práctica04.Programando Arduino
Práctica04.Programando ArduinoPráctica04.Programando Arduino
Práctica04.Programando Arduino
 
Fundamentos de programacion robotica con Arduino
Fundamentos de programacion robotica con ArduinoFundamentos de programacion robotica con Arduino
Fundamentos de programacion robotica con Arduino
 
03 Arduino - Analogo (2).pdf
03 Arduino - Analogo (2).pdf03 Arduino - Analogo (2).pdf
03 Arduino - Analogo (2).pdf
 
Proceso de señal
Proceso de señalProceso de señal
Proceso de señal
 
Clase de Introducción a Arduino y domotica
Clase de Introducción a Arduino y domoticaClase de Introducción a Arduino y domotica
Clase de Introducción a Arduino y domotica
 
Introduccion vhdl
Introduccion vhdlIntroduccion vhdl
Introduccion vhdl
 
Introducción a plataformas de prototipado: Arduino (rev. 2)
Introducción a plataformas de prototipado: Arduino (rev. 2)Introducción a plataformas de prototipado: Arduino (rev. 2)
Introducción a plataformas de prototipado: Arduino (rev. 2)
 
Introducción a Arduino r2
Introducción a Arduino r2Introducción a Arduino r2
Introducción a Arduino r2
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
 
2. algoritmos
2. algoritmos2. algoritmos
2. algoritmos
 
Laboratorio # 1 introducción a arduino
Laboratorio # 1   introducción a arduinoLaboratorio # 1   introducción a arduino
Laboratorio # 1 introducción a arduino
 

Más de Rubén Loredo

Transmisión de datos de temperatura por medio de red lan
Transmisión de datos de temperatura por medio de red lanTransmisión de datos de temperatura por medio de red lan
Transmisión de datos de temperatura por medio de red lan
Rubén Loredo
 
Comunicación RS-232
Comunicación RS-232Comunicación RS-232
Comunicación RS-232
Rubén Loredo
 
Modulacion de ancho de pulso con Raspberry pi
Modulacion de ancho de pulso con Raspberry piModulacion de ancho de pulso con Raspberry pi
Modulacion de ancho de pulso con Raspberry pi
Rubén Loredo
 
Comenzando a programar
Comenzando a programarComenzando a programar
Comenzando a programar
Rubén Loredo
 
Sistemas De Medici%80%A0%A6%F3n Coordenado
Sistemas De Medici%80%A0%A6%F3n CoordenadoSistemas De Medici%80%A0%A6%F3n Coordenado
Sistemas De Medici%80%A0%A6%F3n Coordenado
Rubén Loredo
 
Interfazamiento De Sistemas Digital Analogo
Interfazamiento De Sistemas Digital AnalogoInterfazamiento De Sistemas Digital Analogo
Interfazamiento De Sistemas Digital Analogo
Rubén Loredo
 

Más de Rubén Loredo (18)

Movimiento uniformemente acelerado
Movimiento uniformemente aceleradoMovimiento uniformemente acelerado
Movimiento uniformemente acelerado
 
Rubrica de Reporte de practica de la materia de Física
Rubrica de Reporte de practica de la materia de FísicaRubrica de Reporte de practica de la materia de Física
Rubrica de Reporte de practica de la materia de Física
 
Control de motores de cd con modulo l298N y Raspberry Pi3
Control de motores de cd con modulo l298N y Raspberry Pi3Control de motores de cd con modulo l298N y Raspberry Pi3
Control de motores de cd con modulo l298N y Raspberry Pi3
 
Transmisión de datos de temperatura por medio de red lan
Transmisión de datos de temperatura por medio de red lanTransmisión de datos de temperatura por medio de red lan
Transmisión de datos de temperatura por medio de red lan
 
Comunicación RS-232
Comunicación RS-232Comunicación RS-232
Comunicación RS-232
 
Modulacion de ancho de pulso con Raspberry pi
Modulacion de ancho de pulso con Raspberry piModulacion de ancho de pulso con Raspberry pi
Modulacion de ancho de pulso con Raspberry pi
 
Comenzando a programar
Comenzando a programarComenzando a programar
Comenzando a programar
 
Lab Windows Intro Actualizado
Lab Windows Intro ActualizadoLab Windows Intro Actualizado
Lab Windows Intro Actualizado
 
Programacion Melfa Iv
Programacion Melfa IvProgramacion Melfa Iv
Programacion Melfa Iv
 
Electrónica II, Tyristores
Electrónica II, TyristoresElectrónica II, Tyristores
Electrónica II, Tyristores
 
Sistemas De Medici%80%A0%A6%F3n Coordenado
Sistemas De Medici%80%A0%A6%F3n CoordenadoSistemas De Medici%80%A0%A6%F3n Coordenado
Sistemas De Medici%80%A0%A6%F3n Coordenado
 
Historia De La Maquina Herramienta
Historia De La Maquina HerramientaHistoria De La Maquina Herramienta
Historia De La Maquina Herramienta
 
Interfazamiento De Sistemas Digital Analogo
Interfazamiento De Sistemas Digital AnalogoInterfazamiento De Sistemas Digital Analogo
Interfazamiento De Sistemas Digital Analogo
 
Interface Digial a
Interface Digial aInterface Digial a
Interface Digial a
 
Semáforo Microcontrolado
Semáforo MicrocontroladoSemáforo Microcontrolado
Semáforo Microcontrolado
 
Sistema minimo de microcontrolador AT89S8252
Sistema minimo de microcontrolador AT89S8252Sistema minimo de microcontrolador AT89S8252
Sistema minimo de microcontrolador AT89S8252
 
Curso de microcontrolador MCS51
Curso de microcontrolador MCS51Curso de microcontrolador MCS51
Curso de microcontrolador MCS51
 
Unidad 1 El Amplificador Operacional X
Unidad 1 El Amplificador Operacional XUnidad 1 El Amplificador Operacional X
Unidad 1 El Amplificador Operacional X
 

Último

proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 

Último (20)

Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 

Tutorial arduino 03 programación

  • 1. Computación Física: Introducción al Arduino Programando Arduino / Processing
  • 2. Programación • Se programa en un dialecto de C • Se requiere (forzosamente) una función setup y una función loop • Setup es la preparación • Loop es la ejecución
  • 3. Referencia - Estructura • Control Structures • Further Syntax • if • ; (semicolon) • if...else • {} (curly braces) • for • // (single line comment) • switch case • /* */ (multi-line comment) • while • do... while • break • continue • return
  • 4. Referencia - Estructura • Arithmetic • Comparison Operators Operators • plus (addition) • == (equal to) • - (subtraction) • != (not equal to) • * (multiplication) • < (less than) • / (division) • > (greater than) • % (modulo) • <= (less than or equal to) • >= (greater than or equal to)
  • 5. Referencia - Estructura • Boolean Operators • && (and) • || (or) • ! (not) • Compound Operators • ++ (increment) • -- (decrement) • += (compound addition) • -= (compound subtraction) • *= (compound multiplication) • /= (compound division)
  • 6. Referencia - Variables • Constants • Data Types • Constants are particular values • Variables can have various with specific meanings. types, which are described • HIGH | LOW below. • INPUT | OUTPUT • boolean • true | false • char • Integer Constants • byte • int • unsigned int • long • unsigned long • float • double • string • array
  • 7. Referencia - Funciones • Digital I/O • Advanced I/O • pinMode(pin, mode) • shiftOut(dataPin, • digitalWrite(pin, value) clockPin, bitOrder, value) • int digitalRead(pin) • unsigned long • Analog I/O pulseIn(pin, value) • int analogRead(pin) • Time • analogWrite(pin, value) - • unsigned long millis() PWM • delay(ms) • delayMicroseconds(us)
  • 8. Referencia - Funciones • Math • Serial Communication • min(x, y) • Serial.begin(speed) • max(x, y) • int Serial.available() • abs(x) • int Serial.read() • constrain(x, a, b) • Serial.flush() • Random Numbers • Serial.print(data) • randomSeed(seed) • Serial.println(data) • long random(max) • long random(min, max)
  • 9. Librerías • ARDUINO • WIRING • SoftwareSerial - for serial • Matrix - Basic LED Matrix communication on any digital display manipulation library pins • Sprite - Basic image sprite • Stepper - for controlling manipulation library for use in stepper motors animations with an LED matrix • EEPROM - reading and writing • Wire - Two Wire Interface to "permanent" storage (TWI/I2C) for sending and receiving data over a net of devices or sensors. On the Arduino, SDA is on analog input pin 4, and SCL on analog input pin 5.
  • 10. Librerias no oficiales • Simple Message System - send messages between Arduino and the computer • OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol. • LCD - control LCDs (using 8 data lines) • LCD 4 Bit - control LCDs (using 4 data lines) • LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219. • TextString - handle strings • Metro - help you time actions at regular intervals • Servo - provides software support for Servo motors on any pins. • Servotimer1 - provides hardware support for Servo motors on pins 9 and 10 • X10 - Sending X10 signals over AC power lines • LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
  • 11. Ejemplos que veremos • Blink, hacer parpadear un LED • Ejercicios con LEDs • AnalogRead, leer una señal del ADC • AnalogWrite, escribir PWM • Ejercicios con Processing • Sonido piezoeléctrico • Display LCD • Motor CD
  • 12. Blink • Ya hay un LED SMD conectado al pin 13 • También se puede conectar un LED y observarlos simultáneamente
  • 13. Blink - Código int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); //waits for a second }
  • 14. Ejercicio • Hacerlo parpadear con un tiempo de encendido de 500 ms y de apagado de 2000 ms
  • 15. Ejercicio 2 • Conectar 2 LEDs y hacer que parpadeen simultáneamente • OJO: utilizando puertos diferentes • Con esos 2 LEDs hacer que parpadeen alternadamente (ambos tiempos de 500 ms) • Hacer lo mismo con 3 LEDs (tiempo de ms)
  • 16. AnalogRead • Conectamos un potenciómetro como divisor de voltaje • Leemos ese voltaje • Un LED parpadea proporcionalmente al voltaje leído
  • 17. AnalogRead - Código int potPin = 2; // select the input pin for the potentiometer Int ledPin = 13; // select the pin for the LED int val = 0; // variable to store the value coming from the sensor void setup() { pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT } void loop() { val = analogRead(potPin); // read the value from the sensor digitalWrite(ledPin, HIGH); // turn the ledPin on delay(val); // stop the program for some time digitalWrite(ledPin, LOW); // turn the ledPin off delay(val); // stop the program for some time }
  • 18. Ejercicios • Invertir el sentido del potenciómetro sin cambiar las conexiones eléctricas • Con Processing graficar el valor leído del potenciómetro
  • 19. Para graficar con Processing • http://www.arduino.cc/ en/Tutorial/Graph • Leeremos el puerto void setup() análogo 0 { Serial.begin(9600); • Primero programar } Arduino con el void loop() { siguiente código (sí, Serial.println(analogRead(0)); es realmente delay(20); pequeño): }
  • 20. Para graficar con Processing • Ahora cerrar la aplicación de Arduino y abrir Processing • Volver a checar en Device Manager qué puerto tenemos asignado al COM USB • Pegar el código de la página poniéndo atención en la sección que aparece en negrita en la siguiente diapositiva:
  • 21. import processing.serial.*; Serial port; String buff = ""; int NEWLINE = 10; // Store the last 64 values received so we can graph them. int[] values = new int[64]; void setup() { size(512, 256); println("Available serial ports:"); println(Serial.list()); port = new Serial(this, Serial.list()[0], 9600); // If you know the name of the port used by the Arduino board, you // can specify it directly like this. //port = new Serial(this, "COM1", 9600); } void draw() { background(53); stroke(255); for (int i = 0; i < 63; i++) line(i * 8, 255 - values[i], (i + 1) * 8, 255 - values[i + 1]);
  • 23. Ejercicio • Lograr escribir en la misma ventana de la gráfica el valor de la altura de la línea (el rango es de 0 a 255) • Se sugiere promediar algunos valores para que el valor no oscile • Se sugiere leer y entender el ejemplo examples > basics > typography > words
  • 24. El resultado debe ser así:
  • 25. Trabajo Independiente • Investigar e implementar demostraciones de las siguientes técnicas: • Switch debouncing • Habilitar resistencia de Pull-Up para entradas digitales
  • 26. Ejercicios Sugeridos • Programar y mostrar un contador binario de 4 bits • Programar secuencias de LED’s (incrementos lineales, El Auto Increíble, etc.) • Reducir y aumentar el brillo de un LED con PWM • Programar un vúmetro con una entrada análoga y 8 LED’s
  • 27. Ejercicios Sugeridos • Cargar la librería LCD para enviar mensajes a una pantalla de cristal líquido • Leer el valor de temperatura de un sensor LM35 • Escribir ese valor en el display LCD
  • 28. Ejercicios Sugeridos • Utilizando Processing lograr variar la intensidad de un LED moviendo el mouse