Sommario:

Micro Servo Lab: 9 passaggi
Micro Servo Lab: 9 passaggi

Video: Micro Servo Lab: 9 passaggi

Video: Micro Servo Lab: 9 passaggi
Video: sg90 9g micro servo testing without servo motor driver... 2024, Luglio
Anonim
Micro Servo Lab
Micro Servo Lab

In questo laboratorio lavoreremo sul controllo della posizione di un micro servo con un potenziometro. In base alla posizione dei "bracci" del micro servo illumineremo le corrispondenti file di LED. Per questo laboratorio avrai bisogno di:

  • 1 micro servo (quello fornito è un micro servo da 9 grammi)
  • 1 potenziometro
  • 10 LED (utilizzando due colori diversi)
  • 10 resistori da 220 Ohm

Passaggio 1: collegare un micro servo

Collega un Micro Servo
Collega un Micro Servo

Il micro servo ha tre fili per l'alimentazione, la terra e un impulso di segnale. Il micro servo accetterà un impulso PWM per determinare in quale posizione dovrebbe essere (0 - 180 gradi). Tecnicamente puoi usare uno qualsiasi dei pin PWM su Arduino Uno, ma generalmente iniziamo con Pin 9 o 10*.

Impostare:

  1. Collegare la breadboard alla barra di alimentazione (+5V) e alla barra di terra (GND)
  2. Collegare il servo alla barra di alimentazione, alla barra di massa e al pin 9.

**Questo perché la libreria Servo utilizza Timer2 su Arduino che ci impedirà di utilizzare segnali PWM, analogWrite(), su questi due pin per qualsiasi scopo diverso dal controllo di un servo. Sebbene possiamo ancora utilizzare questi pin per l'ingresso/uscita digitale, generalmente li utilizzeremo esclusivamente per il servocomando**

Passaggio 2: prova Micro Servo

Il codice qui è il codice di esempio fornito dalla Servo Library. Avrà semplicemente il servo spazzare avanti e indietro da 0 a 180 gradi

/* Spazzare

di BARRAGAN Questo codice di esempio è di pubblico dominio. modificato l'8 novembre 2013 da Scott Fitzgerald https://www.arduino.cc/en/Tutorial/Sweep */ #include "Servo.h" Servo myservo; // crea un oggetto servo per controllare un servo // dodici oggetti servo possono essere creati sulla maggior parte delle schede int pos = 0; // variabile per memorizzare la posizione del servo void setup() { myservo.attach(9); // collega il servo sul pin 9 all'oggetto servo } void loop() { for (pos = 0; pos = 0; pos -= 1) { // va da 180 gradi a 0 gradi myservo.write(pos); // dice al servo di andare in posizione nella variabile 'pos' delay(15); // aspetta 15ms che il servo raggiunga la posizione } }

Passaggio 3: collegare un potenziometro

Collega un potenziometro
Collega un potenziometro

Ora lavoreremo sul controllo manuale della posizione del servo con un potenziometro. Collegare il potenziometro come segue:

  • Lato sinistro - Binario a terra
  • Lato destro - Barra di alimentazione
  • Collegamento alto/medio - Pin A0 (pin 0 analogico)

Passaggio 4: codice di avviamento del potenziometro

Di seguito è riportato un codice di avviamento per il controllo del servo con un potenziometro. Completa il codice in modo che quando muovi il potenziometro, il servo si muova all'unisono.

/* Sweep di BARRAGAN Questo codice di esempio è di dominio pubblico. modificato l'8 novembre 2013 da Scott Fitzgerald https://www.arduino.cc/en/Tutorial/Sweep */ #include "Servo.h" Servo myservo; // crea un oggetto servo per controllare un servo // dodici oggetti servo possono essere creati sulla maggior parte delle schede int pos = 0; // variabile per memorizzare la posizione del servo int potPin = 0;//Seleziona il pin per il collegamento del potenziometro int potVal = 0;//Valore potenziometro corrente void setup() { myservo.attach(9); // collega il servo sul pin 9 all'oggetto servo pinMode(potPin, INPUT); } void loop() { potVal = analogRead(potPin); mioservo.write(pos); // dice al servo di andare in posizione nella variabile 'pos' delay(15); // attende 15ms che il servo raggiunga la posizione }

Passaggio 5: collegare il primo LED

Collega il primo LED
Collega il primo LED

Dopo aver controllato il servo tramite il potenziometro, aggiungeremo un feedback tramite alcuni LED. Creeremo due file di LED. Uno rappresenterà il braccio "sinistro" del servo e l'altro rappresenterà il braccio "destro" del servo. Quando il servo cambia posizione, un braccio si alza e l'altro si abbassa. I LED si accenderanno per visualizzare:

  • pieno - il braccio è alzato
  • metà - le braccia sono uguali.
  • off - il braccio è abbassato

Il diagramma visualizzerà le file di LED alle estremità opposte della breadboard. Questo è stato fatto per facilitare la visibilità, i tuoi LED dovrebbero essere allineati / anche l'uno con l'altro.

Collega il primo LED:

  • Collegare il cavo corto del LED al binario di terra
  • Collegare il cavo più lungo del LED a una resistenza da 220 Ohm. Collega la resistenza al pin 13 di Arduino.

Passaggio 6: collegare la fila rimanente di LED

Connetti la fila rimanente di LED
Connetti la fila rimanente di LED

Dopo aver aggiunto il primo LED, collegare i restanti LED:

  • Cavo più corto: collegare al binario di terra
  • Cavo più lungo: collega una resistenza da 220 Ohm ai LED e ai seguenti pin Arduino: 12, 11, 10, 9, 8

Passaggio 7: aggiungi il primo LED, la seconda riga

Aggiungi primo LED, seconda riga
Aggiungi primo LED, seconda riga

La seconda fila di LED verrà aggiunta allo stesso modo della prima:

  • Collegare il cavo corto del LED al binario di terra
  • Collegare il cavo più lungo del LED a una resistenza da 220 Ohm. Collega la resistenza al pin 7 di Arduino.

Passaggio 8: collegare i LED finali

Collegare i LED finali
Collegare i LED finali

Collegare i restanti LED:

Cavo più corto - collegare alla guida di terra Cavo più lungo - collegare un resistore da 220 Ohm ai LED e ai seguenti pin Arduino: 6, 5, 4, 3

Passaggio 9: controllo del display a LED

L'ultimo passaggio consiste nell'aggiornare il codice per controllare i LED. Dovrà gestire quanto segue:

  • La riga superiore corrisponderà al "braccio destro" del servo. Quando il braccio si sposta su/giù, i LED devono accendersi/spegnersi.
  • La riga inferiore corrisponderà al "braccio sinistro" del servo. Quando il braccio si sposta su/giù, i LED devono accendersi/spegnersi.

Consigliato: