SlideShare a Scribd company logo
1 of 23
Download to read offline
Sistemas Electrónicos Programables
Facultad de Ingeniería, Universidad de Deusto
Práctica 04: Programando Arduino
Sistemas Electrónicos Programables
Entradas / Salidas Digitales
 Las líneas de ES digitales están numerados desde el 0
hasta n (dependiendo del modelo de Arduino utilizado).
 No pueden ser entrada y salida a la vez, sólo una de las dos
cosas pero pueden alternarse en ejecución.
 Algunas pueden tener multiplexadas funcionalidades
adicionales.
 ‘~’ significa que puede funcionar como salida de PWM.
 ‘TX’ y ‘RX’ son un puerto serie (que se utiliza para la grabación del
microcontrolador)
Las líneas de Entrada / Salida permiten escribir
o leer valores digitales (‘0’ o ‘1’) en los pines del
microcontrolador.
Sistemas Electrónicos Programables
Entradas / Salidas Digitales (continuación…)
 Para indicar si un pin es de entrada o de salida:
 En un pin configurado como salida; para establecer
un estado en una salida:
 En un pin configurado como entrada; para leer el
estado de una entrada:
void pinMode(pin, [INPUT | OUTPUT])
void digitalWrite(pin, [LOW | HIGH])
int digitalRead(pin)
Sistemas Electrónicos Programables
Entradas / Salidas Digitales (continuación…)
 Ejercicio 1:
 Encender durante un segundo y apagar durante otro segundo un
