Arduino Nano - Potentiometer Servo Motor

Deze handleiding leert u hoe u de Arduino Nano gebruikt om de hoek van een servomotor aan te sturen op basis van de invoerwaarde van een potentiometer. In detail leert u:

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB kabel
1×Servomotor
1×Potentiometer
1×Alternatief: 10k Ohm Trimmer Potentiometer
1×(Alternatief) Potentiometer Kit
1×(Alternatief) Potentiometer Module met Knop
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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.

Aankoopadvies: Als u meerdere servomotoren gebruikt, raden we aan de PCA9685 16 Channel PWM Servo Driver Module te gebruiken om MCU-pinnen te besparen en de bedrading te vereenvoudigen.

Over Servomotor en Potentiometer

Als u niet bekend bent met servomotoren en potentiometers, inclusief hun pinout, werking en programmering, helpen de volgende tutorials u op weg:

Bedradingsschema

Arduino Nano Servo Motor Potentiometer Bedradingsschema

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.

Zie De beste manier om Arduino Nano en andere componenten van stroom te voorzien.

Hoe te Programmeren

  • Leest de waarde van de potentiometer, dit is een getal tussen 0 en 1023.
int analog_value = analogRead(A0);
  • Zet deze om naar een hoek tussen 0 en 180 graden.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Stuurt de servomotor naar de aangegeven hoek.
servo.write(angle);

Arduino Nano Code

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

Snelle Stappen

  • Sluit de USB-kabel aan op de Arduino Nano en uw pc.
  • Start de Arduino IDE en selecteer de juiste board en poort.
  • Open de code in de Arduino IDE.
  • Om de code naar de Arduino Nano te uploaden, druk op de Upload knop in de Arduino IDE.
Arduino IDE Upload Code
  • Open de Seriële Monitor
  • Draai aan de potentiometer
  • Bekijk de rotatie van de servomotor
  • Controleer 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

Bekijk de regel-voor-regel uitleg die in de commentaren van de broncode staat!

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!