Arduino - Servo Motor aangestuurd door Potentiometer

In een vorige tutorial hebben we geleerd hoe een potentiometer een servo motor aanstuurt. In deze handleiding gaan we leren hoe u een servo motor laat draaien op basis van de uitgangswaarde van de potentiometer.

Hardware Benodigdheden

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×Servomotor
1×Potentiometer
1×(Alternatief) Potentiometer Kit
1×(Alternatief) Potentiometer Module met Knop
1×Breadboard (experimenteerprint)
1×Jumper draden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Servo Motor en Potentiometer

Als u nog niet bekend bent met servo motor en potentiometer (pinout, werking, programmeren, enz.), bekijk dan de volgende tutorials:

Aansluitdiagram

Arduino Servo Motor Potentiometer Aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren

  • Leest de waarde van de potentiometer (waarde tussen 0 en 1023)
int analogValue = analogRead(A0);
  • Schaalt deze naar een hoek (waarde tussen 0 en 180)
int angle = map(analogValue, 0, 1023, 0, 180);
  • Stelt de servo-positie in op basis van de hoek
myServo.write(angle);

Arduino Code

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-servo-motor-controlled-by-potentiometer */ #include <Servo.h> Servo myServo; // create servo object to control a servo void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); myServo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 1023) int analogValue = analogRead(A0); // scales it to use it with the servo (value between 0 and 180) int angle = map(analogValue, 0, 1023, 0, 180); // sets the servo position according to the scaled value myServo.write(angle); // print out the value Serial.print("Analog: "); Serial.print(analogValue); Serial.print(", Angle: "); Serial.println(angle); delay(100); }

Snelle Stappen

  • Verbind de Arduino met uw pc via de USB-kabel
  • Open de Arduino IDE, selecteer het juiste board en poort
  • Kopieer de bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden
Arduino IDE Code Uploaden
  • Open de Seriële Monitor
  • Draai aan de potentiometer
  • Zie de servo motor draaien
  • Bekijk het resultaat in de Seriële Monitor
COM6
Send
Analog: 0, Angle: 0 Analog: 85, Angle: 14 Analog: 201, Angle: 35 Analog: 286, Angle: 50 Analog: 370, Angle: 65 Analog: 444, Angle: 78 Analog: 521, Angle: 91 Analog: 608, Angle: 106 Analog: 690, Angle: 121 Analog: 793, Angle: 139 Analog: 907, Angle: 159 Analog: 1023, Angle: 180 Analog: 1023, Angle: 180
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code Uitleg

Lees de regel-voor-regel uitleg in de commentaarregels van de broncode!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!