Hola, soy nuevo en esto de programación, lo que necesito es que me den una idea de como hacer para encender un ventilador despues de un determinado tiempo de haberse obstuido una fotoresistencia, es decir que no encienda de inmediato, sino que despues de unos 5 segundos se active. Aqui les adjunto la programación que llevo hasta ahora para ver si me pueden ayudar a lograr esa nueva función.
//libreria para utilizar el servomotor
#include <Servo.h>
//variable que recibira la orden de java
//int input;
//variable de tipo servo
Servo miservito;
// Pin analogico de entrada para el LDR
int pinLDR = A0;
// Variable donde se almacena el valor del LDR
int valorLDR = 0;
void setup() {
miservito.attach(2);
Serial.begin(9600);
}
void loop() {
miservito.write(0);
valorLDR= analogRead(pinLDR);
if(valorLDR < 600){
// movemos el servo
miservito.write(90);
delay(500);
}
else {
// movemos el servo
miservito.write(0);
delay(50);
}
}
Hola MarioMM,
lo que necesitas es un timer que haga un retardo de 5 segundos antes de activar el motor.
Échale un ojo a esto ahí te explica bien como programar un TIMER y su base para que lo entiendas bien primero antes de meterte con ello.
También puedes utilizar la función millis, que no deja de ser otro timer, échale un ojo aquí
Un saludo!
Es que lo que necesito es que despues de activarse el motor, El ventilador encienda 5 segundos despues de que esto pase. No quiero que se adelante sino que se retrase, porque lo que estoy diseñando es un sensor con una fotoresistencia, entonces ocupo que cuando se obstruya la fotoresistencia se mueva el servo hacia una direccion y que ademas encienda el ventilador despues de que hayan pasado 5 segundos de que se haya obstruido.
MarioMM:
Es que lo que necesito es que despues de activarse el motor, El ventilador encienda 5 segundos despues de que esto pase. No quiero que se adelante sino que se retrase, porque lo que estoy diseñando es un sensor con una fotoresistencia, entonces ocupo que cuando se obstruya la fotoresistencia se mueva el servo hacia una direccion y que ademas encienda el ventilador despues de que hayan pasado 5 segundos de que se haya obstruido.
unsigned long time;
unsigned long Atime;
void setup(){
Atime=0;
}
void loop(){
time = millis();
if( motor=activo )
{
timeA= millis();
while( (millis()- timeA) < 5000 )
encenderventilador();
}
timeA=time;
}
algo asi:
Esa programacion que es lo que hace en si?,
Esta es la programacion que tengo hasta ahora
//libreria para utilizar el servomotor
#include <Servo.h>
//variable que recibira la orden de java
//int input;
//variable de tipo servo
Servo miservito;
// Pin analogico de entrada para el LDR
int pinLDR = A0;
// Variable donde se almacena el valor del LDR
int valorLDR = 0;
int ledA = 6;
int ledC = 7;
int vent = 4;
void setup() {
pinMode(vent,OUTPUT);
pinMode(ledA,OUTPUT);
pinMode(ledC,OUTPUT);
miservito.attach(2);
Serial.begin(9600);
}
void loop() {
miservito.write(160);
valorLDR= analogRead(pinLDR);
if(valorLDR < 600){
// movemos el servo
miservito.write(160);
digitalWrite(ledA, HIGH);
digitalWrite(ledC, LOW);
digitalWrite(vent, HIGH);
delay(500);
}
else {
// movemos el servo
miservito.write(50);
digitalWrite(ledC, HIGH);
digitalWrite(ledA, LOW);
digitalWrite(vent, LOW);
delay(50);
}
}
MarioMM:
Esa programacion que es lo que hace en si?,
es lo que pides. que cuando el motor este encendido luego de 5 segundos prender el ventilador.
no dijistes eso ??.
MarioMM:
Esta es la programacion que tengo hasta ahora
//libreria para utilizar el servomotor
#include <Servo.h>
//variable que recibira la orden de java
//int input;
//variable de tipo servo
Servo miservito;
// Pin analogico de entrada para el LDR
int pinLDR = A0;
// Variable donde se almacena el valor del LDR
int valorLDR = 0;
int ledA = 6;
int ledC = 7;
int vent = 4;
void setup() {
pinMode(vent,OUTPUT);
pinMode(ledA,OUTPUT);
pinMode(ledC,OUTPUT);
miservito.attach(2);
Serial.begin(9600);
}
void loop() {
miservito.write(160);
valorLDR= analogRead(pinLDR);
if(valorLDR < 600){
// movemos el servo
miservito.write(160);
digitalWrite(ledA, HIGH);
digitalWrite(ledC, LOW);
digitalWrite(vent, HIGH);
delay(500);
}
else {
// movemos el servo
miservito.write(50);
digitalWrite(ledC, HIGH);
digitalWrite(ledA, LOW);
digitalWrite(vent, LOW);
delay(50);
}
}
???, en el encabezado hablas de ventilador y motor, y no servo motor. espefificar no siempre esta de mas.