Show Posts
Pages: 1 ... 41 42 [43] 44 45 ... 49
631  International / Español / Re: Ayuda a Principiante !!! on: May 02, 2011, 11:48:15 pm
Hola Gatoloco65
Ahí va otro código para parpadear un LED sin delay, a ver si te sirve.
Code:
/*
Parpadeo de LED con un tiempo de encendido (TIEMPO_ON) y otro de apagado (TIEMPO_OFF).
El resto de dividir millis() entre la suma de los dos tiempos
se reparte entre el encendido y el apagado.
(NOTA: en la IDE de Arduino no puedo escribir con acentos, es normal eso?)
*/

int led2 = 9;

#define TIEMPO2_ON  3000L
#define TIEMPO2_OFF 1000L


void loop()
{
   if ( (millis() % (TIEMPO2_ON + TIEMPO2_OFF)) < TIEMPO2_ON)
   {
       digitalWrite(led2,HIGH);
   }
   if ( (millis() % (TIEMPO2_ON + TIEMPO2_OFF)) >= TIEMPO2_ON)
   {
       digitalWrite(led2,LOW);
   }
}

632  International / Español / Re: Ayuda a Principiante !!! on: May 02, 2011, 10:40:31 pm
Hola, Gatoloco65
yo intentaría resolver primero sin delay lo que se refiere al pulsador, luego intentaría resolver del mismo modo el led intermitente, y finalmente juntar los dos códigos.
Para el pulsador, prueba este código ( lo que está comentado se refiere al puerto serie que he usado para depurar, porque no tengo puesto el pulsador)
Code:
int led4 = 8;
int pulsador = 2;
unsigned long  m4;
#define PAUSA4 5000L

void setup()
{
  // Serial.begin(9600);
  m4 = 0L;
}

void loop()
{
   if (digitalRead(pulsador)==HIGH  /* || ( Serial.available() && Serial.read() == 'a') */ )
   {
        digitalWrite(led4,HIGH);
        m4 = millis(); 
        // Serial.println("4");
   }
   if(m4)
   {
      if(millis() - m4 > PAUSA4)
      {
         digitalWrite(led4,LOW);
         // Serial.println("0");   
         m4 = 0L;
      }
   }
}

633  International / Español / Re: Ayuda a Principiante !!! on: May 02, 2011, 09:53:44 am
Hola,
cuando usas delay(5000) le estás a diciendo al arduino que se pare y no haga nada durante 5 segundos. Yo creo que no tienes que usar delay. Tendrías que contar milisegundos al encender el led4, seguir el ciclo y comprobar a intervalos cuándo pasan los 5000, y entonces apagarlo.
634  International / Español / Re: Proyecto: Detectar si la puerta garaje está abierta on: May 02, 2011, 09:42:56 am
Hola,
en el garaje en vez de "arduino+transmisor wifi" podrías usar simplemente un módulo xbee, que dispone de entradas digitales a las que puedes conectar sensores.
http://www.sparkfun.com/products/10414

635  International / Español / Re: Ayuda con GET en web server on: April 30, 2011, 10:46:34 pm
Hola,
en el foro antiguo tienes este tema Parse incoming HTTP GET data
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1288750919



636  International / Español / Re: uSD Ethernet Shield on: April 29, 2011, 11:51:25 pm

Hola,
En la documentación de  "SdFat library" dice "The SdFat library only supports short 8.3 names"
Solo puedes usar 8 caracteres como máximo en el nombre, y tres en la extensión. La limitación de "nombre corto" debe venir asociada al sistema mismo de archivos FAT.
637  International / Español / Re: Ayuda a Principiante !!! on: April 25, 2011, 08:33:46 am
Dos cosas:
- tienes un punto y coma al final del if(), que estropea la sentencia
- la comprobación yo la haría así: if (digitalRead(Pulsador) == HIGH), porque a digitalRead() le tienes que pasar el pin que debe leer
638  International / Español / Re: Mensajes personales contestados on: April 25, 2011, 08:17:53 am
Gracias coLe
Seré más cuidadoso en adelante.
639  International / Español / Mensajes personales contestados on: April 25, 2011, 01:55:40 am
Hola,
tengo una duda con los mensajes personales de este foro: en "Inbox" me aparecen los mensajes recibidos, y en los que he contestado pone «You have forwarded or responded to this message. » Pero "Outbox" está vacío, y no sé dónde puedo ver los mensajes que he contestado. ¿No se conservan?

