குறியீட்டை தேடு

ஆர்டுயினோவைப் பயன்படுத்தி புஷ் பட்டன்கள் மூலம் சர்வோவைக் கட்டுப்படுத்துதல்

ஆர்டுயினோவைப் பயன்படுத்தி புஷ் பட்டன்கள் மூலம் சர்வோவைக் கட்டுப்படுத்துதல்

இந்த டுடோரியலில், இரண்டு புஷ் பட்டன்களைப் பயன்படுத்தி ஒரு சர்வோ மோட்டாரை எவ்வாறு கட்டுப்படுத்துவது என்பதைக் கற்றுக்கொள்வோம், ஒன்று சர்வோவை இடதுபுறமாக நகர்த்துவதற்கும், மற்றொன்று வலதுபுறமாக நகர்த்துவதற்கும். நீங்கள் வலது பட்டனை அழுத்தும்போது, சர்வோ 10 டிகிரி வலதுபுறமாக நகரும், மேலும் இடது பட்டனை அழுத்தும்போது, அதே அளவு இடதுபுறமாக நகரும். நீங்கள் ஒரு பட்டனை அழுத்திப் பிடித்தால், அதை விடும் வரை சர்வோ அந்த திசையில் தொடர்ந்து நகரும்.

இந்த திட்டம் Arduino ஐப் பயன்படுத்தி ஒரு சர்வோ மோட்டாருடன் பட்டன்களை எவ்வாறு இணைப்பது என்பதைப் புரிந்துகொள்ள ஒரு சிறந்த வழியாகும். தேவையான வன்பொருள் கூறுகள், வயரிங் வழிமுறைகள் மற்றும் அனைத்தையும் செயல்படுத்த தேவையான குறியீடு ஆகியவற்றை நாங்கள் உள்ளடக்குவோம். தெளிவான புரிதலுக்கு, இந்த டுடோரியலுடன் இணைந்த வீடியோவை நீங்கள் பார்க்கலாம் (வீடியோவில் 01:00 மணிக்கு).

வன்பொருள் விளக்கம்

இந்த திட்டத்திற்கு, உங்களுக்கு ஒரு Arduino போர்டு, ஒரு சர்வோ மோட்டார் மற்றும் இரண்டு புஷ் பட்டன்கள் தேவைப்படும். சர்வோ மோட்டார் இயக்கத்திற்கு பொறுப்பாகும், அதே நேரத்தில் புஷ் பட்டன்கள் அந்த இயக்கத்தின் திசையை கட்டுப்படுத்த உள்ளீடுகளாக செயல்படுகின்றன. Arduino இந்த உள்ளீடுகளை செயலாக்கி சர்வோவிற்கு பொருத்தமான சிக்னல்களை அனுப்புகிறது.

சர்வோ மோட்டார் பல்ஸ்-அகல பண்பேற்றம் (PWM) சிக்னல்களின் அடிப்படையில் செயல்படுகிறது. வெவ்வேறு பல்ஸ் அகலங்களை அனுப்புவதன் மூலம், சர்வோவின் கோணத்தை நீங்கள் கட்டுப்படுத்தலாம். புஷ் பட்டன்கள் Arduino இல் உள்ள டிஜிட்டல் உள்ளீட்டு பின்களுடன் இணைக்கப்படும், மேலும் வயரிங்கை எளிமைப்படுத்த உள் புல்-அப் ரெசிஸ்டர்களைப் பயன்படுத்துவோம்.

டேட்டாஷீட் விவரங்கள்

உற்பத்தியாளர்பல்வேறு
பகுதி எண்SG90
லாஜிக்/IO மின்னழுத்தம்5 V
வழங்கல் மின்னழுத்தம்4.8–6 V
வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு)1.5 A அதிகபட்சம்
உச்ச மின்னோட்டம் (ஒரு சேனலுக்கு)2.5 A அதிகபட்சம்
PWM அதிர்வெண் வழிகாட்டுதல்50 Hz
உள்ளீட்டு லாஜிக் வரம்புகள்0.3VCC முதல் 0.7VCC
மின்னழுத்த வீழ்ச்சி / RDS(on) / செறிவு0.4 V
வெப்ப வரம்புகள்85 °C
பேக்கேஜ்பிளாஸ்டிக்
குறிப்புகள் / மாறுபாடுகள்நிலையான 180° சுழற்சி

  • சர்வோ உங்கள் வழங்கல் மின்னழுத்தத்திற்கு ஏற்றதாக இருப்பதை உறுதிசெய்யவும்.
  • அதிக மின்னோட்டங்களில் இயங்கும்போது பொருத்தமான வெப்ப மூழ்கியைப் பயன்படுத்தவும்.
  • புல்-அப் உள்ளமைவுடன் பட்டன்களை தரையுடன் இணைக்கவும்.
  • ஒழுங்கற்ற நடத்தை ஏற்பட்டால் உங்கள் பட்டன்களை டீபவுன்ஸ் செய்யவும்.
  • பிழைத்திருத்தத்திற்காக தொடர் வெளியீட்டை கண்காணிக்கவும்.

வயரிங் வழிமுறைகள்

Arduino wriing for Sevo motor with 2 push buttons
Arduino wriing for Sevo motor with 2 push buttons

கூறுகளை வயர் செய்ய, சர்வோ மோட்டாரை இணைப்பதன் மூலம் தொடங்கவும். சர்வோவின் சிவப்பு கம்பியை Arduino இல் உள்ள 5V பின்னுடன், கருப்பு கம்பியை GND பின்னுடன், மற்றும் மஞ்சள் அல்லது வெள்ளை சிக்னல் கம்பியை Arduino இல் உள்ள பின் 9 உடன் இணைக்கவும். இந்த பின் சர்வோவின் நிலையை கட்டுப்படுத்தும்.

அடுத்து, புஷ் பட்டன்களை வயர் செய்யவும். வலது பட்டனின் ஒரு முனையை பின் 2 உடன் மற்றும் மறு முனையை தரையுடன் இணைக்கவும். இடது பட்டனுக்கு, ஒரு முனையை பின் 12 உடன் மற்றும் மறு முனையையும் தரையுடன் இணைக்கவும். இந்த அமைப்பு பட்டன்கள் அழுத்தப்படாதபோது உள் புல்-அப் ரெசிஸ்டர்கள் பின்களை உயர்ந்த நிலையில் வைத்திருக்க அனுமதிக்கிறது.

குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்

ஒற்றை புஷ் பட்டனுடன் சர்வோவை கட்டுப்படுத்துவதற்கான குறியீட்டுடன் தொடங்குவோம். குறியீடு சர்வோ பொருளை துவக்கி ஆரம்ப கோணத்தை அமைக்கிறது. இங்கே ஒரு சிறிய பகுதி:

int angle = 90;    // சர்வோவிற்கான ஆரம்ப கோணம்
int angleStep = 10; // இயக்கத்திற்கான படி அளவு

இந்த பகுதியில், angle சர்வோவின் தற்போதைய நிலையை குறிக்கிறது, அதே நேரத்தில் angleStep ஒவ்வொரு பட்டன் அழுத்தத்திலும் சர்வோ எவ்வளவு நகரும் என்பதை வரையறுக்கிறது. சர்வோவின் நிலையை கண்காணிக்க இந்த குறியீடு அவசியம்.

அடுத்து, சர்வோவை இணைத்து உள்ளீட்டு பின்களை உள்ளமைக்கும் செட்அப் செயல்பாடு உள்ளது:

void setup() {
  Serial.begin(9600);          // தொடர் அமைப்பு
  myservo.attach(9);  // பின் 9 இல் சர்வோவை இணைக்கிறது
  pinMode(2, INPUT_PULLUP); // பட்டன் பின்னை உள்ளமைக்கிறது
}

செட்அப்பில், தொடர் மானிட்டரை துவக்கி சர்வோவை பின் 9 உடன் இணைக்கிறோம். பின் 2 இல் உள்ள பட்டன் புல்-அப் ரெசிஸ்டருடன் உள்ளீடாக அமைக்கப்படுகிறது, இது வயரிங்கை எளிமையாக்கி வெளிப்புற ரெசிஸ்டர்களின் தேவையை தவிர்க்கிறது.

இறுதியாக, பட்டன் அழுத்தத்தை கையாளும் லூப் செயல்பாட்டைப் பார்க்கிறோம்:

while(digitalRead(2) == LOW) {
  angle = angle + angleStep; // கோணத்தை அதிகரிக்கிறது
  myservo.write(angle); // சர்வோவை நகர்த்துகிறது
}

இந்த லூப் பட்டன் அழுத்தப்பட்டுள்ளதா என்பதை தொடர்ந்து சரிபார்க்கிறது. அது அழுத்தப்படும்போது, கோணம் வரையறுக்கப்பட்ட படியால் அதிகரிக்கிறது, மேலும் சர்வோ அதற்கேற்ப நகரும். சர்வோவிற்கு சேதம் ஏற்படாமல் இருக்க கோணம் வரம்புகளுக்குள் (0 முதல் 180 டிகிரி வரை) இருப்பதை உறுதிசெய்வது முக்கியம்.

செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்

நீங்கள் வலது பட்டனை அழுத்தும்போது, சர்வோ 180 டிகிரி அதிகபட்சத்தை அடையும் வரை 10 டிகிரி அதிகரிப்புகளில் வலதுபுறமாக நகர வேண்டும். இதேபோல், இடது பட்டனை அழுத்தினால் அது இடதுபுறமாக நகரும். நீங்கள் ஒரு பட்டனை அழுத்திப் பிடித்தால், அதை விடும் வரை சர்வோ அந்த திசையில் தொடர்ந்து நகரும் (வீடியோவில் 01:00 மணிக்கு).

பொதுவான பிழைகளில் தவறான இணைப்புகள் அல்லது மிதக்கும் உள்ளீடுகள் போன்ற வயரிங் சிக்கல்கள் அடங்கும். உங்கள் இணைப்புகள் பாதுகாப்பாக இருப்பதையும், குறியீட்டில் குறிப்பிட்டுள்ள சரியான பின்களைப் பயன்படுத்துவதையும் எப்போதும் உறுதிசெய்யவும்.

படங்கள்

Control a servo with a single push button using Arduino
Control Servo with single push button with Arduino
SG90_servo_motor-1
SG90_servo_motor-1
SG90_servo_motor-0
SG90_servo_motor-0
Arduino wriing for Sevo motor with 2 push buttons
Arduino wriing for Sevo motor with 2 push buttons
98-Control a servo with a single push button using Arduino
மொழி: C++
/*
 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

  
}
99-Control a servo with two push buttons using Arduino
மொழி: C++
/*
 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
  }// 

  
}

நீங்கள் தேவைப்படும் எண்ணங்கள்

வளங்கள் மற்றும் மேற்கோள்கள்

இன்னும் எந்த வளங்களும் இல்லை.

கோப்புகள்📁

கோப்புகள் கிடைக்கவில்லை.