ኮድ ይፈልጉ

የXY-1250 10–50A/60A 3000W PWM ሞተር ፍጥነት መቆጣጠሪያን በአርዱኖ በመጠቀም

የXY-1250 10–50A/60A 3000W PWM ሞተር ፍጥነት መቆጣጠሪያን በአርዱኖ በመጠቀም

በዚህ መማሪያ ውስጥ፣ የተለመደውን XY-1250 PWM የሞተር ፍጥነት መቆጣጠሪያ (ለ10–50A/60A እስከ 3000W የተመዘነ) እንዴት እንደሚወስዱ እና እንደሚቀይሩት እናሳይዎታለን፣ ይህም ፍጥነቱን ከተሰራበት እጀታ ይልቅ በአርዱኖ መቆጣጠር እንዲችሉ ያደርጋል። ይህ ከፍተኛ ኃይል ያለው የሞተር መቆጣጠሪያን ወደ ራሳቸው ፕሮጀክቶች ለማዋሃድ ከሚፈልጉ የትርፍ ጊዜ ማሳለፊያ ባለሙያዎች ዘንድ ተወዳጅ ጥያቄ ነው—ለምሳሌ ብጁ ኤሌክትሪክ ሎንግቦርድ መገንባት፣ የCNC ስፒንድል ፍጥነት መቆጣጠሪያ፣ የሮቦቲክ ድራይቭ ሲስተም፣ ወይም አውቶማቲክ የአየር ማራገቢያ ሲስተም። በእጅ የሚሰራውን ፖቴንሺዮሜትር በዲጂታል ሲግናል በመተካት፣ በሞተርዎ ፍጥነት ላይ ትክክለኛ እና ፕሮግራም ሊደረግ የሚችል ቁጥጥር ያገኛሉ፣ ይህም ለአውቶሜሽን እና ለርቀት አሰራር ብዙ እድሎችን ይከፍታል።

60A-3000W-PWM-board-0

በዚህ ዝግጅት ሊገነቡዋቸው የሚችሏቸው አንዳንድ ተግባራዊ ፕሮጀክቶች እነዚህ ናቸው፦

  • ፕሮግራም ሊደረግ የሚችል የፍጥነት መጨመር ያለው ብጁ ኤሌክትሪክ ሎንግቦርድ ወይም ጎ-ካርት መገንባት።
  • በጂ-ኮድ ሊስተካከል የሚችል የCNC ማሽን ስፒንድል ፍጥነት መቆጣጠሪያ መፍጠር።
  • በሙቀት ዳሳሾች ላይ ተመስርቶ ፍጥነቱን የሚያስተካክል አውቶማቲክ የግሪንሀውስ አየር ማራገቢያ መገንባት።
  • ከፍተኛ ቶርክ ያላቸው ሞተሮች ያሉት በርቀት የሚቆጣጠር ሮቦት መስራት።
  • ለዎርክሾፕ ወይም ለትንሽ ፋብሪካ ብልህ የኮንቬየር ቀበቶ ሲስተም ማዘጋጀት።

የሃርድዌር ክፍሎች

  • XY-1250 PWM የሞተር ፍጥነት መቆጣጠሪያ ሞጁል (10–50A/60A፣ 3000W)
  • አርዱኖ ኡኖ (ወይም ማንኛውም ተኳሃኝ ቦርድ)
  • የዲሲ ሞተር (ለመሞከር)
  • የዲሲ ኃይል አቅርቦት (12V–36V ይመከራል)
  • ፖቴንሺዮሜትር (10kΩ) — ለእጅ መቆጣጠሪያ አማራጭ
  • መዝለያ ሽቦዎች
  • የብየዳ ብረት እና ሽቦ (PCB ለማሻሻል)

XY-1250 እንዴት እንደሚሰራ

XY-1250 የPWM ሲግናል ለማመንጨት 555 ቲመር IC (በቦርዱ ላይ "U3" ተብሎ የተሰየመ) ይጠቀማል። ይህ ሲግናል ከፍተኛ ኃይል ያለውን የሞተር ዑደት የሚቀይሩትን አራት MOSFETዎችን ጌት ይቆጣጠራል። የሞተሩን ፍጥነት የሚወስነው የግዴታ ዑደት—በተለምዶ ከ555 ቲመር ፒን 3 ጋር የተገናኘው በቦርዱ ላይ ባለው ፖቴንሺዮሜትር ነው የሚዘጋጀው። ይህንን በአርዱኖ ለመቆጣጠር፣ የ555ን ውጤት ከMOSFET ጌቶች ማላቀቅ እና በምትኩ የራሳችንን PWM ሲግናል ማስገባት ያስፈልገናል።