Gracias


640  International / Español / Re: alarma on: April 24, 2011, 02:03:26 pm
A eso me refería en el post anterior: si pones un programa en el PC que se comunique por el puerto serie con arduino, el programa del PC puede enviar el sms  a tu móvil.
El esquema sería: cuando el arduino detecta un intruso, enviaría un mensaje al puerto serie, "intruso" o lo que sea. Cuando el programa del PC recibe ese mensaje, envía un sms a tu móvil. Ventaja: no te hace falta ningún móvil viejo. Desventaja: tienes que tener un PC encendido y conectado a Internet.
641  International / Español / Re: alarma on: April 24, 2011, 01:08:41 pm
Hola tazma
En tu primer post mencionas un pc. Si tienes el arduino comunicándose con un pc conectado a internet, puedes enviar un sms desde el pc, usando la cuenta de tu móvil. Yo lo hago con una función php. En realidad envío un sms desde mi número a mi número (movistar)
642  International / Español / Re: AYUDA CON RFID Y DISTANCIA MINIMA on: April 23, 2011, 11:27:22 pm
Hola,
los TAG pasivos (sin pilas) tienen un chip que funciona con la energía inducida en su antena cuando reciben una señal del emisor RFID (igual que la antigua radio de galena!) Con esa pequeñísima energía emiten la respuesta. Creo que esa es la razón de que la distancia tenga que ser tan pequeña. Para mayores distancias, debe de haber TAGs activos.
643  International / Español / Re: Ayuda a Principiante !!! on: April 23, 2011, 10:55:20 pm
Hola Gatoloco65,
todo lo que se ejecuta cuando haces la comprobación if() tienes que ponerlo entre llaves,
 if(digitalRead(Pulsador) == HIGH)
{
   ...
}
en caso contrario se te ejecutará siempre, independientemente de la comprobación. También he cambiado la forma de hacer la comprobación, a digitalRead  le paso el pin donde tiene que leer, y la función devuelve HIGH ó LOW
Code:
void Inicia()
{
    if (digitalRead(Pulsador) == HIGH)   //Pulsador oprimido
     {
        digitalWrite(Led4,HIGH); //Enciende el LED
        delay(5000);
        digitalWrite(Led4,LOW); //apaga el Led para esperar a que sea oprimido nueva/.el pulsador
     }
 }

Cuando llamas a attachInterrupt() utilizas el 'mode' CHANGE, que actúa tanto cuando pasa de LOW a HIGH, como cuando lo hace de HIGH a LOW
Puedes probar el modo RISING, que actúa solo cuando pasa de LOW a HIGH

644  International / Español / Re: Ayuda a Principiante !!! on: April 21, 2011, 11:28:12 pm
Hola,

todo lo que está en loop() se ejecuta secuencialmente una y otra vez, y la comprobación del pulsador tiene que esperar a pasar todos los delay() en cada ciclo. Una forma de esperar menos, sería hacer la comprobación después de cada delay, la podrías formular como una pequeña función
Code:
comprobar_pulsador()
{
    if (digitalRead(Pulsador)==HIGH) //Pulsador oprimido
    {
         digitalWrite(Led4,HIGH); //Enciende el LED
         delay (3000);  //Tiempo Prendido
         digitalWrite(Led4,LOW); //Apaga el LED
    }
}

Si necesitas una respuesta más rápida para el pulsador, puedes usar las interrupciones, tendrás dos por lo menos en los digital 2 y 3, attachInterrupt() llama a una función cuando ocurre algo. Tienes un ejemplo en http://arduino.cc/en/Reference/AttachInterrupt



645  International / Español / Re: Desbordamiento y millis() on: April 13, 2011, 05:31:18 am

Hola,
En la referencia de Arduino sobre millis() dice que devuelve un unsigned long, y que a los 50 días más o menos empieza de cero. La variable unsigned long puede llegar hasta unos 4 Gigas, que son los milisegundos que hay en 50 días, más o menos.
Pages: 1 ... 41 42 [43] 44 45 ... 49