SlideShare una empresa de Scribd logo
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

Más contenido relacionado

PPT
EEPROM Part-21
PPTX
Una introduccion a IPv6
PPT
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
PPT
Core of the ES
PPT
PPT
Direccionamiento ip
PDF
Preguntas guía de cara al examen de REDES
PDF
04 ccna principios baciscos de routers y enrrutamiento v3.1
EEPROM Part-21
Una introduccion a IPv6
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
Core of the ES
Direccionamiento ip
Preguntas guía de cara al examen de REDES
04 ccna principios baciscos de routers y enrrutamiento v3.1

La actualidad más candente (20)

PPTX
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT II Application and Domain Specific ES
DOCX
Radio mobile
PPTX
Conectores rj45
PPTX
Jerarquía de Red telefónica y marcación
PPTX
Rs 232 interface
PPT
Espectro Ensanchado - Telecomunicaciones III
PDF
Sistemas de Microondas - Capítulo VIII Planificación de Frecuencias
PPT
CI 555 (1er viernes en la tarde y de ser necesario parte del sabado x la ma~n...
PDF
Señalización en Redes Telefónicas Públicas Conmutadas SS7 / DSS1 / Sigtran
PDF
Embedded Firmware Design and Development, and EDLC
PPTX
Presentacion xdsl
PPTX
Antenas direccionales
PPTX
11 comunicaciones opticas
DOCX
PDF
Capítulo VIII - Microondas - Características de los equipos de radio enlaces ...
PDF
Mensajes de control y Error del conjunto TCP/IP - ICMP
PDF
Isdn y rdsi comparacion ventajas y desventajas
PPSX
Router y su funcionamiento
PPTX
MEDIOS DE TRANSMISION
PPTX
Estructura de una pstn
SYBSC IT SEM IV EMBEDDED SYSTEMS UNIT II Application and Domain Specific ES
Radio mobile
Conectores rj45
Jerarquía de Red telefónica y marcación
Rs 232 interface
Espectro Ensanchado - Telecomunicaciones III
Sistemas de Microondas - Capítulo VIII Planificación de Frecuencias
CI 555 (1er viernes en la tarde y de ser necesario parte del sabado x la ma~n...
Señalización en Redes Telefónicas Públicas Conmutadas SS7 / DSS1 / Sigtran
Embedded Firmware Design and Development, and EDLC
Presentacion xdsl
Antenas direccionales
11 comunicaciones opticas
Capítulo VIII - Microondas - Características de los equipos de radio enlaces ...
Mensajes de control y Error del conjunto TCP/IP - ICMP
Isdn y rdsi comparacion ventajas y desventajas
Router y su funcionamiento
MEDIOS DE TRANSMISION
Estructura de una pstn
Publicidad

Destacado (20)

PDF
Programacion basica en Arduino
PPTX
PPT
Programación arduino
DOCX
Arduino - Slideshare
PDF
Introducción a arduino
PDF
Arduino sin cables: usando Bluetooth
PDF
Práctica09.Librerías
PDF
01.Puntos Clave de una Presentación Oral
PDF
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
PDF
Introduccion a la Programación
PDF
02.El Soporte Visual
PDF
P01.Desarrollo de aplicaciones con mplab
PDF
02d.Circuito oscilador
PDF
Práctica05.Interrupciones en Arduino
PDF
Práctica04.Programando Arduino
PDF
Introducción a la planificación de proyectos
PDF
Práctica01.Sistemas de Entrada Salida
PDF
Práctica08.Comunicaciones
PDF
Programación Basada en Autómatas
ODP
Android + Bluetooth + Arduino
Programacion basica en Arduino
Programación arduino
Arduino - Slideshare
Introducción a arduino
Arduino sin cables: usando Bluetooth
Práctica09.Librerías
01.Puntos Clave de una Presentación Oral
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Introduccion a la Programación
02.El Soporte Visual
P01.Desarrollo de aplicaciones con mplab
02d.Circuito oscilador
Práctica05.Interrupciones en Arduino
Práctica04.Programando Arduino
Introducción a la planificación de proyectos
Práctica01.Sistemas de Entrada Salida
Práctica08.Comunicaciones
Programación Basada en Autómatas
Android + Bluetooth + Arduino
Publicidad

Similar a Programación en Arduino (20)

PPTX
Paradigma de Programación Orientado a Objetos
PDF
PDF
_MICROCONTROLADORES y ARDUINO uno basico.pdf
PPT
Tema 1 2_poo
DOCX
Manual basico arduino
PDF
Arduino
PDF
Arduino
PDF
PDF
PDF OP DE KRISTI
PDF
Manual de Arduino
PDF
PPTX
Laboratorio # 1 introducción a arduino
PPTX
Presentacion introducción arduino parte 2
PDF
Básicos arduino
PDF
Basicos arduino
PPTX
Arduino - Ejercicios Básicos
PDF
Curso de arduino basico 1ra edicion saenz flores misael
DOCX
Luz adrada tarjeta arduino.
DOCX
Luz adrada tarjeta arduino. (1)
PPT
1 Paradigma Objetos
Paradigma de Programación Orientado a Objetos
_MICROCONTROLADORES y ARDUINO uno basico.pdf
Tema 1 2_poo
Manual basico arduino
Arduino
Arduino
PDF OP DE KRISTI
Manual de Arduino
Laboratorio # 1 introducción a arduino
Presentacion introducción arduino parte 2
Básicos arduino
Basicos arduino
Arduino - Ejercicios Básicos
Curso de arduino basico 1ra edicion saenz flores misael
Luz adrada tarjeta arduino.
Luz adrada tarjeta arduino. (1)
1 Paradigma Objetos

Más de Jonathan Ruiz de Garibay (18)

PDF
Vocaciones STEM
PDF
Configuraciones con transistores BJT
PDF
Amplificadores Multietapa
PDF
Amplificación de señal con BJT
PDF
Recta de carga para señal
PDF
Práctica06.Controlando Motores
PDF
Fundamentos de los Microcontroladores
PDF
Polarización de los Transistores
PDF
Trabajo en equipo
PDF
Fundamentos de los Transistores
PDF
Transistor Bipolar
PDF
Introducción a la Tecnología Electrónica
PDF
Semiconductores
PDF
Teoría de Diodos
PDF
Fuentes de Alimentación
PPTX
IoT: Objetos conectados a internet
PDF
Time Management Tool Based on New Interaction Paradigms with RFID Technology
PPTX
WebTag: Smart Tag with Embedded Web Server
Vocaciones STEM
Configuraciones con transistores BJT
Amplificadores Multietapa
Amplificación de señal con BJT
Recta de carga para señal
Práctica06.Controlando Motores
Fundamentos de los Microcontroladores
Polarización de los Transistores
Trabajo en equipo
Fundamentos de los Transistores
Transistor Bipolar
Introducción a la Tecnología Electrónica
Semiconductores
Teoría de Diodos
Fuentes de Alimentación
IoT: Objetos conectados a internet
Time Management Tool Based on New Interaction Paradigms with RFID Technology
WebTag: Smart Tag with Embedded Web Server

Último (20)

PPTX
Gestion de seguridad y salud ocupacional.pptx
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
PDF
Primera formulación de cargos de la SEC en contra del CEN
PPTX
Contexto Normativo NSR10, presentacion 2025
PPTX
Manual ISO9001_2015_IATF_16949_2016.pptx
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
PDF
prg2_t01_p01_Fundamentos POO - parte1.pdf
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PDF
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
PDF
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
PDF
S15 Protección de redes electricas 2025-1_removed.pdf
PDF
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
DOC
informacion acerca de la crianza tecnificada de cerdos
PDF
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
PDF
Estrategias de apoyo de tecnología 2do periodo pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PDF
Durabilidad del concreto en zonas costeras
Gestion de seguridad y salud ocupacional.pptx
Sustancias Peligrosas de empresas para su correcto manejo
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
Primera formulación de cargos de la SEC en contra del CEN
Contexto Normativo NSR10, presentacion 2025
Manual ISO9001_2015_IATF_16949_2016.pptx
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
Perfilaje de Pozos _20250624_222013_0000.pdf
prg2_t01_p01_Fundamentos POO - parte1.pdf
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
S15 Protección de redes electricas 2025-1_removed.pdf
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
informacion acerca de la crianza tecnificada de cerdos
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
Estrategias de apoyo de tecnología 2do periodo pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
Durabilidad del concreto en zonas costeras

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