Ciao a tutti
Devo controllare un servo tramite un telecomando ad infrarossi, ho utilizzato questo codice e tutto funziona alla perfezione...
il mio problema e' che il servo rimane comunque sotto tensione anche nei momenti di non utilizzo... Dato che il mio progetto finale deve funzionare 24h su 24 con batteria ricaricabile da pannello solare (quindi minimo assorbimento). E' possibile alimentare il servo solo nel momento in cui riceve il segnale in input??? grazie in anticipo....
#include <IRremote.h>
#include <Servo.h>
int RECV_PIN = 11;
Servo myservo;
int position1; //servo position 1
int position2; //servo position 2
int position3; //servo position 3
int codeValue;
int current; //keeps track of current servo position
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
position1 = 0; //default servo positon 1
position2 = 90; //default servo position 2
position3 = 179; //default servo position 3
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
myservo.attach(9); // attaches the servo on pin 9
myservo.write(position3); //start the servo out at position 3
}
void loop() {
if (irrecv.decode(&results)) {
codeValue = results.value;
switch (codeValue) {
case 16753245:
myservo.write(position1);
current = position1;
break;
case 16736925:
myservo.write(position2);
current = position2;
break;
case 16769565:
myservo.write(position3);
current = position3;
break;
}
irrecv.resume(); // Receive the next value
}
}