ይህ ማሻሻያ አስፈላጊ ነው ምክንያቱም አርዱኖ ከፍተኛ ጅረት ያላቸውን የMOSFET ጌቶች በቀጥታ መንዳት አይችልም። በ555 ቲመር እና በMOSFETዎቹ መካከል ያሉትን የPCB መከታተያዎች በመቁረጥ፣ ዝቅተኛ ቮልቴጅ ያለውን የአርዱኖን PWM ሲግናል በደህና ማስገባት እንችላለን፣ ይህም በሞተሩ ፍጥነት ላይ ሙሉ ዲጂታል ቁጥጥር ይሰጠናል። (በቪዲዮ በ01:42)

የXY-1250 ቦርድን ማሻሻል

60A 3000W ቀይ ሞጁል PCB ከአርዱኖ ጋር ለመስራት የተቆረጠ መስመር

አርዱኖን ከማገናኘታችን በፊት፣ የ555 ቲመርን ውጤት ከMOSFET ጌቶች ለማግለል በPCB ላይ ሁለት ቁርጥኖች ማድረግ ያስፈልገናል። እንዴት እንደሚደረግ እነሆ፦

  1. በቦርዱ ላይ የ555 ቲመር ቺፕን (U3) ያግኙ። ፒን 1ን የሚያመለክት ትንሽ ነጥብ ወይም መስመር አለው።
  2. ከፒን 3 (ውጤቱ) ወደ MOSFET ጌቶች የተገናኙትን ዳዮዶች የሚወስዱትን የPCB መከታተያዎች ይለዩ።
  3. ሹል ቢላዋ ወይም የመቁረጫ ዲስክ ያለው ሮታሪ መሳሪያ በመጠቀም፣ እነዚህን መከታተያዎች በሁለት ቦታዎች በጥንቃቄ ይቁረጡ—ለእያንዳንዱ የውጤት መንገድ አንድ።
  4. ከቆረጡ በኋላ፣ ቁርጥኑ የተሟላ መሆኑን ለማረጋገጥ የቀጣይነት መሞከሪያ ይጠቀሙ። በ555 ፒን 3 እና በMOSFET ጌት አካባቢ መካከል ምንም ቢፕ መስማት የለብዎትም።

ይህ ማሻሻያ ወሳኝ ነው—የ555 ቲመርን ሲግናል ከአርዱኖአችን PWM ሲግናል ጋር እንዳይጣላ ይከላከላል። (በቪዲዮ በ07:02)

60A 3000W ቀይ ሞጁል PCB ከአርዱኖ ጋር ለመስራት የተቆረጠ መስመር

የሽቦ አገናኝ መመሪያ

የዚህ ፕሮጀክት ሽቦ አርዱኖን ከተሻሻለው XY-1250 ቦርድ ጋር ማገናኘትን ያካትታል። የግንኙነት ሥዕላዊ መግለጫው እነሆ፦

  1. ለአርዱኖ ኃይል፦ XY-1250 በግምት 8.5V የሚያወጣ የቮልቴጅ ተቆጣጣሪ አለው። ይህንን ውጤት (በሁለቱ ካፓሲተሮች መካከል ያለውን ቀይ ሽቦ) ከአርዱኖው VIN ፒን ጋር ያገናኙ። ይህ አርዱኖን በቀጥታ ከሞተሩ ኃይል አቅርቦት ያበረታታል። አስፈላጊ፦ ይህንን ከ5V ፒን ጋር አያገናኙ—አርዱኖውን ያቃጥላል።
  2. የመሬት ግንኙነት፦ ከXY-1250 የሚመጣውን መሬት በአርዱኖ ላይ ካለው ማንኛውም GND ፒን ጋር ያገናኙ።
  3. የPWM ሲግናሎች፦ የአርዱኖ ፒን 5ን ከመጀመሪያው የተቆረጠው መከታተያ (የ555 ውጤት ከነበረበት) ጋር፣ እና የአርዱኖ ፒን 6ን ከሁለተኛው የተቆረጠው መከታተያ ጋር ያገናኙ።
  4. ፖቴንሺዮሜትር (አማራጭ)፦ የእጅ መቆጣጠሪያ ከፈለጉ፣ 10kΩ ፖቴንሺዮሜትር ከአርዱኖው A0 ፒን ጋር ያገናኙ፣ ሌሎቹን ሁለት ፒኖች ደግሞ ከ5V እና GND ጋር ያገናኙ።
  5. ሞተር፦ የዲሲ ሞተርዎን ከXY-1250 ሞጁል ውጤት ተርሚናሎች ጋር ያገናኙ።

