Stap 9: Beheersing van servo 's
Voorbeeld 5 - beheersen een servo die via de analoge ingang
Deze twee voorbeelden laten zien hoe gemakkelijk het is om controle van de servo's met behulp van een analoge ingang. U kunt elke gewenste analoge input apparaat-Ik gebruik een 10 k Ohm potentiometer voor het bedradingsschema voorbeeld. Als je de pot zet (en verander de waarde) wordt de servo proportioneel wordt verplaatst.
In het tweede codevoorbeeld breidt gewoon in het eerste voorbeeld als u wilt bepalen zes servo's van zes ingangen. Dit soort besturingselement is echt handig als u wilt bepalen van de verschillende servo's bend sensoren bevestigd aan een handschoen met. Dit zou werken echt goed voor het beheersen van een animatronic masker.
/*
* Voorbeeld 5
* Servo Control
* Dit voorbeeld wordt gebruikt een servo's en de analoge ingang te verplaatsen van de servo volgens welke invoerwaarde sensor
* Honus 2010
*/
#include "Servo.h" / / de servo-bibliotheek
Servo servo1; Hiermee maakt u een exemplaar van het servo-object om te bepalen van een servo
int analogPin = 0; de analoge pin dat de sensor is op
int analogValue = 0; de resultaatwaarde van de analoge sensor
int servoPin = 4; Controle pin voor servomotor
VOID Setup {}
servo1.attach(servoPin); de servo op pin 9 hecht aan de servo-object
}
void loop
{
analogValue = analogRead(analogPin); Lees de analoge ingang (een waarde tussen 0 en 1023)
analogValue = kaart (analogValue, 0, 1023, 0, 179); kaart van de analoge waarde (0 - 1023) om de hoek van de servo (0 - 179)
servo1.write(analogValue); Schrijf de nieuwe toegewezen analoge waarde om de positie van de servo
delay(15); wacht tot de servo om er te komen
}
Voorbeeld 5a - controle 6 servo's met behulp van meerdere ingangen
/*
* Voorbeeld 5a
* Servo Control6
* Dit voorbeeld wordt 6 servo's en analoge ingangen verplaatst van de servo's volgens de invoerwaarden sensor
* Honus 2010
*/
#include / / de servo-bibliotheek
Servo servoMotor1; Hiermee maakt u een exemplaar van het servo-object om te bepalen van een servo
Servo servoMotor2;
Servo servoMotor3;
Servo servoMotor4;
Servo servoMotor5;
Servo servoMotor6;
int analogPin1 = 0; de analoge pin dat de sensor is op
int analogPin2 = 1;
int analogPin3 = 2;
int analogPin4 = 3;
int analogPin5 = 4;
int analogPin6 = 5;
int analogValue1 = 0; de resultaatwaarde van de analoge sensor
int analogValue2 = 0;
int analogValue3 = 0;
int analogValue4 = 0;
int analogValue5 = 0;
int analogValue6 = 0;
int servoPin1 = 4; Controle pin voor servomotor
int servoPin2 = 5;
int servoPin3 = 6;
int servoPin4 = 7;
int servoPin5 = 8;
int servoPin6 = 9;
VOID Setup {}
servoMotor1.attach(servoPin1); de servo op pin 4 hecht aan de servo-object
servoMotor2.attach(servoPin2); hecht de servo op pin 5 aan de servo-object
servoMotor3.attach(servoPin3); hecht de servo op pin 6 aan de servo-object
servoMotor4.attach(servoPin4); de servo op pin 7 hecht aan de servo-object
servoMotor5.attach(servoPin5); de servo op pin 8 hecht aan de servo-object
servoMotor6.attach(servoPin6); de servo op pin 9 hecht aan de servo-object
}
void loop
{
analogValue1 = analogRead(analogPin1); Lees de analoge ingang (een waarde tussen 0 en 1023)
analogValue1 = kaart (analogValue1, 0, 1023, 0, 179); kaart van de analoge waarde (0 - 1023) om de hoek van de servo (0 - 179)
servoMotor1.write(analogValue1); Schrijf de nieuwe toegewezen analoge waarde om de positie van de servo
analogValue2 = analogRead(analogPin2);
analogValue2 = kaart (analogValue2, 0, 1023, 0, 179);
servoMotor2.write(analogValue2);
analogValue3 = analogRead(analogPin3);
analogValue3 = kaart (analogValue3, 0, 1023, 0, 179);
servoMotor3.write(analogValue3);
analogValue4 = analogRead(analogPin4);
analogValue4 = kaart (analogValue4, 0, 1023, 0, 179);
servoMotor4.write(analogValue4);
analogValue5 = analogRead(analogPin5);
analogValue5 = kaart (analogValue5, 0, 1023, 0, 179);
servoMotor5.write(analogValue5);
analogValue6 = analogRead(analogPin6);
analogValue6 = kaart (analogValue6, 0, 1023, 0, 179);
servoMotor6.write(analogValue6);
delay(15); wacht tot de servo om er te komen
}