Sto cercando di far funzionare una classe con Arduino, tuttavia non sembra attivarsi correttamente. Il codice si sta compilando perfettamente e dovrebbe controllare la gamba di un esapodo . Inoltre, lo sweep di esempio funziona su questo servo, quindi nessun problema qui. Tuttavia, il servo non si muove effettivamente. Penso che abbia qualcosa a che fare con l'ordine di dichiarazione delle variabili:
#include <Servo.h> // Astratta ogni gamba, quindi è possibile accedere solo a quelle funzioni class Leg {// Actions che può essere attivato da un pubblico esterno: Leg (int hipPin, int kneePin); void up (); // Dovrebbero essere disponibili solo per la gamba privata: Servo hip; Ginocchio servo; }; Leg :: Leg (int hipPin, int kneePin) {hip.attach (hipPin); knee.attach (kneePin); } // Testare la gamba: spostala verso l'altovoid Leg :: up () {for (int pos = 0; pos < 180; pos + = 1) {hip.write (pos); ritardo (15); }} // Inizializza legLeg topLeft (9, 10); void setup () {} // Prova la funzione up () void loop () {topLeft.up (); }
Sto testando solo il pin 9 (lasciando il 10 vuoto). sembra dolorante , il che significa che puoi vedere il servo tremare ma non muoversi realmente a 0 gradi.