Y eso vamos a hacer, declarar métodos para trabajar con un pequeño Led.
No me voy a meter mucho a explicar como hacerlo, pues esta entrada está pensada para gente con conocimientos mas bien no básicos.
A continuación, un pequeño código de ejemplo:
En primer lugar declaramos la salida para el led (ledPin) la cual
int ledPin;
class Led
{
public:
Led(void)
{
ledPin =13;
}
void enciendeLed (void);
void apagaLed (void);
int compruebaLed (void);
} Uno;
void Led::enciendeLed (void)
{
digitalWrite (ledPin, HIGH);
}
void Led::apagaLed (void)
{
digitalWrite (ledPin, LOW);
}
int Led::compruebaLed (void)
{
if (ledPin ==HIGH) return 1;
else return 0;
}
void setup()
{
pinMode (ledPin, 13);
}
void loop()
{
Uno.enciendeLed();
delay(250);
Uno.apagaLed();
delay(250);
}
será inicializada en el constructor. Seguidamente declaramos
los métodos, los cuales vamos a usar para controlar el led en
nuestro Arduino.
Como vemos tenemos 3 posibilidades; Encender, Apagar y Comprobar
Estado del Led.
En este caso trabajamos con el objeto "Uno". Pero en caso de incluir
mas leds, podemos crear mas objetos, ahorrando así un par de líneas
y mejorando nuestro código.
Pd. En este ejemplo no uso el método compruebaLed, pero como se ve,
comprueba el estado del Led con un condicional y retorna 1 en caso
de HIGH y 0 en caso de LOW.
Nunca se instancio Uno. disculpa mi ignorancia esta bien este codigo lo estoy leyendo y esa parte no me queda claro.. por favor si tenes mas ejemplo de POO para arduino te agradeceria mucho ..
ResponderEliminarEntiendo que al igual que en c++ se puede hacer una parte privada de la clase, si eso es asi nunca se programaria una variable global led en poo. Se crearia un atributo privado led de la clase y se crearian los metodos publicos set y get, ya que con esa variable global y ese constructor estamos estropeando la alta cohesion y el bajo acoplamiento que se busca en POO. Veo interesante el ejemplo aunque creo que se deberia explicar que es cada parte en poo y que todo eso no iria en un miamo archivo sino las cabeceras por su lado el cuerpo por el otro...pero por el resto gran ejemplo xa gente q esta aprendiendo!
ResponderEliminar