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

በዚህ ዝግጅት ሊገነቡዋቸው የሚችሏቸው አንዳንድ ተግባራዊ ፕሮጀክቶች እነዚህ ናቸው፦
- ፕሮግራም ሊደረግ የሚችል የፍጥነት መጨመር ያለው ብጁ ኤሌክትሪክ ሎንግቦርድ ወይም ጎ-ካርት መገንባት።
- በጂ-ኮድ ሊስተካከል የሚችል የ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 ቦርድን ማሻሻል
አርዱኖን ከማገናኘታችን በፊት፣ የ555 ቲመርን ውጤት ከMOSFET ጌቶች ለማግለል በPCB ላይ ሁለት ቁርጥኖች ማድረግ ያስፈልገናል። እንዴት እንደሚደረግ እነሆ፦
- በቦርዱ ላይ የ555 ቲመር ቺፕን (U3) ያግኙ። ፒን 1ን የሚያመለክት ትንሽ ነጥብ ወይም መስመር አለው።
- ከፒን 3 (ውጤቱ) ወደ MOSFET ጌቶች የተገናኙትን ዳዮዶች የሚወስዱትን የPCB መከታተያዎች ይለዩ።
- ሹል ቢላዋ ወይም የመቁረጫ ዲስክ ያለው ሮታሪ መሳሪያ በመጠቀም፣ እነዚህን መከታተያዎች በሁለት ቦታዎች በጥንቃቄ ይቁረጡ—ለእያንዳንዱ የውጤት መንገድ አንድ።
- ከቆረጡ በኋላ፣ ቁርጥኑ የተሟላ መሆኑን ለማረጋገጥ የቀጣይነት መሞከሪያ ይጠቀሙ። በ555 ፒን 3 እና በMOSFET ጌት አካባቢ መካከል ምንም ቢፕ መስማት የለብዎትም።
ይህ ማሻሻያ ወሳኝ ነው—የ555 ቲመርን ሲግናል ከአርዱኖአችን PWM ሲግናል ጋር እንዳይጣላ ይከላከላል። (በቪዲዮ በ07:02)
የሽቦ አገናኝ መመሪያ
የዚህ ፕሮጀክት ሽቦ አርዱኖን ከተሻሻለው XY-1250 ቦርድ ጋር ማገናኘትን ያካትታል። የግንኙነት ሥዕላዊ መግለጫው እነሆ፦
- ለአርዱኖ ኃይል፦ XY-1250 በግምት 8.5V የሚያወጣ የቮልቴጅ ተቆጣጣሪ አለው። ይህንን ውጤት (በሁለቱ ካፓሲተሮች መካከል ያለውን ቀይ ሽቦ) ከአርዱኖው VIN ፒን ጋር ያገናኙ። ይህ አርዱኖን በቀጥታ ከሞተሩ ኃይል አቅርቦት ያበረታታል። አስፈላጊ፦ ይህንን ከ5V ፒን ጋር አያገናኙ—አርዱኖውን ያቃጥላል።
- የመሬት ግንኙነት፦ ከXY-1250 የሚመጣውን መሬት በአርዱኖ ላይ ካለው ማንኛውም GND ፒን ጋር ያገናኙ።
- የPWM ሲግናሎች፦ የአርዱኖ ፒን 5ን ከመጀመሪያው የተቆረጠው መከታተያ (የ555 ውጤት ከነበረበት) ጋር፣ እና የአርዱኖ ፒን 6ን ከሁለተኛው የተቆረጠው መከታተያ ጋር ያገናኙ።
- ፖቴንሺዮሜትር (አማራጭ)፦ የእጅ መቆጣጠሪያ ከፈለጉ፣ 10kΩ ፖቴንሺዮሜትር ከአርዱኖው A0 ፒን ጋር ያገናኙ፣ ሌሎቹን ሁለት ፒኖች ደግሞ ከ5V እና GND ጋር ያገናኙ።
- ሞተር፦ የዲሲ ሞተርዎን ከXY-1250 ሞጁል ውጤት ተርሚናሎች ጋር ያገናኙ።
አንዴ ከተገናኘ፣ አርዱኖው ከሞተሩ ጋር በተመሳሳይ ኃይል ይሰራል፣ እና የተመሳሰሉ PWM ሲግናሎችን ለሁለቱም MOSFET ጌት ዑደቶች ይልካል። (በቪዲዮ በ10:25)
የኮድ ማብራሪያ
የአርዱኖ ኮድ ቀላል ነው እና የ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% የስራ ዑደትን ይወክላል። የሞተርን ፍጥነት በቀጥታ ለማዘጋጀት ይህንን ተግባር በራስዎ ኮድ ውስጥ መጠቀም ይችላሉ።
መሞከር እና ማሳያ
ኮዱን ከጫኑ እና ሁሉንም ነገር ካገናኙ በኋላ፣ ዝግጅቱን መሞከር ይችላሉ። ፖቴንሽዮሜትር እየተጠቀሙ ከሆነ፣ መዞሩ የሞተርን ፍጥነት ከ0 እስከ 100% በተቀላጠፈ ሁኔታ ያስተካክላል። ተከታታይ መቆጣጠሪያው ሁለቱንም ጥሬ አናሎግ እሴት (0–1023) እና የተቀየረውን PWM እሴት (0–255) ያሳያል።
ፍጥነቱን በፕሮግራም መቆጣጠር ከፈለጉ፣ የፖቴንሽዮሜትር ንባቡን በቋሚ እሴት መተካት ይችላሉ። ለምሳሌ፣ int pwm = toPWM(20); ማዘጋጀት ሞተሩን በ20% ፍጥነት ያሰራዋል። ይህ ሞተሩ ያለ በእጅ ማስተካከያ በተወሰነ ፍጥነት እንዲሰራ ለሚፈልጉ መተግበሪያዎች ፍጹም ነው። (በቪዲዮው በ16:42)
የቀጥታ ፕሮጀክት ማሳያ
በቪዲዮው ውስጥ፣ የተሻሻለው XY-1250 መቆጣጠሪያ ትንሽ የዲሲ ሞተር ሲያሰራ ማየት ይችላሉ። ማሳያው የሚያሳየው፡-
- ከአርዱኖ ጋር በተገናኘ ፖቴንሽዮሜትር የሞተርን ፍጥነት መቆጣጠር።
toPWM()ተግባርን በመጠቀም ሞተሩን በቋሚ 20% ፍጥነት ማዘጋጀት።- ሙሉ የቁጥጥር ክልልን ለማሳየት ፍጥነቱን ወደ 50% እና ከዚያ 80% መጨመር።
የኦስሲሎስኮፕ ንባቦች ሁለቱም PWM ሲግናሎች በትክክል የተመሳሰሉ መሆናቸውን ያረጋግጣሉ፣ በሁለቱ ቻናሎች መካከል ምንም የደረጃ ልዩነት የለም። ይህ MOSFETዎቹ በእኩል መጠን መነዳታቸውን ያረጋግጣል፣ ያልተስተካከለ መልበስ ወይም ከመጠን በላይ ሙቀትን ይከላከላል። (በቪዲዮው በ14:56)
ምዕራፎች
- [00:00] መግቢያ እና የፕሮጀክት አጠቃላይ እይታ
- [01:42] የXY-1250 PWM መቆጣጠሪያ እንዴት እንደሚሰራ
- [04:28] የመጀመሪያውን ሲግናል በኦስሲሎስኮፕ መሞከር
- [07:02] የ555 ቲማርን ለማግለል የPCB መስመሮችን መቁረጥ
- [10:25] አርዱኖን ከተሻሻለው ሞጁል ጋር ማገናኘት
- [12:18] የአርዱኖ ኮድን ማብራራት
- [14:56] በፖቴንሽዮሜትር የሞተር ቁጥጥርን ማሳየት
- [16:42] በቋሚ እሴቶች ፍጥነትን በፕሮግራም መቆጣጠር
- [20:32] የመጨረሻ ማጠቃለያ እና መዝጊያ አስተያየቶች
ምስሎች
/*
* 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);
}
/*
* 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);
}
እንደሚያስፈልግዎት ይችላል
-
አማዞን
-
አማዞን60A 3000W PWM module on Amazonamzn.to
-
ኢቤይ
-
ኢቤይ60A 3000W PWM module on eBayebay.us
-
አሊኤክስፕሬስ60A 100A Motor Speed Controller on AliExpress-1s.click.aliexpress.com
-
አሊኤክስፕሬስ60A 100A Motor Speed Controller on AliExpress-2s.click.aliexpress.com
-
አሊኤክስፕሬስ60A 3000W PWM module on AliExpresss.click.aliexpress.com
-
ባንጉድ60A 100A Motor Speed Controller on Banggoodbanggood.com
ምንጮች እና ምንጮች
-
ውስጥDatasheet for NCE7190A MOSFET (8 Pieces) (PDF)datasheet.lcsc.com
-
ውስጥSchottky Diode MBR20100CTG Datasheet (PDF)onsemi.com
ፋይሎች📁
አንድ ፋይል የለም።