አንዴ ከተገናኘ፣ አርዱኖው ከሞተሩ ጋር በተመሳሳይ ኃይል ይሰራል፣ እና የተመሳሰሉ PWM ሲግናሎችን ለሁለቱም MOSFET ጌት ዑደቶች ይልካል። (በቪዲዮ በ10:25)

60A-3000W-PWM-board-7-inpu-wires ከአርዱኖ ጋር ለመገናኘት ዝግጁ

የኮድ ማብራሪያ

የአርዱኖ ኮድ ቀላል ነው እና የPWM ሲግናሎችን በማመንጨት ላይ ያተኩራል። ቁልፍ በተጠቃሚ ሊዋቀሩ የሚችሉ ክፍሎች እነዚህ ናቸው፦


#define pwmPin1 5
#define pwmPin2 6
#define controlPin A0
  • pwmPin1 እና pwmPin2 የአርዱኖ ፒኖች ሲሆኑ የPWM ሲግናልን ወደ ሁለቱ MOSFET ጌት ወረዳዎች ይልካሉ። እነዚህ እንደ ፒን 5 እና 6 ተብለው ይገለጻሉ፣ እነዚህም በአርዱኖ ኡኖ ላይ PWM አቅም ያላቸው ፒኖች ናቸው።
  • controlPin ከፖቴንሽዮሜትር (A0) ጋር የተገናኘው አናሎግ ፒን ነው። ፖቴንሽዮሜትር መጠቀም ካልፈለጉ፣ ይህንን ችላ ማለት ይችላሉ።

loop() ተግባር ውስጥ፣ ኮዱ የፖቴንሽዮሜትር እሴትን (0–1023) ያነባል፣ ወደ PWM እሴት (0–255) ይቀይረዋል፣ እና ወደ ሁለቱም PWM ፒኖች ይልከዋል። delay(500) የማደሻ ፍጥነቱን በሰከንድ ሁለት ጊዜ ያዘጋጃል—ለስላሳ ምላሽ ለማግኘት ይህንን ወደ delay(100) መቀነስ ይችላሉ።

ኮዱ የመቶኛ እሴትን (0–100) ወደ PWM እሴት (0–255) የሚቀይር ብጁ toPWM() ተግባርንም ያካትታል። ያለ ፖቴንሽዮሜትር የተወሰነ ፍጥነት ማዘጋጀት ከፈለጉ ይህ ጠቃሚ ነው። ለምሳሌ፣ toPWM(50) መጥራት 127 ይመልሳል፣ ይህም 50% የስራ ዑደትን ይወክላል። የሞተርን ፍጥነት በቀጥታ ለማዘጋጀት ይህንን ተግባር በራስዎ ኮድ ውስጥ መጠቀም ይችላሉ።

60A-3000W-PWM-board-6

መሞከር እና ማሳያ

ኮዱን ከጫኑ እና ሁሉንም ነገር ካገናኙ በኋላ፣ ዝግጅቱን መሞከር ይችላሉ። ፖቴንሽዮሜትር እየተጠቀሙ ከሆነ፣ መዞሩ የሞተርን ፍጥነት ከ0 እስከ 100% በተቀላጠፈ ሁኔታ ያስተካክላል። ተከታታይ መቆጣጠሪያው ሁለቱንም ጥሬ አናሎግ እሴት (0–1023) እና የተቀየረውን PWM እሴት (0–255) ያሳያል።

ፍጥነቱን በፕሮግራም መቆጣጠር ከፈለጉ፣ የፖቴንሽዮሜትር ንባቡን በቋሚ እሴት መተካት ይችላሉ። ለምሳሌ፣ int pwm = toPWM(20); ማዘጋጀት ሞተሩን በ20% ፍጥነት ያሰራዋል። ይህ ሞተሩ ያለ በእጅ ማስተካከያ በተወሰነ ፍጥነት እንዲሰራ ለሚፈልጉ መተግበሪያዎች ፍጹም ነው። (በቪዲዮው በ16:42)

የቀጥታ ፕሮጀክት ማሳያ

በቪዲዮው ውስጥ፣ የተሻሻለው XY-1250 መቆጣጠሪያ ትንሽ የዲሲ ሞተር ሲያሰራ ማየት ይችላሉ። ማሳያው የሚያሳየው፡-

  • ከአርዱኖ ጋር በተገናኘ ፖቴንሽዮሜትር የሞተርን ፍጥነት መቆጣጠር።
  • toPWM() ተግባርን በመጠቀም ሞተሩን በቋሚ 20% ፍጥነት ማዘጋጀት።
  • ሙሉ የቁጥጥር ክልልን ለማሳየት ፍጥነቱን ወደ 50% እና ከዚያ 80% መጨመር።

የኦስሲሎስኮፕ ንባቦች ሁለቱም PWM ሲግናሎች በትክክል የተመሳሰሉ መሆናቸውን ያረጋግጣሉ፣ በሁለቱ ቻናሎች መካከል ምንም የደረጃ ልዩነት የለም። ይህ MOSFETዎቹ በእኩል መጠን መነዳታቸውን ያረጋግጣል፣ ያልተስተካከለ መልበስ ወይም ከመጠን በላይ ሙቀትን ይከላከላል። (በቪዲዮው በ14:56)

60A-3000W-PWM-board-3

ምዕራፎች

  • [00:00] መግቢያ እና የፕሮጀክት አጠቃላይ እይታ
  • [01:42] የXY-1250 PWM መቆጣጠሪያ እንዴት እንደሚሰራ
  • [04:28] የመጀመሪያውን ሲግናል በኦስሲሎስኮፕ መሞከር
  • [07:02] የ555 ቲማርን ለማግለል የPCB መስመሮችን መቁረጥ
  • [10:25] አርዱኖን ከተሻሻለው ሞጁል ጋር ማገናኘት
  • [12:18] የአርዱኖ ኮድን ማብራራት
  • [14:56] በፖቴንሽዮሜትር የሞተር ቁጥጥርን ማሳየት
  • [16:42] በቋሚ እሴቶች ፍጥነትን በፕሮግራም መቆጣጠር
  • [20:32] የመጨረሻ ማጠቃለያ እና መዝጊያ አስተያየቶች

ምስሎች

60A 3000W PWM board 2
60A 3000W PWM board 2
60A 3000W PWM board 1
60A 3000W PWM board 1
60A 3000W PWM board 4
60A 3000W PWM board 4
60A 3000W PWM board 3
60A 3000W PWM board 3
Schematic of MOSFET gate in 60A 3000W PWM
Schematic of MOSFET gate in 60A 3000W PWM
60A 3000W red module PCB line cut to work with Arduino
60A 3000W red module PCB line cut to work with Arduino
60A 3000W red module PCB line cut to work with Arduino
60A 3000W red module PCB line cut to work with Arduino
60A 3000W PWM board 7 input wires
60A 3000W PWM board 7 input wires
60A 3000W PWM board 6
60A 3000W PWM board 6
60A 3000W PWM board 0
60A 3000W PWM board 0
196-Code for XY-1250 12-50V 60A PWM to work with Arduino with Potentiometer
ቋንቋ: C++
/*
 * Modify XY-1250 12-50V 60A PWM to work with Arduino.
get this code and other resouces http://robojax.com/RTJ162
If you want to control it without a potentiometer, see http://robojax.com/RTJ162
 * 
 * Written by Ahmad Shamshiri
 * on Saturday, June 15, 2019 at 16:14
 * in Ajax, Ontario, Canada
 * www.robojax.com
 * Watch the video instruction: https://youtu.be/k13iTmvPtUU
 */
#define pwmPin1 5
#define pwmPin2 6
#define controlPin A0

void setup() {
  pinMode(pwmPin1,OUTPUT);
  pinMode(pwmPin2,OUTPUT);
  Serial.begin(9600);

}

void loop() {
  int potValue = analogRead(controlPin);
  Serial.print(potValue);
  int pwm =map(potValue, 0,1023, 0, 255);
  
  analogWrite(pwmPin1,pwm);
  analogWrite(pwmPin2,pwm);
  Serial.print(" ");  
  Serial.println(pwm);
  delay(500);
}

/*
 * @brief Converts a percentage value from 0 to 100% to 0-255.
 * @param v An integer value representing a percentage from 0-100.
 * @return A value from 0 to 255.
 */
int toPWM(int v){
  return map(v, 0,100,0,255);
}
197-Code for XY-1250 12-50V 60A PWM to work with Arduino
ቋንቋ: C++
/*
 *  file: PWM_for_XY1260_module_no_pot
 * Modify XY-1250 12-50V 60A PWM to work with Arduino
 * This code allows you to control the motor without a potentiometer. See video for demonstration.
*  resources page for this project https://robojax.com/RTJ162
Watch the video instruction on youTube: https://youtu.be/ZLZr2AZgmPI
 * 
 * How to use:
 * To control speed at 100%
    motorControl(100);  
    delay(3000);//keep it running for 3 seconds
 * To control speed at 400%
    motorControl(40);  
    delay(3000);//keep it running for 3 seconds
 * To stop motor
    motorControl(0); //set zero
    delay(3000);//keep it running for 3 seconds
 * Written by Ahmad Shamshiri
 * on Saturday, January 30, 2021, at 12:49
 * in Ajax, Ontario, Canada
 * www.Robojax.com
 * Watch the video instruction: https://youtu.be/ZLZr2AZgmPI
 */
#define pwmPin1 3
#define pwmPin2 6
bool defaultMotorON = false;// or set to "true" to make the motor start
unsigned int defaultSpeed= 20;//20% set it in % 0=stop, 100=full speed

int toPWM(int);//prototype
void setup() {
  pinMode(pwmPin1,OUTPUT);
  pinMode(pwmPin2,OUTPUT);
  Serial.begin(9600);
  Serial.print("Control XY-1260 without pot");
  if(defaultMotorON){
  analogWrite(pwmPin1,toPWM(defaultSpeed));
  analogWrite(pwmPin2,toPWM(defaultSpeed));    
  }else{
  analogWrite(pwmPin1,0);
  analogWrite(pwmPin2,0);    
  }


}

void loop() {
    motorControl(100);//set speed to 100%
    delay(3000);//keep motor running at 100% for 3 seconds

    motorControl(0);//stops motor
    delay(4000);//keep motor stopped for 4 seconds

    motorControl(45);//set speed to 45%
    delay(3000);//keep motor running at 45% for 3 seconds

    motorControl(0);//stops motor
    delay(4000);//keep motor stopped for 4 seconds    

    //from 0 to 100% with 50 millisecond delay (increasing speed)
      for(int i=0; i<100; i++)
      {
        motorControl(i);//set speed with value of i from 0 to 100
        delay(50);//give motor 50 milliseconds before going to the next value   
      }//for loop end


    motorControl(0);//stops motor 
    delay(4000);//keep motor stopped for 4 seconds    

    //from 100% to 10 with 50 millisecond delay (decreasing speed)
      for(int i=100; i>0; i--)
      {
        motorControl(i);//set speed with value of i from 0 to 100
        delay(50);//give motor 50 milliseconds before going to the next value   
      }//for loop end
      
    motorControl(0);//stops motor 
    delay(4000);//keep motor stopped for 4 seconds   
      
}//loop end

/*
 * @brief converts % value from 0 to 100% to 0-255
 * @param v is integer value representing % from 0-100
 * @return will return value from 0 to 255
 */
int toPWM(int v){
  return map(v, 0,100,0,255);
}//

/*
 * @brief controls the speed of motor with value from 0 to 100%
 * @param speed is integer value representing % from 0-100
 * @return none
 * written January 30, 2021 by Ahmad Shamshiri
 * www.robojax.com
 * 
 */
void motorControl(int speed)
{
  int pwm= map(speed, 0,100,0,255);  
  analogWrite(pwmPin1,pwm);
  analogWrite(pwmPin2,pwm);  
}

እንደሚያስፈልግዎት ይችላል

ፋይሎች📁

አንድ ፋይል የለም።