Problema di alimentazione?

Salve, è da qualche giorno che sono dietro a costruire un progettino per auto-innaffiare un vaso.
I miei componenti sono:
1 Arduino
2 Modulo igrometro con sensore di umidità
3 Servomotore
4 Pila 9V
In poche parole, l'igrometro invia il valore di umidità ad una entrata analogica di Arduino, il quale se riceve un valore al di sotto di una soglia, fa muovere il servo, il quale apre un rubinetto che fa scorrere l'acqua nel vaso. Appena il valore di umidità torna al di sopra di una certa soglia, si richiude il rubinetto.

Il mio problema è che il tutto funziona perfettamente quando Arduino è connesso al PC; quando lo scollego, il servo sembra che entri in un loop ed inizia a fare dei piccoli scatti come se si volesse muovere ma non ce la facesse.

Arduino è alimentato dalla pila a 9V, mentre il servo (4,8V - 6V) è collegato all'uscita 5V di Arduino, idem per l'Igrometro.
E' molto strano, perché se mentre fa quelli "scatti" lo collego al PC, si rimette a posto e funziona...:frowning:
Ho controllato l'alimentazione del servo e ho visto che gli arrivano circa 5.1V sia collegato al PC, sia scollegato.

Inserisco anche il codice:

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
void setup() 
{ 
  Serial.begin(9600);
  myservo.attach(9);
  myservo.write(90);
  delay(2000);
} 
 
int valore = 0;
boolean acceso = true;

void spengi()
{
  myservo.detach();
  acceso = false;
}

void accendi()
{
  myservo.attach(9);
  acceso = true;
}
 
void loop() 
{ 
 valore = analogRead(5);
 Serial.println(valore);
 Serial.println('l');
 if(valore > 800)
 {
   while(valore > 500)
   {
     if(acceso == false){ accendi(); }
     myservo.write(50);
     delay(500);
     valore = analogRead(5);
     Serial.println(valore);
     Serial.println('w');
   }
 }
 if(acceso == true)
 { 
   myservo.write(90); 
   delay(2000);
   spengi();
 }
delay(500);
}

Quale potrebbe essere il problema?

La tensione ok. Ma la corrente?
La USB può erogare 500mA, la pila a 9V non credo. :sweat_smile:

PaoloP:
La USB può erogare 500mA, la pila a 9V non credo. :sweat_smile:

Non credo proprio. Sarà ~200 mAh

Quindi come lo posso alimentare?
Scusate ma è il mio primo progetto e non sono molto pratico :~

Con un buon pacco batterie NiMh o una LiPo.
Sarebbe meglio però separare le 2 alimentazioni, quella dell'Arduino e quella del motore.

Quindi può andar bene se alimento Arduino con la pila a 9V e il servo con un pacco batterie LiPo? oppure è meglio due batterie LiPo?

La pila da 9V va bene per il solo Arduino. Per il servo, devi scegliere la batteria in funzione della tensione e corrente che ti serve.