Go Down

Topic: Pulsador Teensy ++ 2.0 (Read 2071 times) previous topic - next topic

Metaconta

Hola:

Hice un mini código siguiendo los ejemplos encontrado por aquí. Si pulso el botónenciende un Led, si lo dejo de pulsar el Led se apaga.

Code: [Select]

int val = 0;     // variable para leer estado del pulsador

void setup()
{
  pinMode(PIN_D0, OUTPUT);  // configuramos el LED como SALIDA
  pinMode(PIN_B0, INPUT);    // configuramos el pulsador como ENTRADA
}

void loop()
{
  val = digitalRead(PIN_B0);  // leemos el estado del pulsador
  if (val == HIGH)
  {         // verificamos si el valor es alto (HIGH)                         
    digitalWrite(PIN_D0, LOW);  // Apagamos el LED
  }
  else
  {
    digitalWrite(PIN_D0, HIGH); // Encendemos el LED
  }
}


Lo que quiero hacer es otra cosa, por ejemplo, quiero un pulsador, que al pulsarlo y luego soltar el pulsador, el Led quede encendido. Si vuelvo a pulsar y luego lo dejo de pulsar, el Led se apague.

¿Dónde modifico el código para conseguir este objetivo?

Un saludo.

Naruto128

lo que debes hacer es incorporar el tiempo, es decir si pulso por un determinado tiempo, degamos un segundo
este se pone en on,  y si luego preciono de nuevo por el mismo tiempo este se apaga



Metaconta

Hola:

He sacado el código de lo que quiero.
Code: [Select]
int Pulsador = PIN_B0; // Pulsador conectado a GND o masa.
int Led = PIN_D0;      // Led.
int Estado = 0;        // Estado de la variable.
int Estado_Led = 0;    // Estado del led.
int Estado_Anterior = 1; // Inicia Teensy con valor 0, el Led encendido, 1, empieza Led apagado.

void setup()
{
  pinMode(Led, OUTPUT); // Salida para el Led pin 0 del Teensy ++ 2.0.
  pinMode(Pulsador, INPUT); // Entrada del pulsador.
}

void loop()
{
  Estado = digitalRead(Pulsador); // Lee el estado del botón.
 
  if ((Estado == HIGH) && (Estado_Anterior == LOW))
  {
    Estado_Led = 1 - Estado_Led;
    delay(20);
  }
 
  Estado_Anterior = Estado;
 
  if (Estado_Led == 1)
  {
   digitalWrite(Led, HIGH);
  }
  else
  {
  digitalWrite(Led, LOW);
  }
}


No me gusta mucho tanto lío de códigos, seguro que se puede simplificar mejor. Voy a investigar como hacerlo. Cuanto menos código mejor que mejor. También quiero simplificarlo ya que usaré la EEPROM para que se guarde los valores de los estados de los Leds y los recupere al encender Teensy ++ 2.0.

Marcial

Mirate algo asi:

Code: [Select]
int Pulsador = PIN_B0; // Pulsador conectado a GND o masa.
int Led = PIN_D0;      // Led.
boolean Estado;        // Estado de la variable.
boolean Estado_Led = false;    // Estado del led.
boolean Estado_Anterior = false; //

void setup()
{
 pinMode(Led, OUTPUT); // Salida para el Led pin 0 del Teensy ++ 2.0.
 pinMode(Pulsador, INPUT); // Entrada del pulsador.
}

void loop()
{
 Estado = digitalRead(Pulsador); // Lee el estado del botón.
 if (Estado && !Estado_Anterior) // Pulsas por primera vez (paso de low a high)
 {
   Estado_Anterior=true;         // No enta en el if hasta q sueltes el pulsador
   Estado_Led=!Estado_Led;       // De encendido a apagado y viceversa
   digitalWrite(Led, Estado_Led);
 }
 if (!Estado && Estado_Anterior) // Pulsador soltado (paso de high a low)
 {Estado_Anterior=false;}        // Ya permitimos volver a encender o apagar
}


Por cierto, podrías explicarme las 2 primeras lineas que no entiendo que hacen.

Metaconta

#4
Nov 28, 2013, 05:59 pm Last Edit: Nov 28, 2013, 06:03 pm by Metaconta Reason: 1
Hola:

Me funciona tu código y me parece más optimo. Gracias por tu tiempo. ;)

Si te refieres a esta línea:
Code: [Select]
  if ((Estado == HIGH) && (Estado_Anterior == LOW))
  {
    Estado_Led = 1 - Estado_Led;
    delay(20);
  }


