এই টিউটোরিয়ালটি এর একটি অংশ: সার্ভো মোটরস
সার্ভো মোটর সম্পর্কিত সমস্ত ভিডিও এখানে তালিকাভুক্ত করা হয়েছে। অন্যান্য ভিডিওর লিঙ্ক এই নিবন্ধের নীচে রয়েছে।
আরডুইনো ব্যবহার করে পুশ বাটনের মাধ্যমে সার্ভো নিয়ন্ত্রণ করা
এই টিউটোরিয়ালে, আমরা শিখব কীভাবে দুটি পুশ বাটন ব্যবহার করে একটি সার্ভো মোটর নিয়ন্ত্রণ করতে হয়, একটি বাটন সার্ভোকে বামে সরানোর জন্য এবং অন্যটি ডানে সরানোর জন্য। যখন আপনি ডান বাটন চাপবেন, সার্ভোটি ১০ ডিগ্রি ডানে সরবে, এবং যখন আপনি বাম বাটন চাপবেন, এটি একই পরিমাণে বামে সরবে। যদি আপনি একটি বাটন চেপে ধরে রাখেন, সার্ভোটি সেই দিকে চলতে থাকবে যতক্ষণ না আপনি এটি ছেড়ে দেন।

এই প্রকল্পটি Arduino ব্যবহার করে বাটন এবং সার্ভো মোটরের মধ্যে ইন্টারফেসিং বোঝার একটি দুর্দান্ত উপায়। আমরা প্রয়োজনীয় হার্ডওয়্যার উপাদান, ওয়্যারিং নির্দেশনা এবং এটি কাজ করার জন্য প্রয়োজনীয় কোড কভার করব। আরও স্পষ্ট বোঝার জন্য, আপনি এই টিউটোরিয়ালের সাথে থাকা ভিডিওটি দেখতে পারেন (ভিডিওতে ০১:০০ সময়ে)।
হার্ডওয়্যার ব্যাখ্যা
এই প্রকল্পের জন্য, আপনার একটি Arduino বোর্ড, একটি সার্ভো মোটর এবং দুটি পুশ বাটন প্রয়োজন হবে। সার্ভো মোটরটি চলাচলের জন্য দায়ী, যখন পুশ বাটনগুলি সেই চলাচলের দিক নিয়ন্ত্রণের জন্য ইনপুট হিসাবে কাজ করে। Arduino এই ইনপুটগুলি প্রক্রিয়া করে এবং সার্ভোতে উপযুক্ত সংকেত পাঠায়।
সার্ভো মোটরটি পালস-প্রস্থ মডুলেশন (PWM) সংকেতের ভিত্তিতে কাজ করে। বিভিন্ন পালস প্রস্থ পাঠিয়ে, আপনি সার্ভোর কোণ নিয়ন্ত্রণ করতে পারেন। পুশ বাটনগুলি Arduino-এর ডিজিটাল ইনপুট পিনের সাথে সংযুক্ত থাকবে, এবং আমরা ওয়্যারিং সহজ করতে অভ্যন্তরীণ পুল-আপ রেজিস্টর ব্যবহার করব।
ডেটাশিট বিবরণ
| নির্মাতা | বিভিন্ন |
|---|---|
| পার্ট নম্বর | SG90 |
| লজিক/IO ভোল্টেজ | ৫ V |
| সাপ্লাই ভোল্টেজ | ৪.৮–৬ V |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | সর্বোচ্চ ১.৫ A |
| পিক কারেন্ট (প্রতি চ্যানেল) | সর্বোচ্চ ২.৫ A |
| PWM ফ্রিকোয়েন্সি নির্দেশনা | ৫০ Hz |
| ইনপুট লজিক থ্রেশহোল্ড | ০.৩VCC থেকে ০.৭VCC |
| ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন | ০.৪ V |
| থার্মাল সীমা | ৮৫ °C |
| প্যাকেজ | প্লাস্টিক |
| নোট / ভেরিয়েন্ট | স্ট্যান্ডার্ড ১৮০° ঘূর্ণন |
- নিশ্চিত করুন যে সার্ভোটি আপনার সাপ্লাই ভোল্টেজের জন্য রেট করা আছে।
- উচ্চ কারেন্টে কাজ করার সময় উপযুক্ত হিট সিঙ্কিং ব্যবহার করুন।
- পুল-আপ কনফিগারেশনের সাথে বাটনগুলিকে গ্রাউন্ডে সংযুক্ত করুন।
- অস্থির আচরণ অনুভব করলে আপনার বাটনগুলিকে ডিবাউন্স করুন।
- ডিবাগিংয়ের জন্য সিরিয়াল আউটপুট মনিটর করুন।
ওয়্যারিং নির্দেশনা

উপাদানগুলি ওয়্যার করতে, সার্ভো মোটর সংযুক্ত করে শুরু করুন। সার্ভোর লাল তারটি Arduino-এর 5V পিনে, কালো তারটি GND পিনে এবং হলুদ বা সাদা সিগন্যাল তারটি Arduino-এর পিন ৯-এ সংযুক্ত করুন। এই পিনটি সার্ভোর অবস্থান নিয়ন্ত্রণ করবে।
এরপর, পুশ বাটনগুলি ওয়্যার করুন। ডান বাটনের একটি টার্মিনাল পিন ২-এ এবং অন্যটি গ্রাউন্ডে সংযুক্ত করুন। বাম বাটনের জন্য, একটি টার্মিনাল পিন ১২-এ এবং অন্যটিও গ্রাউন্ডে সংযুক্ত করুন। এই সেটআপটি অভ্যন্তরীণ পুল-আপ রেজিস্টরগুলিকে বাটন চাপা না হলে পিনগুলিকে উচ্চ রাখতে দেয়।
কোড উদাহরণ ও ওয়াকথ্রু
একটি একক পুশ বাটন দিয়ে সার্ভো নিয়ন্ত্রণের কোড দিয়ে শুরু করা যাক। কোডটি সার্ভো অবজেক্টটি আরম্ভ করে এবং একটি প্রাথমিক কোণ সেট করে। এখানে একটি সংক্ষিপ্ত অংশ:
int angle = 90; // সার্ভোর জন্য প্রাথমিক কোণ
int angleStep = 10; // চলাচলের জন্য ধাপের আকার
এই অংশে, angle সার্ভোর বর্তমান অবস্থান নির্দেশ করে, যখন angleStep প্রতিটি বাটন চাপে সার্ভো কতটা সরবে তা নির্ধারণ করে। এই কোডটি সার্ভোর অবস্থান ট্র্যাক করার জন্য অপরিহার্য।
এরপর, আমাদের সেটআপ ফাংশন রয়েছে যেখানে আমরা সার্ভো সংযুক্ত করি এবং ইনপুট পিনগুলি কনফিগার করি:
void setup() {
Serial.begin(9600); // সিরিয়াল সেটআপ
myservo.attach(9); // পিন ৯-এ সার্ভো সংযুক্ত করে
pinMode(2, INPUT_PULLUP); // বাটন পিন কনফিগার করে
}
সেটআপে, আমরা সিরিয়াল মনিটর আরম্ভ করি এবং সার্ভোকে পিন ৯-এ সংযুক্ত করি। পিন ২-এর বাটনটি পুল-আপ রেজিস্টর সহ ইনপুট হিসাবে সেট করা হয়, যা ওয়্যারিং সহজ করে এবং বাহ্যিক রেজিস্টরের প্রয়োজন এড়ায়।
অবশেষে, আমরা লুপ ফাংশনটি দেখি যা বাটন চাপ পরিচালনা করে:
while(digitalRead(2) == LOW) {
angle = angle + angleStep; // কোণ বৃদ্ধি
myservo.write(angle); // সার্ভো সরান
}
এই লুপটি ক্রমাগত পরীক্ষা করে যে বাটনটি চাপা আছে কিনা। যখন এটি চাপা থাকে, কোণটি নির্ধারিত ধাপে বৃদ্ধি পায় এবং সার্ভো সেই অনুযায়ী সরে। সার্ভোর ক্ষতি রোধ করতে কোণটি সীমার মধ্যে (০ থেকে ১৮০ ডিগ্রি) থাকে তা নিশ্চিত করা গুরুত্বপূর্ণ।
প্রদর্শন / কী আশা করবেন
যখন আপনি ডান বাটন চাপবেন, সার্ভোটি ১০ ডিগ্রির বৃদ্ধিতে ডানে সরবে যতক্ষণ না এটি সর্বোচ্চ ১৮০ ডিগ্রিতে পৌঁছায়। একইভাবে, বাম বাটন চাপলে এটি বামে সরবে। যদি আপনি একটি বাটন চেপে ধরে রাখেন, সার্ভোটি সেই দিকে চলতে থাকবে যতক্ষণ না আপনি বাটনটি ছেড়ে দেন (ভিডিওতে ০১:০০ সময়ে)।
সাধারণ সমস্যাগুলির মধ্যে ওয়্যারিং ত্রুটি অন্তর্ভুক্ত, যেমন ভুল সংযোগ বা ভাসমান ইনপুট। সর্বদা নিশ্চিত করুন যে আপনার সংযোগগুলি নিরাপদ এবং আপনি কোডে নির্দিষ্ট সঠিক পিনগুলি ব্যবহার করছেন।
এই টিউটোরিয়ালটি বিভাগের একটি অংশ: সার্ভো মোটরস
- 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)
- পোটেনশিওমিটার ব্যবহার করে আরডুইনো দিয়ে সার্ভো নিয়ন্ত্রণ করা
- পোটেনশিওমিটার এবং LCD1602 ব্যবহার করে আরডুইনো দিয়ে সার্ভো নিয়ন্ত্রণ
- ইনফ্রারেড রিমোট দিয়ে আরডুইনো ব্যবহার করে সার্ভো মোটর নিয়ন্ত্রণ করা
- পোটেনশিওমিটার ব্যবহার করে আর্ডুইনো সার্ভো মোটর নিয়ন্ত্রণ
- হ্যান্ড জেসচার দ্বারা সার্ভো পজিশন নিয়ন্ত্রণ করা আর্দুইনোর জন্য
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- কন্টিনিউয়াস ৩৬০° সার্ভো কীভাবে আরডুইনোর সাথে ব্যবহার করবেন
- আরডুইনো কোড এবং PCA9685 ১৬-চ্যানেল ১২-বিট সার্ভো কন্ট্রোলার V1 এর জন্য ভিডিও
- আরডুইনো সার্ভো টগল সুইচ তৈরি করুন একটি পুশ বাটন দিয়ে
/*
Controlling a servo with a push button with Arduino
When a push button is pressed, the servo starts moving to the right or left until
it reaches 180 and then returns to 0 degrees.
May 22, 2018 at 01:00
Written by Ahmad S. for Robojax.com in Ajax, Ontario, Canada
Watch a video for this code at https://youtu.be/7woqNH_qby4
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =10;
void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(2,INPUT_PULLUP);
Serial.println("Robojax Servo Button ");
}
void loop() {
while(digitalRead(2) == LOW){
// change the angle for the next time through the loop:
angle = angle + angleStep;
// reverse the direction of the movement at the ends of the angle:
if (angle <= 0 || angle >= 180) {
angleStep = -angleStep;
}
myservo.write(angle); // move the servo to the desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degrees");
delay(100); // waits for the servo to get there
}// while
}
/*
Controlling a servo with two push buttons with Arduino
When the left push button is pressed, the servo starts moving to the left until it reaches 180 (or zero) degrees.
When the right push button is pressed, the servo starts moving to the right until it reaches 180 (or zero) degrees.
At any instance, if the button is released, the servo stops.
May 22, 2018, at 01:00
Written by Ahmad S. for Robojax.com in Ajax, Ontario, Canada
Watch a video for this code at https://youtu.be/7woqNH_qby4
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =5;
#define LEFT 12 // pin 12 is connected to left button
#define RIGHT 2 // pin 2 is connected to right button
void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(LEFT,INPUT_PULLUP); // assign pin 12 as input for Left button
pinMode(RIGHT,INPUT_PULLUP);// assign pin 2 as input for right button
myservo.write(angle);// send servo to the middle at 90 degrees
Serial.println("Robojax Servo Button ");
}
void loop() {
// Servo button demo by Robojax.com
while(digitalRead(RIGHT) == LOW){
if (angle > 0 && angle <= 180) {
angle = angle - angleStep;
if(angle < 0){
angle = 0;
}else{
myservo.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
}
}
delay(100); // waits for the servo to get there
}// while
// Servo button demo by Robojax.com
while(digitalRead(LEFT) == LOW){
// Servo button demo by Robojax.com
if (angle >= 0 && angle <= 180) {
angle = angle + angleStep;
if(angle >180){
angle =180;
}else{
myservo.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
}
}
delay(100); // waits for the servo to get there
}//
}
আপনাকে যা প্রয়োজন হতে পারে
-
অ্যামাজনServo motor on Amazonamzn.to
-
অলি এক্সপ্রেসPurchase SG90 servo motor 180 or 360 from AliExpresss.click.aliexpress.com
সম্পদ ও রেফারেন্সসমূহ
এখনো কোনো সম্পদ নেই।
ফাইলসমূহ📁
কোনো ফাইল উপলব্ধ নেই।