Millis() con sensor de movimiento?

Buenas, estoy realizando un proyecto (arduino uno), en el cual un sensor de movimiento enciende un led, si pasa 1 minuto y sigue detectando a alguien acciona un servo motor (180), pero si no, el servo motor sigue en 0 grados.
Muchas gracias por vuestra ayuda.

[quote="pepelurugbilero, post:1, topic:1073258, full:true"]
Buenas, estoy realizando un proyecto (arduino uno), en el cual un sensor de movimiento enciende un led, si pasa 1 minuto y sigue detectando a alguien acciona un servo motor (180), pero si no, el o motor sigue en 0 grados.
Muchas gracias por vuestra ayuda.

<
const int sensor = 7;
const int led = 8;
int state;
#include<Servo.h> //include the servo library
Servo servo; //create a servo object
int pos = 0; //initial position of the servo
unsigned long time1 = 0;
unsigned long time2 = 0;

void setup() {

time1 = millis();
servo.attach(9); //pin used by the servo
pinMode(sensor, INPUT);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);

}

void loop() {
state = digitalRead(sensor);
time2 = millis();
if(time2 < (time1+10000) && state ==HIGH){
time1 = millis();
digitalWrite(led, HIGH);
servo.write(0);
}
if (time2 >= (time1+5000) && state == HIGH) {
digitalWrite(led, HIGH);
servo.write (180);
}
else {
digitalWrite(led, LOW);
servo.write(0);
}
}

[quote="pepelurugbilero, post:1, topic:1073258, full:true"]
Buenas, estoy realizando un proyecto (arduino uno), en el cual un sensor de movimiento enciende un led, si pasa 1 minuto y sigue detectando a alguien acciona un servo motor (180), pero si no, el o motor sigue en 0 grados.
Muchas gracias por vuestra ayuda.



<
const int sensor = 7;
const int led = 8;
int estado;
#include<Servo.h> 
Servo servo; 
int pos = 0;  
unsigned long tiempo1 = 0;
unsigned long tiempo2 = 0;


void setup() {
   
  tiempo1 = millis();
  servo.attach(9);  
 pinMode(sensor, INPUT);
 pinMode(led, OUTPUT);
 digitalWrite(led, LOW);
 
}


void loop() {
  estado = digitalRead(sensor);
  tiempo2 = millis();
  if(tiempo2 < (tiempo1+10000) && estado ==HIGH){  
    tiempo1 = millis();
  digitalWrite(led, HIGH);
 servo.write(0); 
 }
 if (tiempo2 >= (tiempo1+5000) && estado == HIGH) {
  digitalWrite(led, HIGH);   
  servo.write (180);
 }
  else {
 digitalWrite(led, LOW);
 servo.write(0);
 }
   }
>
[code]


Hola Surbyte.
Perdona , espero que ahora lo haya subido mejor, me lei las normas e intente subir el codigo . si sigue habiendo algo mas dimelo. Gracias por tu ayuda.

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

Moderador:
Por favor, lee las Normas del foro , edita tu código de acuerdo a las normas, ver punto 7 de las mismas.
Si posteas en el foro en inglés usa idioma inglés para expresarte.
Si escribes en español debes usar el foro Arduino en español.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.