Muy buenas a todos y gracias de antemano por vuestra atención, llevo en este foro muy poco tiempo así que espero no liarla mucho
Me encuentro desarrollando un pequeño prollecto de fin de grado de Bellas Artes, y estoy teniendo problemas con el control de un servo. La idea es hacer reaccionar un brazo en función de la luz que le llega. Para esto he conectado en un Arduino Uno un servo y una fotoresistencia, de manera que cuando se le quita la luz de forma gradual , el servo debería moverse también gradualmente.
El problema que tengo es que sé como hacer que el servo se mueva 'x' grados en funcion de 'y' cantidad de luz, pero no tengo ni idea de hacerlo reaccionar a todo un rango de cantidad de luz y relacionarlo con el movimiento que debe hacer en consecuencia (quiero pensar que me estoy explicando debidamente, aunque lo empiezo a dudar).
En cualquier caso, lo que tengo de momento es esto. Como podréis ver he programado el servo para rotar 180º cuando el sensor detecta menos de 200 unidades de luz (esta puesto por probar, no por nada en concreto):
#include <Servo.h>
Servo myservo;
const int sensorpin=A0;
int sensorvalue=0;
int proximityvalue=0;
void setup() {
Serial.begin(9600);
myservo.attach(2);
myservo.writeMicroseconds(600);
}
void loop() {
proximityvalue=analogRead(sensorpin);
delay(5);
myservo.write(0);
if(proximityvalue<200)
{
myservo.write(180);
delay(600);
}
else
{
myservo.write(0);
delay(600);
}
Serial.println(proximityvalue);
}
No sé si se os ocurre algo para solucionar esto, he estado buscando otros topics pero en ninguno encuentro que nadie haya tenido este problema