Inseguitore Solare

Occorrente per realizzare questo progetto:
 

  • Arduino Uno, Duemilanove ,Mega ecc.
  • 2 Servo Motore, quelli che abbiamo usato noi sono servi di un modellino. I servi sono reperibii in qualsiasi negozio di modellismo ad un costo di circa 20 euro  basta chiedere SERVI DIGITALI perchè quelli analogici hanno un movimento di  0° o 180°.
  • 4 fotoresistenze 
  • 4 resistenze da 10kOhm
  • 2 trimmer da 10kOhm


Montaggio:

Abbiamo utilizzato dei pezzi di canalina tubolare per fare da base su cui montare i servi e su cui mettere le fotoresistenze 

                                                                                   

                                                                                                                Ecco lo schema di montaggio

 

 

 

 

 

 

ed ecco lo sketch di arduino da incollare nel suo programma compilatore

 

#include // include la libreria ServoServo horizontal; // servo orizzontaleint servoh = 90; // dichiara una variabileServo vertical; // servo verticaleint servov = 90; // dichiara una variabilename = analogpin;int ldrlt = 0; //fotoresistenza in alto a sinistraint ldrrt = 1; //fotoresistenza in alto a destraint ldrld = 2; //fotoresistenza in basso a sinistraint ldrrd = 3; //fotoresistenza in basso a destravoid setup(){ Serial.begin(9600); name.attacht(pin); horizontal.attach(9);vertical.attach(10);}void loop(){ int lt = analogRead(ldrlt); // fotoresistenza in alto a sinistra int rt = analogRead(ldrrt); // fotoresistenza in alto a destra int ld = analogRead(ldrld); // fotoresistenza in basso a sinistra int rd = analogRead(ldrrd); // fotoresistenza in basso a destra int dtime = analogRead(4)/20; // leggi trimmerint tol = analogRead(5)/4;int avt = (lt + rt) / 2; // somma fotoresistenze alteint avd = (ld + rd) / 2; // somma fotoresistenze basseint avl = (lt + ld) / 2; // somma fotoresistenze a sinistraint avr = (rt + rd) / 2; // somma fotoresistenze a destraint dvert = avt - avd; // trova la differenza tra alto e bassoint dhoriz = avl - avr;// trova la differenza tra sinistra e destraif (-1*tol > dvert || dvert > tol){if (avt > avd){servov = ++servov;if (servov > 180){servov = 180;}}else if (avt < avd){servov= --servov;if (servov < 0){servov = 0;
 
 
 
 
 
 
 
 
 
}}vertical.write(servov);}if (-1*tol > dhoriz || dhoriz > tol){if (avl > avr){servoh = --servoh;if (servoh < 0){servoh = 0;}}else if (avl < avr){servoh = ++servoh;if (servoh > 180){servoh = 180;}}else if (avl == avr){}horizontal.write(servoh);}delay(dtime);}

 

Cosa ne pensate del nostro Inseguitore Solare?

R: Complimenti

Elettricità 19.01.2014
Grazie mille camilla
<< 1 | 2

Nuovo commento