Es para que la variable vuelva a 0. el código fucniona como el tuyo, lo que no me gusta es como lo tenía sin optimizar.

Modifiqué algo el tuyo, que empezaba con el Led encendido y ahora empieza apagado como quiero, a parte de ponerle un antirrebotes.

Code: [Select]
int Pulsador = PIN_B0;            // Pulsador conectado a GND o masa.
int Led = PIN_D0;                 // Led.
boolean Estado;                   // Estado de la variable.
boolean Estado_Led = true;        // Estado del led. Par que inicie el LEd apagado.
boolean Estado_Anterior = false;  //

void setup()
{
  pinMode(Led, OUTPUT);           // Salida para el Led pin 0 del Teensy ++ 2.0.
  pinMode(Pulsador, INPUT);       // Entrada del pulsador.
}

void loop()
{
  Estado = digitalRead(Pulsador); // Lee el estado del botón.
  delay(20);                      // Antirebotes.
  if (Estado && !Estado_Anterior) // Pulsas por primera vez (paso de low a high).
  {
    Estado_Anterior=true;         // No enta en el if hasta q sueltes el pulsador
    Estado_Led=!Estado_Led;       // De encendido a apagado y viceversa
    digitalWrite(Led, Estado_Led);
  }
  if (!Estado && Estado_Anterior) // Pulsador soltado (paso de high a low)
  {Estado_Anterior=false;}        // Ya permitimos volver a encender o apagar
}


Otro mini reto.
No se si arduino será capaz de programarlo, me da la impresión que si.

Por ejemplo a pasos:
Tengo un Led a su salida en PIN_D0 y un ventilador cooler en su otra salida PIN_D1 y un botón como entrada PIN_B0. Lo que tiene que hacer es lo siguiente. Cuando pulse el botón PIN_B0, se activa el Led PIN_D0 y el ventilador PIN_D1. Eso es lo primero, ahora mira después del vídeo los pasos necesarios para poder hacer una cosa.
El ejemplo que puse en el vídeo no hace lo que quiero porque solo tenía la finalizadad en ese momento en ser capaz de encender y apagar un led y ventilador  cada uno con su pulsador.

Ver vídeo. (Este vídeo no tiene nada que ver con lo que haremos ahora, es solo para dar ideas).
Quote

1) El Led empieza apagado cuando encienes Arduino.
2) Pulso el botón PIN_B0 y se enciende el Led PIN_D0 y ventilador PIN_D1.
3) Si vuelvo a pulsar el botón PIN_B0, el Led PIN_D0 parapadea cada segundo y el ventilador PIN_D1 se detiene. (1 seg. en on y otro seg. en off),
4) Vuelvo a pulsar el botón PIN_B0, el Led PIN_D0 deja de parpadear y queda encendido en ventilador PIN_D1 fijamente.
5) Cada vez que pulso el botón PIN_B0, ocurre siempre lo indicado arriba exceptuando cuando lo dejas pulsado durante 3 seg.
6) Esté en el estado que esté el Led y ventilador encendido o apagado, si dejas pulsado el botón PIN_B0 durante 3 seg. Se apaga el Led y se detiene el ventilador. (Es como cancelar un programa).


¿Se entiende lo que quiero decir?
Puedes hacer preguntas.

El programa parece que es muy complejo y laaaarrrrrrrrrgo. ;)

Marcial

Esta sin comprobar, pero te puede dar una idea

Code: [Select]
byte Pulsador  =PIN_B0; // Pulsador conectado a GND o masa.
byte Led       =PIN_D0; // Led.
byte Ventilador=PIN_D1; //

boolean Estado_Pulsador;
boolean Estado_Anterior = false;

boolean Led_Encendido=false;

byte Secuencia = 0;    // Para manejar la secuencia de salidas

unsigned long Parpadeo=1000;  // Tiempo de parpadeo de led
unsigned long T_Anterior=0;   // Auxiliar para controlar tiempo de parpadeo

unsigned long T_Apagar=3000;  // Tiempo a pulsar para apagar
unsigned long T_Pulsado=0;    // Auxiliar para controlar tiempo de boton pulsado

void setup()
{
  pinMode(Pulsador, INPUT);       
  pinMode(Led, OUTPUT);         
  pinMode(Ventilador, OUTPUT);
  digitalWrite(Led, LOW);
  digitalWrite(Ventilador, LOW);
}

