SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Sistemas Electrónicos Programables
Facultad de Ingeniería, Universidad de Deusto
Programación en Arduino
Sistemas Electrónicos Programables
Introducción
 En Arduino, el sketch principal del programa está
pensado para utilizar programación estructurada pero,
 existen 3 formas diferentes de acceder a los recursos del
microcontrolador
Recurso Ejemplos Tipo de Programación
Sistemas de
E/S básicos
· Entradas/salidas digitales
· Entradas Analógicas
· Salidas PWM…
Programación
estructurada
Recursos
generales
· Servomotores
· Sensores avanzados
· Comunicación I2C…
Programación
Orientada a Objetos
Recursos
exclusivos
· Puerto serie
· Comunicación SPI…
Programación
Orientada a Objetos
con métodos estáticos
Sistemas Electrónicos Programables
Programación Estructura
 Se basa, únicamente, en estructura de control
(condicionales e iterativas) y funciones.
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Las funciones más básicas de entrada y salida, tanto digitales
como analógicas, utilizan este tipo de programación.
Sistemas Electrónicos Programables
Programación Orientada a Objetos
 Se usan, adicionalmente, una serie de técnicas como por
ejemplo la herencia, la abstracción, la sobrecarga o el
encapsulamiento.
Es un paradigma de programación en el que se
crean objetos software, con un estado (atributos)
y un comportamiento (métodos), que representen
a las entidades del mundo real.
LED
int _pin;
static int _numberOfLeds;
LED();
void begin(byte pin);
void setOn();
void setOff();
static int getNumberOfLeds();
Sistemas Electrónicos Programables
Programación Orientada a Objetos
(continuación…)
 El concepto básico se centra en las clases y los
objetos:
 Clase: conjunto de objetos con propiedades y
comportamiento similar.
 Objeto: instancia de una clase capaz de procesar datos y
recibir/enviar mensajes.
Clase ~ encapsulación
Objeto = new Clase()
Objeto ~ referencia
Sistemas Electrónicos Programables
Programación Orientada a Objetos
(continuación…)
 Abstracción: cada objeto de un sistema es un
‘agente’ que trabaja, informa o cambia de estado sin
revelar cómo implementa esas acciones.
 Encapsulamiento: no es posible cambiar el estado
de un objeto desde fuera del mismo.
 Herencia (simple o múltiple): las clases no tienen
porque estar aisladas; se relacionan entre sí
formando una jerarquía.
 Polimorfismo: objetos del mismo tipo pueden tener
compartimientos diferentes.
 Polimorfismo por sobrecarga: dos métodos pueden tener
el mismo nombre y distintos parámetros.
Sistemas Electrónicos Programables
Atributos, Métodos y Propiedades
 Los atributos representan el estado de un objeto.
 No deben ser accesible fuera de la clase.
 Los métodos son las acciones que definen el
comportamiento de un objeto.
byte _pin
void begin(byte pin)
void setOn()
void setOff()
Las propiedades son unos métodos especiales que
permiten el acceso controlado a los atributos de un objeto
Sistemas Electrónicos Programables
Constructor
 Un constructor tiene el mismo nombre que la clase; y no
tiene tipo de retorno.
 Dentro de este constructor, se suelen realizar las tareas de
inicialización de un objeto
Un Constructor es un método especial usado
para la creación de instancias de una clase
En Arduino, la tarea de inicialización se suele realizar en
el método begin en lugar de en el constructor
LED(byte pin){
this->_pin=pin
pinMode(this->_pin, OUTPUT);
}
Sistemas Electrónicos Programables
Modificadores public vs. private
 Se utiliza cuando se definen métodos internos que
no deben ser accesibles desde el exterior
 Principalmente, cálculos complejos o acciones repetitivas
Para controlar el acceso exterior a los atributos y
métodos de un objeto se utilizan las palabras
clave public y private, dando acceso o no,
respectivamente
private:
byte _pin;
public:
LED();
void begin(byte pin);
void setOn();
void setOff();
Sistemas Electrónicos Programables
Modificador static
 Se utiliza, en muchas ocasiones, para obtener
información de la colección de objetos de una clase.
 Para llamar a estos métodos, se usa el nombre de la
clase en lugar de los objetos:
Pueden existir comportamientos genéricos a
nivel de clase en lugar de a nivel de objeto; por
medio del modificador static se puede definir un
atributo o método estático
static int _numberOfLeds;
static int getNumberOfLeds();
LED.getNumberOfLeds();
Sistemas Electrónicos Programables
Programación OO en Arduino
 En Arduino, se incluyen muchas características de la
programación orientada a objetos; pero no todas.
class LED {
public:
LED(){
}
void begin(byte pin){
this->_pin = pin;
pinMode(this->_pin, OUPUT);
digitalWrite(this->_pin, LOW);
this->_numberOfLeds++;
}
void setOn(){
digitalWrite(this->_pin, HIGH);
}
void setOff(){
digitalWrite(this->_pin, LOW);
}
static int getNumberOfLeds(){
return _numberOfLeds;
}
private:
byte _pin;
static int _numberOfLeds;
}
Sistemas Electrónicos Programables
Programación OO en Arduino (continuación…)
 La mayoría de los sensores y actuadores de Arduino
tiene implementada una librería basada el clases y
objetos para su gestión.
 Los recursos exclusivos o únicos se implementan
generalmente por medio de ‘clases estáticas’.
Serial.begin(9600);
Serial.println(“Hello World”);
...
Internamente, se implementa una clase normal y se aplica el
patrón de diseño Singleton (programación avanzada)
SERVO servo1;
servo1.begin(9);
servo1.write(180);
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

Contenu connexe

En vedette

Programación arduino
Programación arduinoProgramación arduino
Programación arduinotoni
 
Arduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothArduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothJorge Zaccaro
 
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
 
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
 
Dispositivos y técnicas
Dispositivos y técnicasDispositivos y técnicas
Dispositivos y técnicasPablo Gindel
 

En vedette (20)

Arduino
ArduinoArduino
Arduino
 
Programación arduino
Programación arduinoProgramación arduino
Programación arduino
 
Arduino - Slideshare
Arduino - SlideshareArduino - Slideshare
Arduino - Slideshare
 
Introducción a arduino
Introducción a arduinoIntroducción a arduino
Introducción a arduino
 
Arduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothArduino sin cables: usando Bluetooth
Arduino sin cables: usando Bluetooth
 
Práctica09.Librerías
Práctica09.LibreríasPráctica09.Librerías
Práctica09.Librerías
 
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
 
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
 
02.El Soporte Visual
02.El Soporte Visual02.El Soporte Visual
02.El Soporte Visual
 
P01.Desarrollo de aplicaciones con mplab
P01.Desarrollo de aplicaciones con mplabP01.Desarrollo de aplicaciones con mplab
P01.Desarrollo de aplicaciones con mplab
 
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
 
Práctica04.Programando Arduino
Práctica04.Programando ArduinoPráctica04.Programando Arduino
Práctica04.Programando 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
 
Práctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada SalidaPráctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada Salida
 
Práctica08.Comunicaciones
Práctica08.ComunicacionesPráctica08.Comunicaciones
Práctica08.Comunicaciones
 
Android + Bluetooth + Arduino
Android + Bluetooth + ArduinoAndroid + Bluetooth + Arduino
Android + Bluetooth + Arduino
 
Dispositivos y técnicas
Dispositivos y técnicasDispositivos y técnicas
Dispositivos y técnicas
 
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
 

Similaire à Programación en Arduino

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Samuel Marrero
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Javasantosisidrorivera
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppterosslo
 
Java2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a ObjetosJava2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a ObjetosJairo887360
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
P4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxP4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxdocmarcoantoniosotov
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesecodereck
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poodemon_628
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
 

Similaire à Programación en Arduino (20)

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Poo 1
Poo 1Poo 1
Poo 1
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Java
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
 
Java2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a ObjetosJava2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a Objetos
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
03 Oop
03   Oop03   Oop
03 Oop
 
P4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxP4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptx
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 

Plus de Jonathan Ruiz de Garibay (16)

Vocaciones STEM
Vocaciones STEMVocaciones STEM
Vocaciones STEM
 
Configuraciones con transistores BJT
Configuraciones con transistores BJTConfiguraciones con transistores BJT
Configuraciones con transistores BJT
 
Amplificadores Multietapa
Amplificadores MultietapaAmplificadores Multietapa
Amplificadores Multietapa
 
Recta de carga para señal
Recta de carga para señalRecta de carga para señal
Recta de carga para señal
 
Práctica06.Controlando Motores
Práctica06.Controlando MotoresPráctica06.Controlando Motores
Práctica06.Controlando Motores
 
Fundamentos de los Microcontroladores
Fundamentos de los MicrocontroladoresFundamentos de los Microcontroladores
Fundamentos de los Microcontroladores
 
Polarización de los Transistores
Polarización de los TransistoresPolarización de los Transistores
Polarización de los Transistores
 
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
 

Dernier

nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosRamiroCruzSalazar
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosisauVillalva
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxLuisJJacinto
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx170766
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUManuelSosa83
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfRonaldLozano11
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfGabrielCayampiGutier
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internamengual57
 

Dernier (20)

422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docx
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 

