Ciao a tutti, ho creato questo topic perchè ho un problema, Io sto cercando di creare un robottino controllato da una scheda Arduino Uno Rev 3, e si muove grazie a due micro servimotori che ruotano di 180 gradi, fino a quando lo alimentavo da usb andava alla perfezione, fino a quando ho deciso di alimentarlo da una Batteria da 9 volt, collegandola all' apposito adattore per breadboard e connettendo il cavo rosso al pin "vin" e il cavo nero al secondo pin "gnd", all'inizio andava bene fino a quando dopo 20 secondi inizia a riavviarsi.
Lo sketch del robot è questo:
#include <Servo.h>
Servo DX;
Servo SX;
int dspin = 11;
int sensibility = 7; // Sensibilità degli ostacoli 0 = nulla 12 = alta
int sspin = 10;
int prevBrightness;
int startValue;
int op;
int next;
void setup(){
pinMode(13, OUTPUT);
// Incominicia qui il setup
//Calibrazione dei sensori
startValue = analogRead(A0);
prevBrightness = startValue;
Serial.begin(9600);
DX.attach(dspin);
SX.attach(sspin);
DX.write(0);
SX.write(0);
// Finisce qui il setup
digitalWrite(13, HIGH);
}
void loop(){
next = analogRead(A0);
if (next - sensibility < prevBrightness)
{
op = op + 1;
indietro();
}
else
{
op = 0;
giraSX();
delay(1000);
indietro();
delay(1000);
giraDX();
delay(1000);
indietro();
delay(1000);
avanti();
delay(1000);
indietro();
delay(1000);
}
}
static void giraSX()
{
Serial.println("SX");
DX.write(180);
SX.write(0);
}
static void giraDX()
{
Serial.println("DX");
DX.write(0);
SX.write(180);
}
static void avanti()
{
Serial.println("AV");
DX.write(180);
SX.write(180);
}
static void indietro()
{
Serial.println("IN");
DX.write(0);
SX.write(0);
}
static void customDir(int dxoooo, int sxoooo)
{
DX.write(dxoooo);
SX.write(sxoooo);
}
e il circuito su breadboard è questo:
Spero di essere stato chiaro a spiegare il mio problema.