TERMINADO

Hola amigos, me surgen algunas dudas y me gustaría saber si me pueden ayudar:

Estoy trabajando con un sensor de obstáculo que me envía una señal a arduino (1 o 0) cuando detecta algo, el tema es que quiero enviar es señal a un interfaz de usuario que me muestre en un cuadro un color rojo si esta detectando, o verde si esta sin detectar (eso es trabajo que asigno en el interfaz), ademas quiero enviar esa señal de salida desde el arduino al interfaz, solo si el sensor me detecta por unos "x" segundos un obstaculo, se que debo configurar un contador pero no se como hacerlo. Ademas me surge la duda sobre si debo usar otro pin de salida para enviar esta señal ya trabajada con el contador.

Por favor ayuda y muchas gracias

¿Cuál sería tu interfaz en este caso, dos led, una pantalla LCD, un celular, etc?

Y cual es la pregunta? El timer? usa millis() Por lo demás muy confusa tu explicación.

mi interfaz es creada en labview y mostrada en una pantalla lcd, quiero crear un timer que me marque unos 15 segundos, como puedo hacerlo?? este es mi programación…

#include <infrarrojo.h>

infrarrojo estado(13);//DEFINICION DEL PIN DEL ARDUINO A USAR
int VALOR;//VARIBLE QUE RECIBE EL DATO
int led =12;//REDEFINICION DE PIN DE ARDUINO PARA LED INDICADOR DE PULSO(ESTO ES OPCIONAL)
int led_estado;//VARIABLE

//CONFIGURACION DE SETUP
void setup() {
pinMode(led,OUTPUT);//LED QUE INDICA EL ESTADO DEL LED
Serial.begin(9600); //VELOCIDAD COMUNICACION SERIAL
}
//CODIGO PRINCIPAL
void loop() {
Serial.print("\n leyendo estado sensor: \n");//IMPRIME MENSAJE EN PC
Serial.print(estado.lectura(VALOR));//IMPRIME EL ESTADO DEL Vo DEL SENSOR MEDIANTE LA VARIABLE VALOR
led_estado = estado.lectura(VALOR);//LED QUE RECOGE EL ESTADO DEL SENSOR
if(led_estado == 1)//ETAPA DE COMPARACION PARA ACTIVAR UN LED SEGUN EL ESTADO DEL SENSOR
{
digitalWrite(led,HIGH);//PRENDE UN LED SI EL SENSOR DETECTA OBSTACULO
}
else
{
digitalWrite(led,LOW);
}
delay(400);//GENERA UN TIEMPO PARA LEER E IMPRIMIR EN PUERTO SERIE

}

Como te dije antes, usa millis()

Defines el Delay como una constante

#define DEMORA 15000 // en milisegundos o sea 15 x 1000 = 15000 mseg

creas una variable

unsigned long retardo = 0;

luego en algun sitio que genere el comienzo del timer inicializas

 retardo = millis(); // ojo no lo pongas en el loop para que se ejecuta cada vez, 
                           // sino dentro del evento que da inicio al retardo
 if (millis() - retardo > DEMORA) {
    // aca se superaron los 15 segundos asi que haces o llamas a la tarea que necesites.
    // si quieres hacer algo dentro de los 15 segndos de iniciado el evento entocnes le pones < en 
   // lugar de mayor al if
 
 }

gracias lo probare :D y les aviso¡¡¡¡

Fabian1 la verdad no comprendo lo que estas haciendo. Tenes al menos 2 o mas Temas similares.

No leiste las reglas del FORO. Este mismo código esta posteado en dos temas iguales por elsensor de obstáculos.

No se puede abrir dos Post del mismo tema.

ok disculpa....ahora ya tengo listo el contador, muchas gracias, por la ayuda. Pero ahora me surge la duda que postee en el otro "doble" post, ¿COMO PUEDO PROGRAMAR DOS SENSORES DE OBSTÁCULO? seria algo así?:

int inPin11 = 11; int value11 = 0; int inPin12 = 12; int value12 = 0;

void setup(){ Serial.begin(9600); pinMode(inPin11,INPUT); pinMode(inPin12,INPUT);

}

void loop(){

value11= digitalRead(inPin11); value12= digitalRead(inPin12);

Serial.println("int value11"); Serial.println("int value12"); delay(500);

}

Ojala este algo bien :roll_eyes:

Seria con software serial como he estado leyendo?? Por favor ayuda urgente¡¡¡

cierren el tema no fueron de ayuda, sorry pero es la verdad

Fabian, los temas hay que seguirlos y mostrar el progreso y expresar bien lo que se busca.
Si vos dejas de hablar el dia 22 de noviembre hasta hoy poco podemos hacer.
Los temas se mueven en función del empuje que le demos.
Solo tu puedes ponerle TERMINADO O SIN SOLUCION.

Si te volvieras a explicar tal vez encuentres mmotivación en los demás para ayudarte y ser ayudado.

como lo cierro?? NO se hacerlo, gracias

ve a tu primero mensaje y edita el titulo con un mensaje como TERMINADO o SIN SOLUCION