diodo LED colocado en el pin 6.
#define LED 6
// the setup routine runs once when you press reset:
void setup() {
pinMode(LED, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(LED, HIGH); // turn the LED on
delay(1000); // wait for a second
digitalWrite(LED, LOW); // turn the LED off
delay(1000); // wait for a second
}
Sistemas Electrónicos Programables
Entradas / Salidas Digitales (continuación…)
 Ejercicio 2:
 Encender un diodo LED colocado en el pin 6 mientras se active un
pulsador colocado en el pin 2.
#define LED 6
#define BUTTON 2
void setup() {
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
if (digitalRead(BUTTON) == HIGH)
digitalWrite(LED, HIGH); // turn the LED on
else
digitalWrite(LED, LOW); // turn the LED off
}
Sistemas Electrónicos Programables
Entradas / Salidas Digitales (continuación…)
 En aquellos sensores que necesitan una resistencia
de Pull-Up, con Arduino se puede configurar por
software una resistencia interna que tiene el
microcontrolador.
void pinMode(pin, INPUT_PULLUP)
Si lo que se requiere es una resistencia Pull-Down, ésta deberá ser
externa ya que el microcontrolador sólo proporciona resistencias Pull-Up
Sistemas Electrónicos Programables
Efecto Rebote
 Cuando se trabaja con conmutadores o pulsadores
electromecánicos, es inevitable que se produzca un
pequeño arqueo eléctrico al actuar sobre ellos; lo
que se conoce como rebote.
 El periodo transitorio de un rebote depende de diversos
factores como son las calidad de los componentes y la
rapidez de su accionamiento.
 Por defecto, se toman 20mS como el tiempo máximo de
un rebote.
Sistemas Electrónicos Programables
Efecto Rebote (continuación…)
 ¿Cómo podemos solucionar este problema?
V
t
Se pulsa el botón Se suelta el botón
+5V
Sistemas Electrónicos Programables
Comunicación Serie
 En Arduino la comunicación por defecto es Full-Duplex, 8
bits de datos, sin paridad y 1 bit de stop.
 La velocidad en baudios se selecciona al inicializar el puerto
serie.
 Todos los modelos de Arduino utilizan el primer puerto
serie para la grabación del microcontrolador por medio
del bootloader.
La Comunicación Serie permite a un sistema
embebido comunicarse con otro sistema
embebido, con algunos sensores o actuadores,
módulos de comunicación o con un PC de forma
alámbrica.
Sistemas Electrónicos Programables
Comunicación Serie (continuación…)
 El puerto serie en Arduino es tratado como un objeto
estático llamado Serial.
 Los que tienen más de un puerto se llamarán Serial1,
Serial2…
 Los pines para el puerto serie son fijos y hay que
buscarlos en las especificaciones.
 Suelen estar serigrafiados en las placas como RX y TX.
 Los que tienen más de un puerto serán RX1, TX1; RX2, TX2…
 En la recepción, los datos recibidos se guardan en
un buffer y se leen de uno en uno.
 Una vez leído un dato, este se elimina del buffer.
Sistemas Electrónicos Programables
Comunicación Serie (continuación…)
 Para inicializar un puerto serie:
 Para enviar datos por puerto serie:
 Para recibir datos por puerto serie:
 Consultar el número de datos recibidos y que no
hayan sido leídos aún:
Serial.begin(baudios)
Serial.print(datos)
Serial.println(datos)
Serial.write(valor)
byte Serial.read()
Devuelve ‘0xFF’ si no se
ha recibido nada
int Serial.available()
Sistemas Electrónicos Programables
Comunicación Serie (continuación…)
 Ejercicio 3:
 Enviar por el puerto serie un ‘1’ cuando se active un pulsador
situado en el pin 2.
 Ejercicio 4:
 Encender un diodo LED situado en el pin 8 cuando se reciba por
puerto serie el carácter ‘H’ y apagarlo cuando se reciba ‘L’.
Sistemas Electrónicos Programables
Entradas Analógicas
 Las líneas de entrada analógica están numerados
desde el A0 hasta An (dependiendo del modelo de
Arduino utilizado).
 Todas ellas pueden ser utilizadas como entradas/salidas
digitales.
 Algunas pueden tener multiplexadas funcionalidades
adicionales.
Las líneas de Entrada Analógica permiten leer
tensiones analógicas y convertirlas a un valor
entero interpretable por el programador.
Sistemas Electrónicos Programables
Entradas Analógicas (continuación…)
 Las entradas analógica no requieren ninguna
inicialización ya que siempre van a ser de entrada.
 Para leer la tensión analógica de una entrada
analógica:
int analogRead(pin)
El valor leído se será 0 con 0V en la entrada y 1023 con
5V en la entrada; el resto, valores proporcionales.
Sistemas Electrónicos Programables
Entradas Analógicas (continuación…)
 Ejercicio 5:
 Leer el valor del potenciómetro conectado al pin A1 y enviar por
puerto serie dicho valor en voltios.
Sistemas Electrónicos Programables
Salida PWM
 Arduino trata esta técnica como si se trabajara con
una salida analógica.
 ¿Qué aplicaciones tiene?
La Modulación en Anchura de Pulsos de una
señal es una técnica que modifica el ciclo de
trabajo de una señal periódica; para transmitir
información o para controlar la energía entregada
V
t
V
tSeñal 1 Señal 2
Sistemas Electrónicos Programables
Salida PWM (continuación…)
 En un pin configurado como salida; para general una
señal PWM en la salida:
void analogWrite(pin, value)
La frecuencia de la señal PWM será aproximadamente de
490Hz; y el ciclo de trabajo estará entre 0 (nivel bajo todo el
periodo) y 255 (nivel alto todo el periodo).
Sistemas Electrónicos Programables
Salida PWM (continuación…)
 Ejercicio 6:
 Leer el valor analógico proporcionado por el potenciómetro
conectado en el pin A1 e iluminar el diodo LED conectado en el
pin 6 de forma proporcional.
Sistemas Electrónicos Programables
Por medio de estas Funciones de Tiempo se
pueden realizar esperas bloqueantes o es
posible medir el tiempo en milisegundos o
incluso en microsegundos
Funciones de Tiempo
 Una espera bloqueante significa que durante ese
tiempo no se tiene ningún control sobre los
periféricos.
 ¿Qué problemas tiene esto?
Sistemas Electrónicos Programables
Funciones de Tiempo (continuación…)
 Espera en milisegundos:
 Espera en microsegundos:
 Tiempo transcurrido desde que se ha encendido el
microcontrolador en milisegundos:
 Tiempo transcurrido desde que se ha encendido el
microcontrolador en milisegundos:
unsigned long millis()
unsigned long micros()
void delay(milisegundos)
void delayMicroseconds(microsegundos)
Sistemas Electrónicos Programables
Funciones de Tiempo (continuación…)
 Ejercicio 7:
 Programar un reloj en tiempo real con una precisión de décimas
de segundo. Visualizar en una terminal serie el reloj con el
siguiente formato: 00:00.0 (minutos:segundos.decimas)
[implementarlo de dos formas diferentes: haciendo esperas y
controlando el tiempo transcurrido].
Sistemas Electrónicos Programables
Librería SoftwareSerial
 El Arduino uno soporta 1 puerto serie hardware y el
Mega hasta 4 puertos serie hardware.
 Limitaciones:
 Si se crea mas de un componente SoftwareSerial, sólo
uno de ellos puede estar recibiendo datos.
 Se puede perder información.
El hardware de Arduino soporta una única
comunicación serie; por medio de la librería
SoftwareSerial se podrán implementar nuevos
puertos de comunicación.
Esta presentación está sujeta a la licencia de Reconocimiento
de Creative Commons mediante la cual se permite la copia, la
distribución, la comunicación pública y la generación de obras
derivadas sin ninguna limitación siempre que se cite al autor y
se mantenga el aviso de la licencia.
© 2014, Jonathan Ruiz de Garibay
Algunos derechos reservados

More Related Content

What's hot

Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2Roberto Santana Valdés
 
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduinoProyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduinoUTEQ
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-unoAngelik Hdez
 
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328PMultiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328PFernando Marcos Marcos
 
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...Fernando Marcos Marcos
 
Control de proyectos app arduino2
Control de proyectos app arduino2Control de proyectos app arduino2
Control de proyectos app arduino2toni
 
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATORGENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATORFernando Marcos Marcos
 
Programación arduino
Programación arduinoProgramación arduino
Programación arduinotoni
 
Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Jose Antonio Vacas
 
Componentes auxiliares
Componentes auxiliaresComponentes auxiliares
Componentes auxiliareswandagr
 
Programación arduino II
Programación arduino IIProgramación arduino II
Programación arduino IItoni
 

What's hot (19)

Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2
 
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduinoProyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-uno
 
USBee_datasheet
USBee_datasheetUSBee_datasheet
USBee_datasheet
 
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328PMultiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
 
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
 
Presentacion
PresentacionPresentacion
Presentacion
 
Ampliación arduino
Ampliación arduinoAmpliación arduino
Ampliación arduino
 
Control de proyectos app arduino2
Control de proyectos app arduino2Control de proyectos app arduino2
Control de proyectos app arduino2
 
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATORGENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
 
Programación arduino
Programación arduinoProgramación arduino
Programación arduino
 
Seminari
SeminariSeminari
Seminari
 
Comunicación I2C y SPI
Comunicación I2C y SPIComunicación I2C y SPI
Comunicación I2C y SPI
 
4.6 sensores
4.6   sensores4.6   sensores
4.6 sensores
 
Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015
 
Guia 2
Guia 2Guia 2
Guia 2
 
Componentes auxiliares
Componentes auxiliaresComponentes auxiliares
Componentes auxiliares
 
Guia 4
Guia 4Guia 4
Guia 4
 
Programación arduino II
Programación arduino IIProgramación arduino II
Programación arduino II
 

Viewers also liked

Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentJonathan Ruiz de Garibay
 
Arduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothArduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothJorge Zaccaro
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectosJonathan Ruiz de Garibay
 
Android + Bluetooth + Arduino
Android + Bluetooth + ArduinoAndroid + Bluetooth + Arduino
Android + Bluetooth + ArduinoJonathan Alvarado
 
Communication entre android et arduino via bluetooth
Communication entre android et arduino via bluetoothCommunication entre android et arduino via bluetooth
Communication entre android et arduino via bluetoothBedis ElAchèche
 

Viewers also liked (20)

Ccpx
CcpxCcpx
Ccpx
 
Sd6
Sd6Sd6
Sd6
 
Práctica09.Librerías
Práctica09.LibreríasPráctica09.Librerías
Práctica09.Librerías
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
 
01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral
 
Introduccion a la Programación
Introduccion a la ProgramaciónIntroduccion a la Programación
Introduccion a la Programación
 
Arduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothArduino sin cables: usando Bluetooth
Arduino sin cables: usando Bluetooth
 
P01.Desarrollo de aplicaciones con mplab
P01.Desarrollo de aplicaciones con mplabP01.Desarrollo de aplicaciones con mplab
P01.Desarrollo de aplicaciones con mplab
 
02.El Soporte Visual
02.El Soporte Visual02.El Soporte Visual
02.El Soporte Visual
 
02d.Circuito oscilador
02d.Circuito oscilador02d.Circuito oscilador
02d.Circuito oscilador
 
Práctica05.Interrupciones en Arduino
Práctica05.Interrupciones en ArduinoPráctica05.Interrupciones en Arduino
Práctica05.Interrupciones en Arduino
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectos
 
Android + Bluetooth + Arduino
Android + Bluetooth + ArduinoAndroid + Bluetooth + Arduino
Android + Bluetooth + Arduino
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
 
Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipo
 
Introducción a machine learning
Introducción a machine learningIntroducción a machine learning
Introducción a machine learning
 
Práctica06.Controlando Motores
Práctica06.Controlando MotoresPráctica06.Controlando Motores
Práctica06.Controlando Motores
 
Configuraciones con transistores BJT
Configuraciones con transistores BJTConfiguraciones con transistores BJT
Configuraciones con transistores BJT
 
Communication entre android et arduino via bluetooth
Communication entre android et arduino via bluetoothCommunication entre android et arduino via bluetooth
Communication entre android et arduino via bluetooth
 
Amplificadores Multietapa
Amplificadores MultietapaAmplificadores Multietapa
Amplificadores Multietapa
 

Similar to Práctica04.Programando Arduino

Robótica Educativa TEMA 2 (3).pptx
Robótica Educativa TEMA 2 (3).pptxRobótica Educativa TEMA 2 (3).pptx
Robótica Educativa TEMA 2 (3).pptxDenisseGeovanna
 
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 PARTESjairomauriciocamargo
 
Tutorial-pic16 f877a- algunas-mejoras
Tutorial-pic16 f877a- algunas-mejorasTutorial-pic16 f877a- algunas-mejoras
Tutorial-pic16 f877a- algunas-mejorasAldo Corp
 
Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2Gonzalo Gomez
 
Informe escolar grupal sobre tarjeta arduino
Informe escolar grupal sobre tarjeta arduinoInforme escolar grupal sobre tarjeta arduino
Informe escolar grupal sobre tarjeta arduinoJuan Castillo Bolaños
 
Trababajo sobre placa arduino
Trababajo sobre placa arduinoTrababajo sobre placa arduino
Trababajo sobre placa arduinoValeria Gonzalez
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Oscar Pastrana
 
CONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDAD
CONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDADCONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDAD
CONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDADMaestroMatematicas
 
Microcontroladores: Comunicación en serie con Arduino
Microcontroladores: Comunicación en serie con Arduino Microcontroladores: Comunicación en serie con Arduino
Microcontroladores: Comunicación en serie con Arduino SANTIAGO PABLO ALBERTO
 
Arduino IEEE SB UMH - Mario Pérez Esteso
Arduino IEEE SB UMH - Mario Pérez EstesoArduino IEEE SB UMH - Mario Pérez Esteso
Arduino IEEE SB UMH - Mario Pérez EstesoMario Pérez Esteso
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-unoAngelik Hdez
 
Elaboracion de circuitos modulos logicos programables
Elaboracion de circuitos modulos logicos programablesElaboracion de circuitos modulos logicos programables
Elaboracion de circuitos modulos logicos programablesBelén Cevallos Giler
 

Similar to Práctica04.Programando Arduino (20)

Robótica Educativa TEMA 2 (3).pptx
Robótica Educativa TEMA 2 (3).pptxRobótica Educativa TEMA 2 (3).pptx
Robótica Educativa TEMA 2 (3).pptx
 
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
 
22232441 310201212102
22232441 31020121210222232441 310201212102
22232441 310201212102
 
22232441 310201212102
22232441 31020121210222232441 310201212102
22232441 310201212102
 
Comenzando con arduino
Comenzando con arduinoComenzando con arduino
Comenzando con arduino
 
Tutorial-pic16 f877a- algunas-mejoras
Tutorial-pic16 f877a- algunas-mejorasTutorial-pic16 f877a- algunas-mejoras
Tutorial-pic16 f877a- algunas-mejoras
 
Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2Introduccion a los_microcontroladores_v2
Introduccion a los_microcontroladores_v2
 
Placa arduino
Placa arduinoPlaca arduino
Placa arduino
 
Informe escolar grupal sobre tarjeta arduino
Informe escolar grupal sobre tarjeta arduinoInforme escolar grupal sobre tarjeta arduino
Informe escolar grupal sobre tarjeta arduino
 
Trababajo sobre placa arduino
Trababajo sobre placa arduinoTrababajo sobre placa arduino
Trababajo sobre placa arduino
 
Plc1
Plc1Plc1
Plc1
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
 
Presentacionarduino
PresentacionarduinoPresentacionarduino
Presentacionarduino
 
CONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDAD
CONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDADCONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDAD
CONCEPTOS BASICOS DE ARDUINO EN ELECTRICIDAD
 
Microcontroladores: Comunicación en serie con Arduino
Microcontroladores: Comunicación en serie con Arduino Microcontroladores: Comunicación en serie con Arduino
Microcontroladores: Comunicación en serie con Arduino
 
Fundamentos de los Microcontroladores
Fundamentos de los MicrocontroladoresFundamentos de los Microcontroladores
Fundamentos de los Microcontroladores
 
Arduino IEEE SB UMH - Mario Pérez Esteso
Arduino IEEE SB UMH - Mario Pérez EstesoArduino IEEE SB UMH - Mario Pérez Esteso
Arduino IEEE SB UMH - Mario Pérez Esteso
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-uno
 
Intro arduino
Intro arduinoIntro arduino
Intro arduino
 
Elaboracion de circuitos modulos logicos programables
Elaboracion de circuitos modulos logicos programablesElaboracion de circuitos modulos logicos programables
Elaboracion de circuitos modulos logicos programables
 

More from Jonathan Ruiz de Garibay (14)

Vocaciones STEM
Vocaciones STEMVocaciones STEM
Vocaciones STEM
 
Recta de carga para señal
Recta de carga para señalRecta de carga para señal
Recta de carga para señal
 
Polarización de los Transistores
Polarización de los TransistoresPolarización de los Transistores
Polarización de los Transistores
 
Programación en Arduino
Programación en ArduinoProgramación en Arduino
Programación en Arduino
 
Introducción a arduino
Introducción a arduinoIntroducción a arduino
Introducción a arduino
 
Fundamentos de los Transistores
Fundamentos de los TransistoresFundamentos de los Transistores
Fundamentos de los Transistores
 
Transistor Bipolar
Transistor BipolarTransistor Bipolar
Transistor Bipolar
 
Introducción a la Tecnología Electrónica
Introducción a la Tecnología ElectrónicaIntroducción a la Tecnología Electrónica
Introducción a la Tecnología Electrónica
 
Semiconductores
SemiconductoresSemiconductores
Semiconductores
 
Teoría de Diodos
Teoría de DiodosTeoría de Diodos
Teoría de Diodos
 
Fuentes de Alimentación
Fuentes de AlimentaciónFuentes de Alimentación
Fuentes de Alimentación
 
IoT: Objetos conectados a internet
IoT: Objetos conectados a internetIoT: Objetos conectados a internet
IoT: Objetos conectados a internet
 
Time Management Tool Based on New Interaction Paradigms with RFID Technology
Time Management Tool Based on New Interaction Paradigms with RFID TechnologyTime Management Tool Based on New Interaction Paradigms with RFID Technology
Time Management Tool Based on New Interaction Paradigms with RFID Technology
 
WebTag: Smart Tag with Embedded Web Server
WebTag: Smart Tag with Embedded Web ServerWebTag: Smart Tag with Embedded Web Server
WebTag: Smart Tag with Embedded Web Server
 

Práctica04.Programando Arduino

  • 1. Sistemas Electrónicos Programables Facultad de Ingeniería, Universidad de Deusto Práctica 04: Programando Arduino
  • 2. Sistemas Electrónicos Programables Entradas / Salidas Digitales  Las líneas de ES digitales están numerados desde el 0 hasta n (dependiendo del modelo de Arduino utilizado).  No pueden ser entrada y salida a la vez, sólo una de las dos cosas pero pueden alternarse en ejecución.  Algunas pueden tener multiplexadas funcionalidades adicionales.  ‘~’ significa que puede funcionar como salida de PWM.  ‘TX’ y ‘RX’ son un puerto serie (que se utiliza para la grabación del microcontrolador) Las líneas de Entrada / Salida permiten escribir o leer valores digitales (‘0’ o ‘1’) en los pines del microcontrolador.
  • 3. Sistemas Electrónicos Programables Entradas / Salidas Digitales (continuación…)  Para indicar si un pin es de entrada o de salida:  En un pin configurado como salida; para establecer un estado en una salida:  En un pin configurado como entrada; para leer el estado de una entrada: void pinMode(pin, [INPUT | OUTPUT]) void digitalWrite(pin, [LOW | HIGH]) int digitalRead(pin)
  • 4. Sistemas Electrónicos Programables Entradas / Salidas Digitales (continuación…)  Ejercicio 1:  Encender durante un segundo y apagar durante otro segundo un diodo LED colocado en el pin 6. #define LED 6 // the setup routine runs once when you press reset: void setup() { pinMode(LED, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(LED, HIGH); // turn the LED on delay(1000); // wait for a second digitalWrite(LED, LOW); // turn the LED off delay(1000); // wait for a second }
  • 5. Sistemas Electrónicos Programables Entradas / Salidas Digitales (continuación…)  Ejercicio 2:  Encender un diodo LED colocado en el pin 6 mientras se active un pulsador colocado en el pin 2. #define LED 6 #define BUTTON 2 void setup() { pinMode(LED, OUTPUT); pinMode(BUTTON, INPUT); } void loop() { if (digitalRead(BUTTON) == HIGH) digitalWrite(LED, HIGH); // turn the LED on else digitalWrite(LED, LOW); // turn the LED off }
  • 6. Sistemas Electrónicos Programables Entradas / Salidas Digitales (continuación…)  En aquellos sensores que necesitan una resistencia de Pull-Up, con Arduino se puede configurar por software una resistencia interna que tiene el microcontrolador. void pinMode(pin, INPUT_PULLUP) Si lo que se requiere es una resistencia Pull-Down, ésta deberá ser externa ya que el microcontrolador sólo proporciona resistencias Pull-Up
  • 7. Sistemas Electrónicos Programables Efecto Rebote  Cuando se trabaja con conmutadores o pulsadores electromecánicos, es inevitable que se produzca un pequeño arqueo eléctrico al actuar sobre ellos; lo que se conoce como rebote.  El periodo transitorio de un rebote depende de diversos factores como son las calidad de los componentes y la rapidez de su accionamiento.  Por defecto, se toman 20mS como el tiempo máximo de un rebote.
  • 8. Sistemas Electrónicos Programables Efecto Rebote (continuación…)  ¿Cómo podemos solucionar este problema? V t Se pulsa el botón Se suelta el botón +5V
  • 9. Sistemas Electrónicos Programables Comunicación Serie  En Arduino la comunicación por defecto es Full-Duplex, 8 bits de datos, sin paridad y 1 bit de stop.  La velocidad en baudios se selecciona al inicializar el puerto serie.  Todos los modelos de Arduino utilizan el primer puerto serie para la grabación del microcontrolador por medio del bootloader. La Comunicación Serie permite a un sistema embebido comunicarse con otro sistema embebido, con algunos sensores o actuadores, módulos de comunicación o con un PC de forma alámbrica.
  • 10. Sistemas Electrónicos Programables Comunicación Serie (continuación…)  El puerto serie en Arduino es tratado como un objeto estático llamado Serial.  Los que tienen más de un puerto se llamarán Serial1, Serial2…  Los pines para el puerto serie son fijos y hay que buscarlos en las especificaciones.  Suelen estar serigrafiados en las placas como RX y TX.  Los que tienen más de un puerto serán RX1, TX1; RX2, TX2…  En la recepción, los datos recibidos se guardan en un buffer y se leen de uno en uno.  Una vez leído un dato, este se elimina del buffer.
  • 11. Sistemas Electrónicos Programables Comunicación Serie (continuación…)  Para inicializar un puerto serie:  Para enviar datos por puerto serie:  Para recibir datos por puerto serie:  Consultar el número de datos recibidos y que no hayan sido leídos aún: Serial.begin(baudios) Serial.print(datos) Serial.println(datos) Serial.write(valor) byte Serial.read() Devuelve ‘0xFF’ si no se ha recibido nada int Serial.available()
  • 12. Sistemas Electrónicos Programables Comunicación Serie (continuación…)  Ejercicio 3:  Enviar por el puerto serie un ‘1’ cuando se active un pulsador situado en el pin 2.  Ejercicio 4:  Encender un diodo LED situado en el pin 8 cuando se reciba por puerto serie el carácter ‘H’ y apagarlo cuando se reciba ‘L’.
  • 13. Sistemas Electrónicos Programables Entradas Analógicas  Las líneas de entrada analógica están numerados desde el A0 hasta An (dependiendo del modelo de Arduino utilizado).  Todas ellas pueden ser utilizadas como entradas/salidas digitales.  Algunas pueden tener multiplexadas funcionalidades adicionales. Las líneas de Entrada Analógica permiten leer tensiones analógicas y convertirlas a un valor entero interpretable por el programador.
  • 14. Sistemas Electrónicos Programables Entradas Analógicas (continuación…)  Las entradas analógica no requieren ninguna inicialización ya que siempre van a ser de entrada.  Para leer la tensión analógica de una entrada analógica: int analogRead(pin) El valor leído se será 0 con 0V en la entrada y 1023 con 5V en la entrada; el resto, valores proporcionales.
  • 15. Sistemas Electrónicos Programables Entradas Analógicas (continuación…)  Ejercicio 5:  Leer el valor del potenciómetro conectado al pin A1 y enviar por puerto serie dicho valor en voltios.
  • 16. Sistemas Electrónicos Programables Salida PWM  Arduino trata esta técnica como si se trabajara con una salida analógica.  ¿Qué aplicaciones tiene? La Modulación en Anchura de Pulsos de una señal es una técnica que modifica el ciclo de trabajo de una señal periódica; para transmitir información o para controlar la energía entregada V t V tSeñal 1 Señal 2
  • 17. Sistemas Electrónicos Programables Salida PWM (continuación…)  En un pin configurado como salida; para general una señal PWM en la salida: void analogWrite(pin, value) La frecuencia de la señal PWM será aproximadamente de 490Hz; y el ciclo de trabajo estará entre 0 (nivel bajo todo el periodo) y 255 (nivel alto todo el periodo).
  • 18. Sistemas Electrónicos Programables Salida PWM (continuación…)  Ejercicio 6:  Leer el valor analógico proporcionado por el potenciómetro conectado en el pin A1 e iluminar el diodo LED conectado en el pin 6 de forma proporcional.
  • 19. Sistemas Electrónicos Programables Por medio de estas Funciones de Tiempo se pueden realizar esperas bloqueantes o es posible medir el tiempo en milisegundos o incluso en microsegundos Funciones de Tiempo  Una espera bloqueante significa que durante ese tiempo no se tiene ningún control sobre los periféricos.  ¿Qué problemas tiene esto?
  • 20. Sistemas Electrónicos Programables Funciones de Tiempo (continuación…)  Espera en milisegundos:  Espera en microsegundos:  Tiempo transcurrido desde que se ha encendido el microcontrolador en milisegundos:  Tiempo transcurrido desde que se ha encendido el microcontrolador en milisegundos: unsigned long millis() unsigned long micros() void delay(milisegundos) void delayMicroseconds(microsegundos)
  • 21. Sistemas Electrónicos Programables Funciones de Tiempo (continuación…)  Ejercicio 7:  Programar un reloj en tiempo real con una precisión de décimas de segundo. Visualizar en una terminal serie el reloj con el siguiente formato: 00:00.0 (minutos:segundos.decimas) [implementarlo de dos formas diferentes: haciendo esperas y controlando el tiempo transcurrido].
  • 22. Sistemas Electrónicos Programables Librería SoftwareSerial  El Arduino uno soporta 1 puerto serie hardware y el Mega hasta 4 puertos serie hardware.  Limitaciones:  Si se crea mas de un componente SoftwareSerial, sólo uno de ellos puede estar recibiendo datos.  Se puede perder información. El hardware de Arduino soporta una única comunicación serie; por medio de la librería SoftwareSerial se podrán implementar nuevos puertos de comunicación.
  • 23. Esta presentación está sujeta a la licencia de Reconocimiento de Creative Commons mediante la cual se permite la copia, la distribución, la comunicación pública y la generación de obras derivadas sin ninguna limitación siempre que se cite al autor y se mantenga el aviso de la licencia. © 2014, Jonathan Ruiz de Garibay Algunos derechos reservados