Search Code

Kontoroolka XY-1250 10–50A/60A 3000W PWM Xawaareeyaha Xawaaraha Mootada Isticmaalaya Arduino

Kontoroolka XY-1250 10–50A/60A 3000W PWM Xawaareeyaha Xawaaraha Mootada Isticmaalaya Arduino

Cashiggan, waxaanu ku tusi doonnaa sida loo qaato kontaroolaha xawaaraha matoorka PWM ee XY-1250 ee caadiga ah (loo qiimeeyay 10–50A/60A ilaa 3000W) oo aanu u beddelo si aad u xakameyso xawaarihiisa Arduino-ga halkii aad ka isticmaali lahayd gacantiisa ku dhex jirta. Tani waa codsi caan ah oo ka yimaada dadka hiwaayadda u leh inay isku daraan kontaroolaha matoorka awoodda sare leh mashaariicdooda gaarka ah—sida dhismaha longboard koronto oo gaar ah, xakamaynta xawaaraha CNC spindle, nidaamka darawalnimada robotic-ka, ama nidaamka marawaxadaha otomaatiga ah. Adigoo bedelaya potentiometer-ka gacanta lagu xakameeyo signal dijitaal ah, waxaad heleysaa xakamayn sax ah oo barnaamij lagu xakameyn karo xawaaraha matoorkaaga, taas oo furaysa adduunyo fursado ah oo otomaatig iyo hawlgalka fog.

60A-3000W-PWM-board-0

Waa kuwan qaar ka mid ah mashaariicda wax ku oolka ah ee aad ku dhisi karto qaabkan:

  • Dhismaha longboard koronto oo gaar ah ama go-kart oo leh xakamaynta xawaaraha barnaamijka lagu dejiyay.
  • Abuurista kontaroolaha xawaaraha spindle-ka CNC-ga oo lagu hagaajin karo G-code.
  • Dhismaha marawaxadaha aqalka lagu koriyo oo otomaatig ah kaas oo hagaajiya xawaaraha ku saleysan dareemayaasha heerkulka.
  • Samaynta robot-ka lagu xakameeyo meel fog oo leh matoorro xoog sare leh.
  • Horumarinta nidaamka suunka gaarsiinta ee caqliga leh ee workshop-ka ama warshad yar.

Qaybaha Qalabka

  • Module-ka kontaroolaha xawaaraha matoorka PWM ee XY-1250 (10–50A/60A, 3000W)
  • Arduino Uno (ama board kasta oo la jaan qaada)
  • Matoorka DC (tijaabo ahaan)
  • Koronto siiya DC (12V–36V ayaa lagu taliyay)
  • Potentiometer (10kΩ) — ikhtiyaar xakamaynta gacanta
  • Fiilooyinka jumper-ka
  • Birta lagu saleeyo iyo fiilo (si loo beddelo PCB-ga)

Sida XY-1250 u Shaqeeyo

XY-1250 wuxuu isticmaalaa timer IC 555 ah (oo lagu calaamadeeyay "U3" board-ka) si uu u soo saaro signal PWM ah. Signal-kani wuxuu xakameeyaa albaabka afar MOSFET oo beddela wareegga matoorka awoodda sare leh. Duty cycle-ka—kaas oo go'aamiya xawaaraha matoorka—waxaa sida caadiga ah lagu dejiyaa potentiometer-ka board-ka ku jira ee ku xiran pin 3 ee timer-ka 555. Si loo xakameeyo tan Arduino-ga, waxaan u baahanahay inaan goynno wax soo saarka 555-ka ee albaabbada MOSFET-ka oo aan ku quudinno signal PWM-keena gaarka ah halkii.

Beddelkani waa lagama maarmaan sababtoo ah Arduino-ku si toos ah uma kaxayn karo albaabbada MOSFET-ka ee hadda sare leh. Adigoo goynaya raadadka PCB-ga ee u dhexeeya timer-ka 555 iyo MOSFET-yada, waxaan si badbaado leh u gelin karnaa signal PWM-keena danab hooseeya ee Arduino-ga, taasoo ina siinaysa xakamayn dijitaal oo buuxda oo ku saabsan xawaaraha matoorka. (fiidiyowga 01:42)

Beddelka Board-ka XY-1250

60A 3000W red module PCB line cut to work with arduino

Ka hor inta aanan ku xidhin Arduino-ga, waxaan u baahanahay inaan sameyno laba goyn oo PCB-ga ah si aan u go'doomiyo wax soo saarka timer-ka 555 ee albaabbada MOSFET-ka. Waa sida loo sameeyo:

  1. Ka hel chip-ka timer-ka 555 (U3) ee board-ka. Wuxuu leeyahay dhibic yar ama xariiq tilmaamaya pin 1.
  2. Aqoonso raadadka PCB-ga ee ka imanaya pin 3 (wax soo saarka) ee u horseedaya diodes-ka ku xiran albaabbada MOSFET-ka.
  3. Adigoo isticmaalaya mindi fiiqan ama qalab wareeg ah oo leh saxan goyn ah, si taxadir leh u goo raadadkan laba meelood—mid kasta oo waddo wax soo saar ah.
  4. Ka dib goynta, isticmaal tijaabiyaha joogtada ah si aad u xaqiijiso in goyntu dhammeysan tahay. Waa inaadan maqlin dhawaq u dhexeeya pin 3 ee 555-ka iyo aagga albaabka MOSFET-ka.

Beddelkani waa muhiim—wuxuu ka hortagaa in signal-ka timer-ka 555 uu farageliyo signal PWM-keena Arduino-ga. (fiidiyowga 07:02)

60A 3000W red module PCB line cut to work with arduino

Hagaha Fiilooyinka

Fiilooyinka mashruucan waxay ku lug leeyihiin ku xidhista Arduino-ka board-ka XY-1250 ee la beddelay. Waa kan jaantuska isku xirka:

  1. Koronto siiya Arduino-ga: XY-1250 wuxuu leeyahay nidaamiye danab oo soo saara qiyaastii 8.5V. Ku xidh wax soo saarkan (fiilada cas ee u dhexeysa labada capacitor) pin-ka VIN ee Arduino-ga. Tani waxay si toos ah u siisaa Arduino-ga koronto ka yimaada koronto siiyaha matoorka. Muhiim: Ha ku xidhin pin-ka 5V—waxay gubi doontaa Arduino-ga.
  2. Isku xirka dhulka: Ku xidh dhulka ka yimaada XY-1250 pin kasta oo GND ah oo Arduino-ga ku yaal.
  3. Signals PWM: Ku xidh pin 5 ee Arduino-ga raadkii ugu horreeyay ee la gooyay (halkaas oo wax soo saarka 555-ka ku yaal), iyo pin 6 ee Arduino-ga raadkii labaad ee la gooyay.
  4. Potentiometer (ikhtiyaar): Haddii aad rabto xakamaynta gacanta, ku xidh potentiometer 10kΩ ah pin-ka A0 ee Arduino-ga, labada pin ee kalena 5V iyo GND.
  5. Matoorka: Ku xidh matoorkaaga DC-ga terminalyada wax soo saarka ee module-ka XY-1250.

Marka la xidho, Arduino-ga waxaa siin doona koronto isku mid ah kan matoorka, waxaana u soo diri doonaa signals PWM oo isku mid ah labada wareeg ee albaabka MOSFET-ka. (fiidiyowga 10:25)

60A-3000W-PWM-board-7-inpu-wires read to be connected to Arduino

Sharaxaadda Koodhka

Koodhka Arduino-ga waa toos oo wuxuu diiradda saarayaa soo saarista signals PWM-ka. Waa kuwan qaybaha muhiimka ah ee isticmaaluhu beddeli karo:


#define pwmPin1 5
#define pwmPin2 6
#define controlPin A0
  • pwmPin1 iyo pwmPin2 waa biinanka Arduino ee dira calaamadda PWM ee labada wareeg ee albaabka MOSFET. Kuwaan waxaa lagu qeexay biinanka 5 iyo 6, kuwaas oo labaduba yihiin biinno awood u leh PWM ee Arduino Uno.
  • controlPin waa biinka analog-ga ah ee ku xiran potentiometer-ka (A0). Haddii aadan rabin inaad isticmaasho potentiometer, waad iska indho tiri kartaa tan.

Gudaha shaqada loop(), koodhku wuxuu akhriyaa qiimaha potentiometer-ka (0–1023), wuxuu u sawiraa qiimaha PWM (0–255), wuxuuna u diraa labada biin ee PWM. delay(500) wuxuu dejiyaa heerka cusboonaysiinta laba jeer ilbiriqsi kasta—waxaad hoos u dhigi kartaa tan ilaa delay(100) si aad u hesho jawaab siman oo degdeg ah.

Koodhku wuxuu kaloo ku daray shaqo gaar ah oo loo yaqaan toPWM() oo u beddesha qiimaha boqolleyda (0–100) qiimaha PWM (0–255). Tan waxay faa'iido u leedahay haddii aad rabto inaad dejiso xawaare gaar ah iyada oo aan la isticmaalin potentiometer. Tusaale ahaan, wacista toPWM(50) waxay soo celin doontaa 127, oo matalaysa 50% wareegga shaqada. Waxaad isticmaali kartaa shaqadan koodhkaaga gaarka ah si aad si toos ah u dejiso xawaaraha matoorka.

60A-3000W-PWM-board-6

Tijaabinta iyo Bandejinta

Ka dib markaad soo geliso koodhka oo aad isku xirto wax kasta, waxaad tijaabin kartaa qaabaynta. Haddii aad isticmaalayso potentiometer, wareejintiisu waxay si siman u hagaajin doontaa xawaaraha matoorka laga bilaabo 0 ilaa 100%. Kormeeraha taxanaha ah wuxuu muujin doonaa labadaba qiimaha analog-ga ah ee cayriin (0–1023) iyo qiimaha PWM ee sawiran (0–255).

Haddii aad rabto inaad xakamayso xawaaraha barnaamij ahaan, waxaad ku beddeli kartaa akhrinta potentiometer-ka qiime go'an. Tusaale ahaan, dejinta int pwm = toPWM(20); waxay matoorka ku shubaysaa 20% xawaare. Tan waxay ku habboon tahay codsiyada aad rabto in matoorku ku ordo xawaare gaar ah iyada oo aan la hagaajin gacanta. (fiidiyowga 16:42)

Bandejinta Mashruuca Tooska ah

Fiidiyowga, waxaad arki kartaa kontaroolaha XY-1250 ee la beddelay oo wata matoor yar oo DC ah. Bandejintu waxay muujinaysaa:

  • Xakamaynta xawaaraha matoorka iyada oo la isticmaalayo potentiometer ku xiran Arduino-ga.
  • Dejinta matoorka 20% xawaare go'an iyada oo la isticmaalayo shaqada toPWM().
  • Kordhinta xawaaraha ilaa 50% ka dibna 80% si loo muujiyo kala duwanaanshaha buuxa ee xakamaynta.

Akhriska oscilloscope-ku wuxuu xaqiijinayaa in labada calaamadood ee PWM ay si buuxda isku waafaqsan yihiin, iyada oo aan lahayn farqi weji ah oo u dhexeeya labada kanaal. Tani waxay hubinaysaa in MOSFET-yada si siman loo wado, iyada oo looga hortagayo xirasho aan sinnayn ama kulayl dheeri ah. (fiidiyowga 14:56)

60A-3000W-PWM-board-3

Cutubyada

  • [00:00] Hordhac iyo dulmar mashruuc
  • [01:42] Sida kontaroolaha PWM ee XY-1250 u shaqeeyo
  • [04:28] Tijaabinta calaamadda asalka ah iyada oo la isticmaalayo oscilloscope
  • [07:02] Gooynta raadadka PCB si loo go'doomiyo timer-ka 555
  • [10:25] Ku xiridda Arduino-ga module-ka la beddelay
  • [12:18] Sharaxaadda koodhka Arduino
  • [14:56] Bandejinta xakamaynta matoorka iyada oo la isticmaalayo potentiometer
  • [16:42] Xakamaynta xawaaraha barnaamij ahaan iyada oo la isticmaalayo qiimayaal go'an
  • [20:32] Soo koobid dhammaystiran iyo hadalada gabagabada ah

Sawirro

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-inpu-wires
60A-3000W-PWM-board-7-inpu-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
Luqadda: 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
Luqadda: 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);  
}

Faylasha📁

Fayl la'aan.