/*############################################################################
# ** Proyecto : 0 - Hola Led con Programacion Orientada a Objetos (POO)
# ** Herramienta : https://www.wokwi.com
# ** Compilador : wokwi Simulador online
# ** Version : 1.0
# ** Fecha/Hora : 19-10-2024, 6:45 am,
# **
# ** Descripción del programa :
# ** Este programa prende y apaga un led, con tajeta ARDUINO UNO
# ** utilizando programacion Orientada a Objetos (POO)
# ** lenguaje de programacion Arduino / C++
# **
# ** Versión : 1
# ** Revisión : A
# ** Release : 0
# ** Bugs & Fixes :
# ** Date : 19/10/2024
# **
# ** By : Jorge Anzaldo
# ** contact : [email protected]
# ** twitter x : @janzaldob
#############################################################################*/
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# : Librerias / Bibliotecas / Modulos | :
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/* +-------------------------------------------------------------------------------
# | V A R I A B L E S G L O B A L E S |
# +-------------------------------------------------------------------------------*/
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# | Definición y Desarrollo de Funciones o Clases |
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
class Led{
private:
int pin;
public:
//constructor
Led(int pinNumero){
pin = pinNumero;
pinMode(pin, OUTPUT);
}
// metodos (funciones)
void mensaje(const char *texto){
Serial.print(texto);
}
void prender(int tiempo){
digitalWrite(pin,HIGH);
delay(tiempo*1000);
}
void apagar(int tiempo){
digitalWrite(pin,LOW);
delay(tiempo*1000);
}
void parpadear(int iteraciones){
for(int i=0 ; i<=iteraciones ; i++){
digitalWrite(pin,HIGH);
delay(200);
digitalWrite(pin,LOW);
delay(200);
}
}
//destructor
~Led(){}
};
/*-------------------------------------------------------------------------------
# | variable / instancias / objetos globales |
# +-------------------------------------------------------------------------------*/
Led led(13);
/* ===============================================================================
# || ||
# || P R O G R A M A / F U N C I O N P R I N C I P A L ||
# || ||
# ==============================================================================*/
void setup() {
Serial.begin(115200);
}
void loop() {
led.mensaje("LED PRENDIDO 2 SEGUNDO \n");
led.prender(2);
led.mensaje("LED APAGADO 1 SEGUNDOS \n");
led.apagar(1);
led.mensaje("LED PARPADEANDO 10 VECES \n");
led.parpadear(10);
led.mensaje("LED APAGADO 1 SEGUNDO \n");
led.apagar(1);
}
/*# ********************************************************************************
#
# R E F E R E N C I A S / C O M E N T A R I O S
#
# *** Lenguajes Arduino ***
#
El lenguaje del Arduino está basado en el mítico lenguaje C/C++.
Si ya has trabajado en C/C++ este tutorial te parecerá un paseo.
Si no, te basta con saber que C es el lenguaje en el que se ha desarrollado
los sistemas operativos UNIX, Linux, y cientos de sistemas, programas y aplicaciones
de ordenador. El lenguaje del Arduino es una versión reducida y mucho más sencilla
de manejar que el lenguaje C. El objetivo de este lenguaje es que puedas programar
de una manera intuitiva concentrándote en lo que quieres hacer más que en la manera
de hacerlo.
Arduino fue desarrollado originalmente en el Interactive Design Institute en Ivrea
(Italia) donde los estudiantes estaban familiarizados con un lenguaje llamado
Processing. Este lenguaje estaba orientado a estudiantes de arte y diseño y utilizaba
un entorno de desarrollo visual e intuitivo en el cual se basó el entorno de desarrollo
del Arduino y su lenguaje de programación.
Trabajar con un Arduino consiste fundamentalmente en interactuar con los diferentes
puertos de entrada y salida del Arduino. A fin de evitar al programador el engorro
y la complejidad de programar estos puertos (ya sean analógicos, digitales o de cualquier
otro tipo) el lenguaje de Arduino usa una serie de librerías (de las que no te tienes
que preocupar ya que forman parte del lenguaje, ya las iremos viendo con detenimiento más
adelante). Estas librerías te permiten programar los pins digitales como puertos de
entrada o salida, leer entradas analógicas, controlar servos o encender y apagar motores
de continua. La mayor parte de estas librerías de base (“core libraries”) forman parte
de una macro librería llamada Wiring desarrollada por Hernando Barragán.
Referencia
https://www.prometec.net/intro-programacion/#:~:text=El%20lenguaje%20del%20Arduino%20es,en%20la%20manera%20de%20hacerlo.
Lenguaje de programación C++
El lenguaje de programación de Arduino está basado en C++ y aunque la referencia para el
lenguaje de programación de Arduino está en http://arduino.cc/en/Reference/HomePage,
también es posible usar estructuras y clases de C++ en la programación de Arduino.
# *********************************************************************************/