Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Este Código Abstrae un Led como objeto y permite realizar un blink(sin utilizar delay()) en diferentes tiempos para diferentes Leds
- */
- class Led
- {
- public:
- Led();
- Led(byte, byte);
- virtual ~Led();
- // Metodos
- void encender();
- void apagar();
- void estrobo(int);
- void setTiempoActual(long);
- void setTiempoAnterior(long);
- void setEstado(bool);
- long getTiempoActual();
- long getTiempoAnterior();
- bool getEstado();
- private:
- byte pin;
- byte val;
- long tiempoAnterior, tiempoActual;
- bool estado = true;
- };
- Led::Led(){
- }
- Led::Led(byte _pin, byte _val=255){
- pin = _pin;
- val = _val;
- pinMode(_pin, OUTPUT);
- }
- Led::~Led(){
- }
- void Led::encender(){
- digitalWrite(pin,HIGH);
- }
- void Led::apagar(){
- digitalWrite(pin,LOW);
- }
- void Led::setTiempoAnterior(long _tiempoAnterior){
- tiempoAnterior = _tiempoAnterior;
- }
- void Led::setTiempoActual(long _tiempoActual){
- tiempoActual = _tiempoActual;
- }
- void Led::setEstado(bool _estado){
- estado = _estado;
- }
- long Led::getTiempoAnterior(){
- return tiempoAnterior;
- }
- long Led::getTiempoActual(){
- return tiempoActual;
- }
- bool Led::getEstado(){
- return estado;
- }
- void Led::estrobo(int tiempo){
- if(Led::getTiempoActual() - Led::getTiempoAnterior() >= tiempo){
- Led::setEstado(!Led::getEstado());
- Led::setTiempoAnterior(tiempoActual);
- digitalWrite(pin, Led::getEstado());
- }
- }
- Led led1(4);
- Led led2(5);
- void setup() {
- led1.setTiempoAnterior(millis());
- led2.setTiempoAnterior(millis());
- }
- void loop() {
- led1.setTiempoActual(millis());
- led2.setTiempoActual(millis());
- led1.estrobo(1000);
- led2.estrobo(500);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement