This tutorial is part of: Motocin Servo
Duk bidiyon da suka shafi injinan servo waɗanda ke da alaƙa, an jera su a nan. Hanyoyin haɗi zuwa wasu bidiyo suna ƙasa da wannan labarin.
Sarrafa Servo da Potentiometer da LCD1602 ta amfani da Arduino
A cikin wannan koyawa, za mu koyi yadda ake sarrafa motar servo ta amfani da potentiometer da kuma nuna ƙimar potentiometer da kuma kusurwar servo akan allo na LCD1602. Wannan aikin hanya ce mai kyau don haɗa abubuwa da yawa da kuma fahimtar yadda za su iya aiki tare don ƙirƙirar tsarin mu'amala. A ƙarshen wannan koyawa, za ku sami tsarin aiki wanda zai ba ku damar daidaita kusurwar servo da ƙulli yayin da kuke nuna ƙimar a kan LCD.Kafin mu shiga cikin wayoyi da lambar, yana da taimako mu fahimci abubuwan da za mu yi amfani da su. Potentiometer yana aiki azaman resistor mai canzawa wanda zai iya daidaita ƙarfin wutar lantarki dangane da matsayinsa, wanda za mu yi amfani da shi don tantance kusurwar servo. LCD1602 zai nuna ƙimar potentiometer na yanzu da kuma kusurwar da ta dace na servo. Kuna iya koma ga bidiyon (a cikin bidiyo a 00:00) don jagorar gani na dukan tsari.
Bayanin Kayan Aiki
Babban abubuwan da za mu yi amfani da su a wannan aikin sune:
- Arduino Board: Wannan zai zama mai sarrafa dukan tsarin, yana sarrafa abubuwan shigarwa daga potentiometer da kuma sarrafa matsayin servo dangane da waɗannan abubuwan shigarwa.
- Potentiometer: Za a yi amfani da potentiometer na 10k ohm don samar da shigarwar analog zuwa Arduino. Yana da ƙafafu uku: ɗaya an haɗa shi da 5V, ɗaya zuwa ƙasa, kuma na tsakiya an haɗa shi da fil ɗin analog (A0) akan Arduino.
- Motar Servo: Wannan servo za a sarrafa shi ta hanyar aika masa da kusurwa dangane da matsayin potentiometer. Wayar sigina tana haɗawa zuwa fil ɗin dijital akan Arduino (fil 9).
- Nunin LCD1602: Wannan nunin zai nuna ƙimar potentiometer da kusurwar servo. Yana haɗawa zuwa filaye na dijital da yawa akan Arduino don sarrafawa.
Potentiometer yana aiki ta hanyar canza juriya da kuma haka ƙarfin wutar lantarki a ƙafarsa ta tsakiya, wanda Arduino ke karantawa azaman shigarwar analog. Motar servo ana sarrafa ta ta hanyar aika mata da takamaiman sigina na PWM da ya dace da kusurwar da ake so. LCD1602 yana amfani da ɗakin karatu wanda ke ba mu damar sarrafa nuninsa cikin sauƙi da kuma fitar da bayanai game da potentiometer da servo.
Cikakkun Bayanai na Datasheet
| Mai ƙera | iri-iri |
|---|---|
| Lambar sashi | LM016L |
| Ƙarfin wutar Logic/IO | 5 V |
| Ƙarfin wutar samarwa | 4.5 – 5.5 V |
| Ƙarfin fitarwa (kowane tashar) | har zuwa 2 mA |
| Ƙarfin kololuwa (kowane tashar) | 20 mA |
| Jagorar mitar PWM | 50 Hz |
| Ƙofofin ƙididdigar shigarwa | 0.3 x Vcc (ƙasa), 0.7 x Vcc (sama) |
| Ragewar ƙarfin wutar / RDS(on) / saturation | 0.2 V max |
| Iyakokin zafi | 85 °C |
| Kunshin | 16-pin DIP |
| Bayanan kula / bambance-bambance | Nunin haruffa 16x2 |
- Haɗa fil ɗin tsakiya na potentiometer zuwa fil ɗin analog A0.
- Tabbatar cewa an samar da servo da wutar 5V kuma an haɗa shi da fil ɗin dijital 9.
- Yi amfani da ɗakin karatu da ya dace don LCD kuma tabbatar an haɗa shi a cikin Arduino IDE ɗin ku.
- Yi hattara da wayoyi don guje wa gajerun da'irori, musamman tare da haɗin servo.
- Duba cewa an fara LCD daidai a cikin lambar don guje wa matsalolin nuni.