Programación en Arduino

  • 1. Sistemas Electrónicos Programables Facultad de Ingeniería, Universidad de Deusto Programación en Arduino
  • 2. Sistemas Electrónicos Programables Introducción  En Arduino, el sketch principal del programa está pensado para utilizar programación estructurada pero,  existen 3 formas diferentes de acceder a los recursos del microcontrolador Recurso Ejemplos Tipo de Programación Sistemas de E/S básicos · Entradas/salidas digitales · Entradas Analógicas · Salidas PWM… Programación estructurada Recursos generales · Servomotores · Sensores avanzados · Comunicación I2C… Programación Orientada a Objetos Recursos exclusivos · Puerto serie · Comunicación SPI… Programación Orientada a Objetos con métodos estáticos
  • 3. Sistemas Electrónicos Programables Programación Estructura  Se basa, únicamente, en estructura de control (condicionales e iterativas) y funciones. int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } Las funciones más básicas de entrada y salida, tanto digitales como analógicas, utilizan este tipo de programación.
  • 4. Sistemas Electrónicos Programables Programación Orientada a Objetos  Se usan, adicionalmente, una serie de técnicas como por ejemplo la herencia, la abstracción, la sobrecarga o el encapsulamiento. Es un paradigma de programación en el que se crean objetos software, con un estado (atributos) y un comportamiento (métodos), que representen a las entidades del mundo real. LED int _pin; static int _numberOfLeds; LED(); void begin(byte pin); void setOn(); void setOff(); static int getNumberOfLeds();
  • 5. Sistemas Electrónicos Programables Programación Orientada a Objetos (continuación…)  El concepto básico se centra en las clases y los objetos:  Clase: conjunto de objetos con propiedades y comportamiento similar.  Objeto: instancia de una clase capaz de procesar datos y recibir/enviar mensajes. Clase ~ encapsulación Objeto = new Clase() Objeto ~ referencia
  • 6. Sistemas Electrónicos Programables Programación Orientada a Objetos (continuación…)  Abstracción: cada objeto de un sistema es un ‘agente’ que trabaja, informa o cambia de estado sin revelar cómo implementa esas acciones.  Encapsulamiento: no es posible cambiar el estado de un objeto desde fuera del mismo.  Herencia (simple o múltiple): las clases no tienen porque estar aisladas; se relacionan entre sí formando una jerarquía.  Polimorfismo: objetos del mismo tipo pueden tener compartimientos diferentes.  Polimorfismo por sobrecarga: dos métodos pueden tener el mismo nombre y distintos parámetros.
  • 7. Sistemas Electrónicos Programables Atributos, Métodos y Propiedades  Los atributos representan el estado de un objeto.  No deben ser accesible fuera de la clase.  Los métodos son las acciones que definen el comportamiento de un objeto. byte _pin void begin(byte pin) void setOn() void setOff() Las propiedades son unos métodos especiales que permiten el acceso controlado a los atributos de un objeto
  • 8. Sistemas Electrónicos Programables Constructor  Un constructor tiene el mismo nombre que la clase; y no tiene tipo de retorno.  Dentro de este constructor, se suelen realizar las tareas de inicialización de un objeto Un Constructor es un método especial usado para la creación de instancias de una clase En Arduino, la tarea de inicialización se suele realizar en el método begin en lugar de en el constructor LED(byte pin){ this->_pin=pin pinMode(this->_pin, OUTPUT); }
  • 9. Sistemas Electrónicos Programables Modificadores public vs. private  Se utiliza cuando se definen métodos internos que no deben ser accesibles desde el exterior  Principalmente, cálculos complejos o acciones repetitivas Para controlar el acceso exterior a los atributos y métodos de un objeto se utilizan las palabras clave public y private, dando acceso o no, respectivamente private: byte _pin; public: LED(); void begin(byte pin); void setOn(); void setOff();
  • 10. Sistemas Electrónicos Programables Modificador static  Se utiliza, en muchas ocasiones, para obtener información de la colección de objetos de una clase.  Para llamar a estos métodos, se usa el nombre de la clase en lugar de los objetos: Pueden existir comportamientos genéricos a nivel de clase en lugar de a nivel de objeto; por medio del modificador static se puede definir un atributo o método estático static int _numberOfLeds; static int getNumberOfLeds(); LED.getNumberOfLeds();
  • 11. Sistemas Electrónicos Programables Programación OO en Arduino  En Arduino, se incluyen muchas características de la programación orientada a objetos; pero no todas. class LED { public: LED(){ } void begin(byte pin){ this->_pin = pin; pinMode(this->_pin, OUPUT); digitalWrite(this->_pin, LOW); this->_numberOfLeds++; } void setOn(){ digitalWrite(this->_pin, HIGH); } void setOff(){ digitalWrite(this->_pin, LOW); } static int getNumberOfLeds(){ return _numberOfLeds; } private: byte _pin; static int _numberOfLeds; }
  • 12. Sistemas Electrónicos Programables Programación OO en Arduino (continuación…)  La mayoría de los sensores y actuadores de Arduino tiene implementada una librería basada el clases y objetos para su gestión.  Los recursos exclusivos o únicos se implementan generalmente por medio de ‘clases estáticas’. Serial.begin(9600); Serial.println(“Hello World”); ... Internamente, se implementa una clase normal y se aplica el patrón de diseño Singleton (programación avanzada) SERVO servo1; servo1.begin(9); servo1.write(180);
  • 13. 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