Servo shield arduino

La sevo shield per arduino è una shield in grado di controllare fino a 16 servomotori diversi con soli 2 pin arduino ed il protocollo I2C

servo shield collegata

La servo shield è progettata per controllare 16 uscite di tipo PWM, quelle solitamente usate dai servo, ma potresti utilizzare la servo shield per controllare 16 led o 16 driver per led ad alta luminosità da 350mA o 700mA, come quello realizzato dall’amico Luca ( leggi articolo ).

Inoltre il produttore della shield dichiara:

6 address select pins so you can stack up to 62 of these on a single i2c bus, a total of 992 outputs – that’s a lot of servos or LEDs

ossia grazie a 6 pin dedicati alla selezione dell’indirizzo I2C presenti sulla shield puoi collegare fino a 62 servo shield al medesimo arduino e controllare ben 992 uscite di tipo PWM con un unico microcontrollore.

Avrai già capito che le potenzialità di questa shield sono elevate e non si fermano ai soli 16 output PWM per controllare dei servomotori di tipo PWM.

Contenuto della confezione

Una volta aperta la confezione della servo shield ho trovato i seguenti componenti:

  • n.1 servo shield
  • n.1 connettore per alimentazione
  • n.4 strip da 3×4 pin ciascuno
  • n.1 strip da 36 pin maschio

come vedi in figura: servo shield componenti nella confezione io ho deciso di montare al posto della strip maschio da 36 pin i soliti header arduino per espandere in futuro questa shield con altre montate a castello.

Montaggio della servo shield

Sul sito Adafruit c’è come al solito un dettagliato WiKi su come assemblare la servo shield ( leggi wiki ).

Avendo deciso di montare la servo shield con componenti leggermente differenti ti mostro la mia personale tecnica di montaggio, certo che saprai trovare il modo migliore di montare la tua servo shield.

Inizia usando un’altra shield come base il montaggio e mantenere gli header in posizione:

servo shield montaggio header

inserisci la servo shield in modo che gli header attraversino la shiled:

servo shield montaggio header 2

e procedi con la saldatura di tutti i pin, terminata la saldatura dehgli header posiziona i 4 blocchi di pin 3×4 presenti nella confezione e a cui collegherai i servo e procedi a saldare anche questi:

servo shield montaggio pin

infine salda il connettore di alimentazione V+/Gnd che ti servirà ad alimentare i servo esternamente per non sovraccaricare l’alimentazione arduino:

servo shield montaggio connettore

a questo punto dovrai scegliere il condensatore da installare nello spazio sergrafato C2 della servo shield; adafruit riporta:

If you are driving a lot of servos from a power supply that dips a lot when the servos move, n * 100uFwhere n is the number of servos is a good place to start – eg 470uF or more for 5 servos. Since its so dependent on servo current draw, the torque on each motor, and what power supply, there is no “one magic capacitor value” we can suggest which is why we don’t include a capacitor in the kit.

ossia il condensatore da saldare nella posizione C2 dipende da quanti e quali servo andrai a collegare alla servo shield, è questo il motivo per cui non è fornito nella confezione.

Come regola generale suggerita dal produttore il condensatore puoi calcolarlo con la formula n*100uF per cui con 5 servo il valore dovrebbe essere 5*100uF = 500uF e la misura più prossima a questo valore è 470uF.

C2 adafruit servo shield

Imposta l’indirizzo della servo shield

come descritto dal produttore, e riportato sopra in questo articolo, puoi collegare fino a 62 servo shield ad un unico arduino uno con soli 2 pin SDA ed SCL ( protocollo I2C ) semplicemente impostando per ciascuna shield l’indirizzo a cui far rispondere la shield, per farlo trovi delle piazzole sul PCB con cui puoi definire l’indirizzo:

scelta indirizzo shield

gli indirizzi sono definiti secondo questa tabella:

Board 0: Address = 0x40 Offset = binary 00000 (no jumpers required)
Board 1: Address = 0x41 Offset = binary 00001 (bridge A0 as in the photo above)
Board 2: Address = 0x42 Offset = binary 00010 (bridge A1)
Board 3: Address = 0x43 Offset = binary 00011 (bridge A0 & A1)
Board 4: Address = 0x44 Offset = binary 00100 (bridge A2)

avrai notato che si tratta di una codifica binaria in cui i pin A0-A5 lavorano secondo la sequenza 00000 per definire l’indirizzo di configurazione.

Il video della servo shield

ecco il video realizzato dalla adafruit sulla servo shield:

Buona sperimentazione !!!

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/servo-shield-arduino.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.