Go Down

Topic: Servo y panel solar! (Read 382 times) previous topic - next topic

RCA13

Jan 13, 2018, 04:12 am Last Edit: Jan 13, 2018, 02:48 pm by surbyte Reason: Edición del título.
Hola, estoy haciendo un proyecto de un panel solar que tiene tres fotoresistencias, dos en dos extremos y una en el centro, el panel solar esta sobre un servomotor, la idea es que el servo mantenga el panel en direccion al sol, el problema que tengo es que el servo se mueve de un extremo a otro, o sea tiene solo dos pocisiones, y yo quiero que se mueva de a poco dependiendo de la posicion del sol.

Aqui el sketch que hice, gracias!

Code: [Select]

#include <Servo.h>

Servo miServo;

const int pinServo = 2;
const int pulsoMin = 1000;
const int pulsoMax = 2000;

const int PinEntradaLDR_i = A0; //fotoresistencia de la izquierda
const int PinEntradaLDR_c = A1; //fotoresistencia del centro
const int PinEntradaLDR_d = A2; //fotoresistencia de la derecha

int angulo;
int valormax;
int ValorSensorI;
int ValorSensorC;
int ValorSensorD;

void setup() {
 miServo.attach(pinServo, pulsoMin, pulsoMax);
}

void loop() {
 ValorSensorI = analogRead(PinEntradaLDR_i);
 delay(5);
 ValorSensorC = analogRead(PinEntradaLDR_c);
 delay(5);
 ValorSensorD = analogRead(PinEntradaLDR_d);
 delay(5);

 if(ValorSensorI>ValorSensorC) { //si le llega mas luz a la fotorresistecia de la izquierda quiero que gire el servo unos grados hacia la izquierda
   valormax = valormax + 10; //puse eso en vez de "valormax = 1"
 }
 if(ValorSensorD>ValorSensorC) { //lo mismo si le llega mas luz a la de la derecha
   valormax = valormax - 10; //puse eso en vez de "valormax = 0"
 }
 
 angulo = map(valormax, 100, 0, 0, 180); //modifique el primer numero a 100, antes era 1
 miServo.write(angulo);
 delay(20); //ahora actualiza mas rapido
}

Go Up