void loop()
{
  Estado_Pulsador = digitalRead(Pulsador); // Lee el estado del botón.
  if (Estado_Pulsador && !Estado_Anterior) // paso de low a high
  {
    T_Pulsado=millis()+T_Apagar;           // Tiempo para apagar
    Estado_Anterior=true;                  // No enta en el if hasta q sueltes el pulsador
    Secuencia++;                           // Pasamos a siguiente secuencia
    if (Secuencia>3){Secuencia=1;}
  }
  if (!Estado_Pulsador && Estado_Anterior) // paso de high a low
  {
    Estado_Anterior=false;
    T_Pulsado=0;                           // al soltar pulsador ya no controlamos el tiempo
  }
  if (T_Pulsado>0 && Estado_Pulsador && millis()>T_Pulsado)  // Fin secuencia
  {
    digitalWrite(Led, LOW);
    digitalWrite(Ventilador, LOW);
    T_Pulsado=0;
    Secuencia=0;
    Led_Encendido=false;
    delay(2000);
  }
  switch (Secuencia)
  {
    case 1:  // Pulsamos por 1ª vez, encender todo
      digitalWrite(Led, HIGH);
      digitalWrite(Ventilador, HIGH);
      Led_Encendido=true;      // Para poder iniciar maniobra de parpadeo
      break;
    case 2:  // Pulsamos por 2ª vez, led parpadea y ventilador se detiene
      if (Led_Encendido && millis()>T_Anterior)    // Led encendido y finalizo tiempo de encendido
      {
        T_Anterior=millis() + Parpadeo;           // Tiempo a esperar para encender de nuevo
        Led_Encendido=false;
        digitalWrite(Led, LOW);
      }
      if (!Led_Encendido && millis()>T_Anterior)  // Led apagado y finalizo tiempo espera
      {
        T_Anterior=millis() + Parpadeo;           // Tiempo a esperar para apagar de nuevo
        Led_Encendido=true;
        digitalWrite(Led, HIGH);
      }
      digitalWrite(Ventilador, LOW);
      break;
    case 3:  // Pulsamos por 3ª vez, led deja parpadear (encendido o apagado?) y ventilador enciende
      //digitalWrite(Led, HIGH o LOW);
      digitalWrite(Ventilador, HIGH);
      break;
  }
}

Metaconta

#6
Nov 29, 2013, 12:50 am Last Edit: Nov 29, 2013, 12:59 am by Metaconta Reason: 1
Buenas:

Hace efectos no deseados. En resumen.
El programa se comporta:
1- Nada más activar Teensy ++ 2.0 se enciende por un seg. Led y ventilador.
2- Cuando pase ese segundo se apaga todo.
3- Al pulsar el botón, se enciende Led y ventilador durante 3 seg.
4- y más efectos no deseados.

El ideal sería así:
1) El pulsador lo pulsas una vez y al soltarlo (no dejar pulsador pulsado) como un botón normal, enciende el Led fijo y el ventilador.
2) Si vuelvo a pulsar el botón, se apaga el ventilador pero el Led hace un parpadeo siempre a 1 seg o 1000 ms.
3) Si vuelves a pulsar el botón, ocurre el paso 1).
4) Si vuelves a pulsar, sigue ahora el paso 2).
5) Así siempre.

Hasta aquí el código es este para que se entienda lo dicho arriba:
Code: [Select]
int Pulsador = PIN_B0;            // Pulsador conectado a GND o masa.
int Led = PIN_D0;                 // Led.
boolean Estado;                   // Estado de la variable.
boolean Estado_Led = true;        // Estado del led. Par que inicie el LEd apagado.
boolean Estado_Anterior = false;  //

void setup()
{
 pinMode(Led, OUTPUT);           // Salida para el Led pin 0 del Teensy ++ 2.0.
 pinMode(Pulsador, INPUT);       // Entrada del pulsador.
}

void loop()
{
 Estado = digitalRead(Pulsador); // Lee el estado del botón.
 delay(20);                      // Antirebotes.
 if (Estado && !Estado_Anterior) // Pulsas por primera vez (paso de low a high).
 {
   Estado_Anterior=true;         // No enta en el if hasta q sueltes el pulsador
   Estado_Led =! Estado_Led;     // De encendido a apagado y viceversa
   digitalWrite(Led, Estado_Led);
 }
 if (!Estado && Estado_Anterior) // Pulsador soltado (paso de high a low)
 {Estado_Anterior = false;}      // Ya permitimos volver a encender o apagar
}


La función nueva es:
Da igual el estado del Led y el ventilador si está apagado o encendido en este momento. En este momento se deja pulsado el botón durante 3 segundos y ahí es cuando todo se detiene, tanto el Led como el ventilador. Lo que se le conoce como cancelar el programa.

Espero haberme explicado bien. ;)
Aún así sigo analizando el código a ver si encuentro ideas...

Gracias por tu tiempo, mi muy distinguido amigo. :)

Marcial

Code: [Select]
byte Pulsador  =PIN_B0; // Pines usados
byte Led       =PIN_D0;
byte Ventilador=PIN_D1; 

#define ON HIGH       
#define OF LOW

boolean Estado_Pulsador;
boolean Estado_Anterior = false;

boolean Led_Encendido=false;
boolean Ven_Encendido=false;

byte Secuencia = 0;            // Para manejar la secuencia de salidas

unsigned long Parpadeo=1000;  // Tiempo de parpadeo de led
unsigned long T_Anterior=0;   // Auxiliar para controlar tiempo de parpadeo

unsigned long T_Apagar=3000;  // Tiempo a pulsar para apagar
unsigned long T_Pulsado=0;    // Auxiliar para controlar tiempo de boton pulsado

void setup()
{
  pinMode(Pulsador, INPUT);       
  pinMode(Led, OUTPUT);         
  pinMode(Ventilador, OUTPUT);
  digitalWrite(Led, OF);
  digitalWrite(Ventilador, OF);
}

void loop()
{
  Estado_Pulsador = digitalRead(Pulsador); // Lee el estado del botón.
 
  if (Estado_Pulsador && !Estado_Anterior) // Pulsador pasa de low a high
  {
    T_Pulsado=millis()+T_Apagar;           // Para controlar el timpo que pasa pulsado
    Estado_Anterior=true;                  // No enta en el if hasta q pulsador pase de high a low
    Secuencia++;                           // Pasamos a siguiente secuencia
  }
 
  if (!Estado_Pulsador && Estado_Anterior) // Pulsador pasa de high a low
  {
    Estado_Anterior=false;                 // No enta en el if hasta q pulsador pase de low a high
    T_Pulsado=0;                           // Al soltar pulsador ya no controlamos el tiempo
  }
 
  if (T_Pulsado>0 && Estado_Pulsador && millis()>T_Pulsado) 
  {                                        // Hay tiempo cargado para controlar el fin y pulsador en high y ha transcurrido el tiempo del pulsador activo
    T_Pulsado=0;                           // Ya no controlamos timepo de pulsado
    Secuencia=0;                           // Secuencia 0, todo apagado
  } 
 
  if (Secuencia==0)                        // Todo apagado
  {
    Led_Encendido=false;
    Ven_Encendido=false;
    T_Anterior=0;                          // Para que pueda funcionar el parpadeo de nuevo
  }
  else if (Secuencia==1)                   // Pulsamos por 1ª vez, todo encendido
    {
      Led_Encendido=true;
      Ven_Encendido=true;
    }
    else if (Secuencia==2)                 // Pulsamos por 2ª vez, Apaga ventilador y led parpadea
      {
        Ven_Encendido=false;       
        if (millis()>T_Anterior)           // Tiempo parpadeo finalizado
        {
          T_Anterior=millis() + Parpadeo;// Tiempo a esperar para siguiente parpadeo
          Led_Encendido=!Led_Encendido;  // de encendido a apagado y viceversa
        }           
      }
      else {Secuencia=1; }   

  if (Led_Encendido) {digitalWrite(Led, ON);} else {digitalWrite(Led, OF);}
  if (Ven_Encendido) {digitalWrite(Ventilador, ON);} else {digitalWrite(Ventilador, OF);}   
}


:)

Metaconta

Buenas:

No funciona. Desde que pulse el botón, se queda el Led y ventilador encendido durante 3 seg. y después se apaga todo. Si lo pulso otra vez, ocurre lo mismo así siempre.

Tratar un botón así tiene su mundo. ;)

Un saludo.

Marcial

voy a montar el circuito para ver q pasa

Marcial

]:)

Lo he probado, y a mi me va perfectamente.

una cuestión, enciendes con low o con high?
Si enciendes con low cambia

#define ON HIGH       
#define OF LOW

por

#define OF HIGH       
#define ON LOW

y me dices.

Metaconta

Pues no, no funciona.

Ese ON se pone verde, si pongo OF que se ve negro a OFF, se ve verde como el ON. Tampoco tiene nada que ver. Ahora puse ON en ONN para que esté negro por si acaso.

Edito:
Me he dado cuenta el motivo. Digamos que pulso el botón al contrario como debería hacer, lo que hago es, Dejar el botón pulsado antes de encender Teensy, y lo dejo de pulsar para luego dejar pulsado, funciona de maravilla. Tampoco voy a estar con el dedo pegado todo el día. ;)

Para hacer el efecto contrario hice lo que dijiste arriba el ON por el OF haber que pasa. Tiene comportamiento no deseado.

¿Cómo tienes conectado físicamente el botones de entrada?



El que tengo es la imagen de la izquierda, parece ser el que usas es el de la derecha. Lo del cambiar el ON a OF y al revés no funciona como quiero.

Poco a poco se ven los motivos. ;)

Gracias de nuevo.

Marcial

Yo el circuito lo monte  con pull down

El programa busca cambios de low a high, asi que actua al pulsar, no al soltar. Y no necesita mantener pulsado.

ON y OF son variable, no se van aponer verdes, las uso para activar los reles. Dependiendo del circuito de los reles, tienes que dejar sus valores asi o intercambiarlos, podrias indicarme como tienes el circuito que enciende el led y el ventilador?

Si encienden con high, estan bien, si encienden con low estan al reves.

Un saludo

Metaconta

Hola Señor:

Me he pegado este tiempo averiguandopra no molestarte mucho, y muy agradecido que estoy porque estoy entendiendo arduino gracias a ti a y a muchos de aquí. ;)

He cambiado lo que dices pero no me sale.

Code: [Select]
byte Pulsador  =PIN_B0; // Pines usados
byte Led       =PIN_D0;
byte Ventilador=PIN_D1; 

//#define ON HIGH       
//#define OF LOW

boolean Estado_Pulsador;
boolean Estado_Anterior = false;

boolean Led_Encendido=false;
boolean Ven_Encendido=false;

byte Secuencia = 0;            // Para manejar la secuencia de salidas

unsigned long Parpadeo=1000;  // Tiempo de parpadeo de led
unsigned long T_Anterior=0;   // Auxiliar para controlar tiempo de parpadeo

unsigned long T_Apagar=3000;  // Tiempo a pulsar para apagar
unsigned long T_Pulsado=0;    // Auxiliar para controlar tiempo de boton pulsado

void setup()
{
  pinMode(Pulsador, INPUT);       
  pinMode(Led, OUTPUT);         
  pinMode(Ventilador, OUTPUT);
  digitalWrite(Led, LOW);
  digitalWrite(Ventilador, LOW);
}

void loop()
{
  Estado_Pulsador = digitalRead(Pulsador); // Lee el estado del botón.
  delay(20);
  if (Estado_Pulsador && !Estado_Anterior) // Pulsador pasa de low a high
  {
    T_Pulsado=millis()+T_Apagar;           // Para controlar el timpo que pasa pulsado
    Estado_Anterior=true;                  // No enta en el if hasta q pulsador pase de high a low
    Secuencia++;                           // Pasamos a siguiente secuencia
  }
 
  if (!Estado_Pulsador && Estado_Anterior) // Pulsador pasa de high a low
  {
    Estado_Anterior=false;                 // No enta en el if hasta q pulsador pase de low a high
    T_Pulsado=0;                           // Al soltar pulsador ya no controlamos el tiempo
  }
 
  if (T_Pulsado>0 && Estado_Pulsador && millis()>T_Pulsado) 
  {                                        // Hay tiempo cargado para controlar el fin y pulsador en high y ha transcurrido el tiempo del pulsador activo
    T_Pulsado=0;                           // Ya no controlamos timepo de pulsado
    Secuencia=0;                           // Secuencia 0, todo apagado
  } 
 
  if (Secuencia==0)                        // Todo apagado
  {
    Led_Encendido=false;
    Ven_Encendido=false;
    T_Anterior=0;                          // Para que pueda funcionar el parpadeo de nuevo
  }
  else if (Secuencia==1)                   // Pulsamos por 1ª vez, todo encendido
    {
      Led_Encendido=true;
      Ven_Encendido=true;
    }
    else if (Secuencia==2)                 // Pulsamos por 2ª vez, Apaga ventilador y led parpadea
      {
        Ven_Encendido=false;       
        if (millis()>T_Anterior)           // Tiempo parpadeo finalizado
        {
          T_Anterior=millis() + Parpadeo;// Tiempo a esperar para siguiente parpadeo
          Led_Encendido=!Led_Encendido;  // de encendido a apagado y viceversa
        }           
      }
      else
    {
      Secuencia=1;
    }   

  if (Led_Encendido)
{
  digitalWrite(Led, HIGH);
}
  else
{
  digitalWrite(Led, LOW);
}
  if (Ven_Encendido)
  {
    digitalWrite(Ventilador, HIGH);
  }
    else
  {
    digitalWrite(Ventilador, LOW);
  }   
}


Algo pasa.

Marcial

En este mundo señor es cualquiera  :P

No molestas en absoluto, si así fuera te lo haría saver  :)

He montado el circuito por segunda vez, jeje

Este es el código que tengo cargado:
Code: [Select]
byte Pulsador  =23; // Pines usados
byte Led       =25;
byte Ventilador=27; 

#define ON HIGH       
#define OF LOW

boolean Estado_Pulsador;
boolean Estado_Anterior = false;

boolean Led_Encendido=false;
boolean Ven_Encendido=false;

byte Secuencia = 0;            // Para manejar la secuencia de salidas

unsigned long Parpadeo=1000;  // Tiempo de parpadeo de led
unsigned long T_Anterior=0;   // Auxiliar para controlar tiempo de parpadeo

unsigned long T_Apagar=3000;  // Tiempo a pulsar para apagar
unsigned long T_Pulsado=0;    // Auxiliar para controlar tiempo de boton pulsado

void setup()
{
  pinMode(Pulsador, INPUT);       
  pinMode(Led, OUTPUT);         
  pinMode(Ventilador, OUTPUT);
  digitalWrite(Led, OF);
  digitalWrite(Ventilador, OF);
}

void loop()
{
  Estado_Pulsador = digitalRead(Pulsador); // Lee el estado del botón.
 
  if (Estado_Pulsador && !Estado_Anterior) // Pulsador pasa de low a high
  {
    T_Pulsado=millis()+T_Apagar;           // Para controlar el timpo que pasa pulsado
    Estado_Anterior=true;                  // No enta en el if hasta q pulsador pase de high a low
    Secuencia++;                           // Pasamos a siguiente secuencia
  }
 
  if (!Estado_Pulsador && Estado_Anterior) // Pulsador pasa de high a low
  {
    Estado_Anterior=false;                 // No enta en el if hasta q pulsador pase de low a high
    T_Pulsado=0;                           // Al soltar pulsador ya no controlamos el tiempo
  }
 
  if (T_Pulsado>0 && Estado_Pulsador && millis()>T_Pulsado) 
  {                                        // Hay tiempo cargado para controlar el fin y pulsador en high y ha transcurrido el tiempo del pulsador activo
    T_Pulsado=0;                           // Ya no controlamos timepo de pulsado
    Secuencia=0;                           // Secuencia 0, todo apagado
  } 
 
  if (Secuencia==0)                        // Todo apagado
  {
    Led_Encendido=false;
    Ven_Encendido=false;
    T_Anterior=0;                          // Para que pueda funcionar el parpadeo de nuevo
  }
  else if (Secuencia==1)                   // Pulsamos por 1ª vez, todo encendido
    {
      Led_Encendido=true;
      Ven_Encendido=true;
    }
    else if (Secuencia==2)                 // Pulsamos por 2ª vez, Apaga ventilador y led parpadea
      {
        Ven_Encendido=false;       
        if (millis()>T_Anterior)           // Tiempo parpadeo finalizado
        {
          T_Anterior=millis() + Parpadeo;// Tiempo a esperar para siguiente parpadeo
          Led_Encendido=!Led_Encendido;  // de encendido a apagado y viceversa
        }           
      }
      else {Secuencia=1; }   

  if (Led_Encendido) {digitalWrite(Led, ON);} else {digitalWrite(Led, OF);}
  if (Ven_Encendido) {digitalWrite(Ventilador, ON);} else {digitalWrite(Ventilador, OF);}   
}


como podrás ver, solo cambian los identificadores de los pines, tengo el circuito conectado a un mega

https://www.dropbox.com/s/azg3luh3e6lsr3v/2013-12-03%2011.27.23.jpg

led rojo para el led y el amarillo para el ventilador, mira el circuito a ver si descubres algo. (no protestes por los colores de las conexiones, son los que hay jejeje)

Go Up