Ciao ragazzi, sto facendo una specie di robot di sorveglianza ma ho riscontrato un problema con i due servi che uso per muovere il supporto della webcam.
Spiego brevemente.
Sto usando la Adafruit MotorShield v2.3 per controllare i 4 motori ed i due servi.
La motor shield è alimentata da un pacco batterie da 7.5V, separatamente dall'Arduino YUN (alimentato da una batteria USB esterna).
Ora, stando a quanto è scritto sul sito Adafruit, l'alimentazione diretta della MotorShield (quella che fa accendere il piccolo LED su di essa) finisce solamente ai motori, mentre i servi usano l'alimentazione di Arduino (qui: Using RC Servos | Adafruit Motor Shield V2 | Adafruit Learning System ).
Ebbene, quando eseguo lo sketch di "test" (qui il codice: #include <Wire.h>#include <Servo.h>#include <Adafruit_MotorShield.h>#inclu - Pastebin.com ) i servi (che sono la prima cosa che prova) funzionano bene e fanno entrambi (uno dopo l'altro) il loro corretto movimento di "pan".
Il problema arriva quando partono le procedure dei motori: appena viene chiamata "avanti()", i servi vanno sparati alla loro corsa massima, come se da quel momento smettessero di prendere energia dall'Arduino ma la prendessero dalla shield.
Il tutto, se lo eseguo con la shield non alimentata (eseguirà tutto lo sketch, servi, motori avanti, indietro.. ecc ecc), funziona correttamente: i servi rimangono nella posizione centrale per tutto il tempo per cui i motori "funzionerebbero" (motori che non vanno perchè la shield è appunto senza alimentazione), per poi riprendere il loro "pan" una volta reiniziato il "void loop()".
Ricapitolando, solo se ho la shield alimentata, al momento di far partire i motori, i servi impazziscono. Servi che dovrebbero essere indipendenti dall'alimentazione dei motori.
E' un po' che faccio varie prove ("myServoS1.detach()" prima di far partire i motori non cambia niente) ma non ho concluso niente...
Qualcuno di voi saprebbe aiutarmi a risolvere? O almeno a diagnosticare meglio il problema...
Grazie mille! ![]()