Umarnin Haɗin Wayoyi
Don haɗa abubuwan tare, fara da haɗa potentiometer. Haɗa ƙafa ɗaya ta waje na potentiometer zuwa fil ɗin 5V akan Arduino, da ɗayan ƙafar ta waje zuwa ƙasa. Ƙafar tsakiya tana zuwa fil ɗin analog A0.
Na gaba, don motar servo, haɗa wayar launin ruwan kasa ko baƙar fata zuwa ƙasa, wayar ja zuwa fil ɗin 5V, da wayar rawaya ko orange zuwa fil ɗin dijital 9 akan Arduino. Don LCD1602, haɗa fil ɗin VDD zuwa 5V, RW zuwa ƙasa, da V0 zuwa fil ɗin tsakiya na potentiometer don daidaita bambancin. Haɗa RS zuwa fil 12, EN zuwa fil 11, D4 zuwa fil 5, D5 zuwa fil 4, D6 zuwa fil 3, da D7 zuwa fil 2.
Ana kuma ba da shawarar haɗa resistor na 220-ohm a jere tare da LED idan kuna amfani da ɗaya, haɗa shi da samarwar 5V. Bugu da ƙari, ana iya haɗa capacitor na 470 µF a ƙetare wutar lantarki da ƙasa na servo don tace duk wani hayaniya yayin aiki.
Misalan Lamba & Bayani
Lambar ta fara da haɗa ɗakunan karatu da suka dace da kuma fara filaye don LCD da servo. Ɗan guntun da ke gaba yana nuna saitin LCD da servo:
void setup() {
lcd.begin(16, 2);
myservo.attach(9); // yana haɗa servo akan fil 9 zuwa abin servo
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Robojax Servo Knob");
delay(2000);
}
Wannan ɗan guntun yana fara LCD don ginshiƙai 16 da layuka 2, yana haɗa servo zuwa fil 9, kuma yana nuna saƙon maraba akan LCD. Aikin lcd.clear() yana tabbatar da cewa an cire duk wani saƙon da ya gabata.
Na gaba, madauki yana ci gaba da karanta ƙimar potentiometer kuma yana sabunta matsayin servo da nunin LCD:
void loop() {
val = analogRead(potpin); // yana karanta darajar potentiometer
angle = map(val, 0, 1023, 0, 180); // auna shi don amfani da shi tare da servo
myservo.write(angle); // yana saita matsayin servo bisa ga darajar da aka auna
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Darajar Pot:");
lcd.setCursor(11, 0);
lcd.print(val);
lcd.setCursor(0, 1);
lcd.print("Angle :");
lcd.setCursor(11, 1);
lcd.print(angle);
delay(500);
}
Wannan madauki yana karanta darajar potentiometer, yana auna shi zuwa kusurwar da ta dace don servo, kuma yana sabunta nunin LCD tare da duka darajar potentiometer da kusurwar servo. delay(500) a ƙarshen madauki yana hana nunin sabuntawa da sauri.
Nuni / Abin da za ka Yi Tsammani
Lokacin da ka kunna tsarin, LCD zai nuna "Robojax Servo Knob" na daƙiƙa 2, sannan darajar potentiometer da kusurwar servo. Yayin da kake juya potentiometer, kusurwar servo za ta canza daidai, kuma sabuwar darajar potentiometer za ta bayyana akan LCD. Idan ka sami wani hali marar tsammani, kamar servo yana motsawa zuwa wani wuri marar daidai, duba haɗin wayoyi na potentiometer da haɗin servo (a cikin bidiyo a 10:00).
This tutorial is part of: Motocin Servo
- Sarrafa Servo da Maɓallan Turawa ta amfani da Arduino
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Sarrafa Servo da Potentiometer ta amfani da Arduino
- Controlling Servo Motors Using an Infrared Remote with Arduino
- Kulawa na Motar Servo Arduino ta Amfani da Potentiometer
- Sarrafawa Matsayi na Servo da Hanyoyin Hannu don Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- Yadda ake Amfani da Continuous 360° Servo tare da Arduino
- Lambar Arduino da Bidiyo don PCA9685 16-Tashar 12-Bit Servo Controller V1
- Gina Arduino Servo Toggle Switch tare da Push Button
/*
Controlling a servo position using a potentiometer (variable resistor)
by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
modified on 8 November 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Knob
*/
// May 20, 2018 20:08
// Written by Ahmad S. for Robojax.com at Ajax, Ontario, Canada
// Watch the video for this code at https://youtu.be/DN1LPMSZtNA
// This code is taken from http://robojax.com/learn/arduino
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// start of servo settings *******
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = A0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
int angle; // the angle servo is sent to
// END of servo settings *******
void setup() {
// Robojax Servo knob with LCD1602 Test
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
// Robojax Servo knob with LCD1602 Test
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Robojax Servo Knob");
delay(2000);
}
void loop() {
// Robojax Servo knob with LCD1602 Test
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
angle = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(angle); // sets the servo position according to the scaled value
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pot. Value:");
// set the cursor to column 0, line 1
lcd.setCursor(11, 0);
lcd.print(val);
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("Angle :");
lcd.setCursor(11, 1);
lcd.print(angle);
delay(500);
// Robojax Servo knob with LCD1602 Test
}
Albarkatun da kuma shafukan da za a duba
-
WajeLCD1602 library (from GitHub)github.com
-
WajeUsing LCD1602 LCD display for Arduinoyoutube.com
Fayiloli📁
Babu fayiloli da ake da su.