Buenas. Estoy con un proyecto de un girasol electrónico que mediante la lectura de dos LDR se mueve el motor al centro de dichos dos LDR, cuando el motor llega al centro ya no se mueve, pero sigue vibrando y no para, por lo tanto se calienta mucho.
Entonces, ¿se puede añadir unas lineas en el código para que cuando no reciba señal para moverse que se desconecte de los 5v del arduino o poner un timer para que pare 20 minutos?, ya que el sol no va que digamos muy veloz.
El código es éste:
Entonces, ¿se puede añadir unas lineas en el código para que cuando no reciba señal para moverse que se desconecte de los 5v del arduino o poner un timer para que pare 20 minutos?, ya que el sol no va que digamos muy veloz.
El código es éste:
PHP:
#include <Servo.h>
Servo myservo;
int pos = 0; // Variable para almacenar la posicion del servo a 0.
int inputPhotoLeft = 1; // Fotorresistencia pin analogico 0 de arduino
int inputPhotoRight = 0;// Fotorresistencia pin analogico 1 de arduino
int Left = 0; // Almacena lecturas de los fotoresistores.
int Right = 0;
void setup()
{
myservo.attach(9); // Servomotor en pin 9.
}
void loop()
{
// Lee los valores de las variables de fotoresistores a la izquierda y derecha.
Left = analogRead(inputPhotoLeft);
Right = analogRead(inputPhotoRight);
// Comprueba si el valor de la derecha es mayor que el izquierdo, de ser así se movera a la derecha.
if (Left > (Right +20))
// +20 es la zona muerta, para que no se agitan de ida y vuelta.
{
if (pos < 179)
pos++;
myservo.write(pos);
}
// Comprueba si el valor de la izquierda es mayor que la derecha, si es así se movera hacia la izquierda.
if (Right > (Left +20))
{
if (pos > 1)
pos -= 1;
myservo.write(pos);
}
// Se añade cierto retraso, aumentar o disminuir si se quiere menos o más velocidad.
delay(10);
}
Última edición por un moderador: