ኮድ ይፈልጉ

የተከታታይ 360° ሰርቮን ከአርዱኖ ጋር እንዴት መጠቀም እንደሚቻል

የተከታታይ 360° ሰርቮን ከአርዱኖ ጋር እንዴት መጠቀም እንደሚቻል

በዚህ መማሪያ ውስጥ፣ አርዱኖን በመጠቀም ቀጣይነት ያለው 360° ሰርቮን እንዴት መቆጣጠር እንደምንችል እንማራለን። ከመደበኛ ሰርቮዎች በተለየ፣ ቀጣይ ሰርቮዎች ያለገደብ በሁለቱም አቅጣጫ መሽከርከር ይችላሉ፣ ይህም ለተለያዩ አፕሊኬሽኖች ተስማሚ ያደርጋቸዋል። ነገር ግን፣ አቀማመጣቸውን መቆጣጠር ወደ እነሱ የሚላኩትን ትዕዛዞች መረዳት እና ትክክለኛዎቹን የማቆሚያ እሴቶች ለማግኘት ትንሽ ሙከራ ይጠይቃል።

ሰርቮውን ወደ ግራ፣ ወደ ቀኝ ለማሽከርከር ወይም ለማቆም በሴሪያል ሞኒተር በኩል ትዕዛዞችን እንድንልክ የሚያስችለንን ፕሮግራም እናዘጋጃለን። ኮዱ የምናስገባቸውን ትዕዛዞች የASCII እሴቶችን ለመተርጎም አስፈላጊውን አመክንዮ ያካትታል። ስለ ኮድ አሰራር ሂደት ግልጽ ለማድረግ፣ ቪዲዮውን መመልከትዎን እርግጠኛ ይሁኑ (በቪዲዮው 12:30 ላይ)።

ሃርድዌር ተብራርቷል

ይህንን ፕሮጀክት ለመተግበር፣ ቀጣይ 360° ሰርቮ፣ አርዱኖ ቦርድ እና በቂ ጅረት (ቢያንስ 500mA) ማቅረብ የሚችል የኃይል አቅርቦት ያስፈልግዎታል። ሰርቮው የመሽከርከር አቅጣጫን እና ፍጥነትን ለመወሰን የ pulse width modulation (PWM) የሚጠቀም የቁጥጥር ምልክቶችን ከአርዱኖ ይቀበላል።

የሰርቮ ሞተሩ ራሱ ሶስት ሽቦዎች አሉት፡ የኃይል፣ የመሬት እና የቁጥጥር። የኃይል ሽቦው ከኃይል አቅርቦቱ ጋር ይገናኛል፣ የመሬት ሽቦው ከሁለቱም የኃይል አቅርቦት እና የአርዱኖ መሬት ጋር ይገናኛል፣ እና የቁጥጥር ሽቦው ለምልክት ማስተላለፊያ በአርዱኖ ላይ ከተመደበው ፒን ጋር ይገናኛል።

የዳታሼት ዝርዝሮች

አምራችጄኔሪክ
የክፍል ቁጥርቀጣይ 360° ሰርቮ
የሎጂክ/IO ቮልቴጅ5 ቪ
የአቅርቦት ቮልቴጅ4.8–6 ቪ
የውጤት ጅረት (በአንድ ቻናል)500 mA
ከፍተኛ ጅረት (በአንድ ቻናል)1 ኤ ከፍተኛ
የPWM ድግግሞሽ መመሪያ50 Hz
የግቤት ሎጂክ ገደቦችከፍተኛ፡ >2.5 ቪ፣ ዝቅተኛ፡ <0.8 ቪ
የቮልቴጅ ጠብታ / RDS(on) / ሳቹሬሽን
የሙቀት ገደቦች
ፓኬጅመደበኛ ሰርቮ መኖሪያ
ማስታወሻዎች / ልዩነቶችበተለያዩ መጠኖች ይገኛል
  • በአርዱኖ እና በኃይል አቅርቦት መካከል የጋራ መሬት ይኑርዎት።
  • አርዱኖን ከመጫን ለመቆጠብ ለሰርቮው ውጫዊ የኃይል አቅርቦት ይጠቀሙ።
  • ለሰርቮዎ ምርጡን አፈጻጸም ለማግኘት የማቆሚያ እሴቶችን በመሞከር ይለማመዱ።
  • ከመጠን በላይ ሙቀትን ለመከላከል በሚሰራበት ጊዜ የሰርቮውን ሙቀት ይቆጣጠሩ።
  • የሰርቮውን ፍጥነት እና አቅጣጫ ለመቆጣጠር የPWM ምልክት ይጠቀሙ።

የሽቦ መገጣጠም መመሪያዎች

ቀጣይ 360° ሰርቮዎን ከአርዱኖ ጋር ለማገናኘት፣ በመጀመሪያ የሰርቮውን የኃይል ሽቦ 5ቪ ከሚሰጥ ውጫዊ የኃይል አቅርቦት ጋር በማገናኘት ይጀምሩ። የሰርቮው የመሬት ሽቦ በአርዱኖ ላይ ካለው የመሬት (GND) ፒን ጋር መገናኘት አለበት፣ ይህም የኃይል አቅርቦቱ እና አርዱኖ የጋራ መሬት እንዲጋሩ ያደርጋል። የሰርቮው የቁጥጥር ሽቦ በአርዱኖ ላይ ወደ ፒን 9 ይሄዳል፣ ይህም የPWM ምልክት የሚላክበት ቦታ ነው።

ግንኙነቶችዎ ደህንነታቸው የተጠበቀ መሆናቸውን በድጋሚ ያረጋግጡ፣ ምክንያቱም ልቅ ግንኙነቶች ወደ መዛባት የሰርቮ ባህሪ ሊመሩ ይችላሉ። ሰርቮዎ በቀጥታ ከአርዱኖ መሞላት የሚችል ዓይነት ከሆነ፣ የኃይል ሽቦውን ከአርዱኖው 5ቪ ፒን ጋር ማገናኘት ይችላሉ፣ ነገር ግን አጠቃላይ ጅረቱ አርዱኖ ሊያቀርበው ከሚችለው በላይ እንዳይሆን ያረጋግጡ።

የኮድ ምሳሌዎች እና ጉዞ

የሚከተለው ቅንጥብ ሰርቮውን እንዴት ማዋቀር እና ከሴሪያል ሞኒተር ትዕዛዞችን እንዴት ማንበብ እንደሚቻል ያሳያል፦

#include 

Servo myservo;  // ሰርቮን ለመቆጣጠር የሰርቮ ነገር ይፍጠሩ
int incomingByte = 0;   // ለገቢ ሴሪያል ውሂብ

void setup() {
  Serial.begin(9600);
  myservo.attach(9);  // ሰርቮውን በፒን 9 ላይ ከሰርቮ ነገሩ ጋር ያያይዙ
}

በዚህ የኮድ ቅንጥብ ውስጥ፣ የሰርቮ ቤተ-መጻሕፍትን እናካትታለን እና myservo የተባለ የሰርቮ ነገር እንፈጥራለን። እንዲሁም ሴሪያል ግንኙነትን በ9600 ባውድ እናዋቅራለን እና ሰርቮውን ከፒን 9 ጋር እናያይዛለን።

በመቀጠል፣ የገቢ ሴሪያል ውሂብን የምናነብበት እና በትዕዛዞቹ መሰረት ሰርቮውን የምንቆጣጠርበት ዋናው loop አለን፦

void loop() {
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    if (incomingByte == 108) { // 'L' ትዕዛዝ
      myservo.write(0); // በሰዓት አቅጣጫ ያሽከርክሩ
    } else if (incomingByte == 114) { // 'R' ትዕዛዝ
      myservo.write(180); // በተቃራኒ ሰዓት አቅጣጫ ያሽከርክሩ
    } else if (incomingByte == 60) { // የማቆሚያ ትዕዛዝ
      myservo.write(60); // ሰርቮውን ያቁሙ
    }
  }
}

ይህ ኮድ በሴሪያል ቋት ውስጥ ማንኛውም ውሂብ መኖሩን ያረጋግጣል። በግቤቱ የASCII እሴት ላይ በመመስረት (ለምሳሌ፣ 108 ለ'L' በሰዓት አቅጣጫ ለማሽከርከር፣ 114 ለ'R' በተቃራኒ ሰዓት አቅጣጫ ለማሽከርከር)፣ ተጓዳኝ ትዕዛዙን ወደ ሰርቮው ይልካል።

ለተሟላ ኮድ እና ተጨማሪ ዝርዝሮች፣ እባክዎን ከጽሑፉ በታች የተጫነውን ሙሉ ፕሮግራም ይመልከቱ።

ማሳያ / ምን እንደሚጠበቅ

ኮዱን ሲሰቅሉ እና ሴሪያል ሞኒተሩን ሲከፍቱ፣ ሰርቮውን ወደ ግራ ለማሽከርከር 'L'፣ ወደ ቀኝ ለማሽከርከር 'R'፣ ወይም ሰርቮውን ለማቆም ሌሎች እሴቶችን ማስገባት ይችላሉ። የሰርቮው ባህሪ በጥራቱ እና በንድፍ ላይ ሊለያይ ስለሚችል የተለያዩ የማቆሚያ እሴቶችን እንደሚያገኙ ይጠብቁ (በቪዲዮው 18:45 ላይ)።

ሰርቮው ለትዕዛዞቹ እንዴት ምላሽ እንደሚሰጥ ይጠንቀቁ፤ እንደተጠበቀው ካላቆመ፣ ጥሩውን የማቆሚያ ትዕዛዝ እስኪያገኙ ድረስ የተለያዩ እሴቶችን ይሞክሩ። ይህ በተለይ ሰርቮው ከመጠን በላይ እንዳይሞቅ ለማድረግ የተወሰነ ሙከራ ሊጠይቅ ይችላል።

ምዕራፎች

  • መግቢያ (0:00)
  • ሃርድዌር ተብራርቷል (1:30)
  • የሽቦ መገጣጠም መመሪያዎች (3:45)
  • የኮድ ጉዞ (5:15)
  • ማሳያ (18:00)

መርጃዎች

  • የአርዱኖ ሰርቮ ቤተ-መጻሕፍት ሰነዶች
  • የቀጣይ ሰርቮ አምራች ዳታሼቶች
115-Arduino code to control continuous 360° servo from serial monitor command
ቋንቋ: C++
/*
 * የቀጣይ ሴርቮ (360 ሴርቮ) መቆጣጠር ማስታወቂያ  
 * ይህ ኮድ ከሴሪያል ሞኒተር በተነሳ 360-ዲግሪ ሴርቮን ማቆጣጠር ይፈቅዳል።  
 * ይህ 350 ሴርቮ ሞተር ለመዝናናት ብቻ ነው። ትክክለኛ እንቅስቃሴ የሚያስፈልግ የእውነተኛ አፕሊኬሽን ላይ አይተገበርም። የስተፐር ሞተር ወይም ውድ ሴርቮ ሞተር ይውሰዱ።  
 * 
 * በአሐመድ ሻምሺሪ በRobojax.com የተሻሻለ  
 * በእሑድ፣ ጁላይ 1፣ 2018 በ11:09 ኤ.ኤም በአጃክስ፣ ኦንታሪዮ፣ ካናዳ  
 * የዚህ ፕሮጀክት ቪዲዮ መመሪያ ይመልከቱ፡ https://youtu.be/b_xvu6wWafA  
 * ይህ ኮድ ከRobojax.com ይውሰዱ  
 * 
 * የመጀመሪያ ኮድ በBARRAGAN <http://barraganstudio.com>  
 * ይህ ምሳሌ ኮድ በህዝብ እንደ ነበር ነው።  
 * በ8 ኖቬምበር 2013 የተሻሻለ  
 * በስኮት ፊትዝግራልድ  
 * http://www.arduino.cc/en/Tutorial/Sweep
 */
#include <Servo.h>

Servo myservo; // ሴርቮ ኦቤክት ለሴርቮ መቆጣጠር ይፍጠሩ
 // በብዙ ቦርድ ላይ 12 ሴርቮ ኦቤክቶች ይፈጥሩ ይችላሉ።

int pos = 0; // ምንጭ የሚያከብር የሰርቦ ቦታ ይዘው ተለዋዋጭ
int incomingByte = 0; // የሚገኝ ሴሪያል ውሂብ ለመግባት

void setup() {
  Serial.begin(9600);
  myservo.attach(9); // servo እንደ አንቀጽ 9 ያያይዞ ወደ ሴርቮ ኦቤክት ይገናኛል
}



void loop() {

 // ውሂብ በተቀባ ጊዜ ብቻ ይላኩ።
        if (Serial.available() > 0) {
 // እባክህ ወደ ወደ መጣ ባይት እንደ እንደ ይዘው ይወዳድሩ።
                incomingByte = Serial.read();

 // እባክህ ያለህን ንገር።
                Serial.print("received: ");
                Serial.print (incomingByte);
                if(incomingByte == 108){
                 Serial.println(" sent 0 Rotating CW ");
                 myservo.write(0);
                }else if(incomingByte == 114){
                  Serial.println(" sent 180 Rotating CCW ");
                  myservo.write(180);
                }else if(incomingByte == 60){
                  Serial.println(" sent Stopped ");
                  myservo.write(60);
                }else{
                  Serial.println(" moving Randomly");
                  myservo.write(incomingByte);
                }


        }


}

ምንጮች እና ምንጮች

አሁን ምንም ምንጮች የለም።

ፋይሎች📁

አንድ ፋይል የለም።