Pages: [1]   Go Down
Author Topic: Problema con servomotor y delay.  (Read 876 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, soy nuevo en el foro y en arduino.

Estoy tratando de  hacer lo siguiente

Se aprieta el pushbotton.
Se mueve el Servo, hay un pequeño delay.
Se prende un led, hay un delay, se apaga el led.

Se aprieta otra vez el pushbotton.
Se mueve el Servo 45 grados de la posición en donde estaba, hay un delay.
Se prende el led, hay un delay, se apaga el led.

Basicamente es lo que necesito para empezar un proyecto que tengo en mente, ahora todo funciona bien si no uso el led, es decir, puedo mover el servo cada vez que aprieto el botón 45 grados (no tengo el servo pero estoy midiendo el ancho de pulso a la salida con la funcion pulsein), pero el problema viene cuando pongo el codigo del led, a la hora que prende el led pareciera como si el servo dejara de funcionar mientras esta el delay.

Aqui mi codigo a ver si alguien me puede ayudar pues soy bastante nuevo...

#include <Servo.h>
Servo servo;

int switchPin2 = 2;   //boton en el pin 2
int val2;   
int buttonState2;

int pelota = 13;


int movimiento0=0;
int movimiento;
int duration;

void setup() {
 
  servo.attach(9);
  pinMode(switchPin2, INPUT);
  pinMode(pelota, OUTPUT);
  pinMode(7, INPUT);
 
  Serial.begin(9600);     

 

}
void loop(){
 

  val2 = digitalRead(switchPin2);
  buttonState2 = LOW;
 
  servo.write(movimiento0);
  duration = pulseIn(7, HIGH);
  Serial.print(duration);
 
 

 
 if (val2 != buttonState2){
              servo.write(movimiento0);
              movimiento0=movimiento0+45;
              }       
     
          if(val2 != buttonState2) {
                   digitalWrite(pelota, HIGH);
                   delay(3000);
                   digitalWrite(pelota, LOW);
          }

}   


A ver si alguien me pudiera ayudar pues supongo no es algo muy complicado pero nose como hacerle  jaja. Gracias.!
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Usa millis(), tienes ejemplos de uso en el propio IDE de Arduino o si no en la Referencia
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Pages: [1]   Go Up
Jump to: