Search Code

Iṣakoso XY-1250 10–50A/60A 3000W PWM Iṣakoso Iyara Mọtọ Nipa Lilo Arduino

Iṣakoso XY-1250 10–50A/60A 3000W PWM Iṣakoso Iyara Mọtọ Nipa Lilo Arduino

Nínú ẹ̀kọ́ yìí, a ó fi ọ́ hàn bí a ṣe lè mú ẹ̀rọ̀ ìṣàkóso ìyára mọ́tọ̀ PWM XY-1250 tí ó wọ́pọ̀ (tí a ṣe fún 10–50A/60A ní ọ̀pọ̀ tó 3000W) kí a sì yí i padà kí o lè ṣàkóso ìyára rẹ̀ pẹ̀lú Arduino dípò kọ́bù tí ó wà nínú rẹ̀. Èyí jẹ́ ìbéèrè tí ó gbajúmọ̀ láti ọ̀dọ̀ àwọn onífẹ̀ẹ́ ẹ̀rọ̀ tí wọ́n fẹ́ fi ẹ̀rọ̀ ìṣàkóso mọ́tọ̀ alágbára wọ inú àwọn iṣẹ́-ọwọ́ tiwọn—bíi kíkọ́ ọkọ̀-ẹlẹ́sẹ̀ iná tí a ṣe ní pàtó, ìṣàkóso ìyára ọ̀pá-ọlẹ̀ CNC, ètò ìwakọ̀ roboti, tàbí ètò afẹ́fẹ́ aláṣẹ. Nípa fífi àmì-ìṣàkóso oní nọ́mbà rọ́pò potentiometer tí a fi ọwọ́ ṣiṣẹ́, ìwọ ó ní ìṣàkóso pípé, tí a lè ṣètò lórí ìyára mọ́tọ̀ rẹ, èyí tí ó ṣí ọ̀pọ̀lọpọ̀ àǹfààní sílẹ̀ fún ṣíṣe iṣẹ́ láìsí ènìyàn àti ìṣiṣẹ́ láti ọ̀nà jíjìn.

60A-3000W-PWM-board-0

Àwọn iṣẹ́-ọwọ́ tí ó wúlò níwọ̀nyí tí o lè kọ́ pẹ̀lú ètò yìí:

  • Kíkọ́ ọkọ̀-ẹlẹ́sẹ̀ iná tàbí ọkọ̀-ẹlẹ́sẹ̀ go-kart tí a ṣe ní pàtó pẹ̀lú ìmúyára tí a lè ṣètò.
  • Ṣíṣe ẹ̀rọ̀ ìṣàkóso ìyára ọ̀pá-ọlẹ̀ CNC tí a lè ṣàtúnṣe nípasẹ̀ G-code.
  • Kíkọ́ afẹ́fẹ́ ilé-ọ̀gbà aláṣẹ tí ó ṣàtúnṣe ìyára rẹ̀ nípa àwọn sẹ́nsọ̀ ìwọ̀n-otútù.
  • Ṣíṣe roboti tí a ń ṣàkóso láti ọ̀nà jíjìn pẹ̀lú àwọn mọ́tọ̀ alágbára.
  • Dídàgbàsókè ètò ẹ̀rọ̀-ìgbàkọ̀ alágbára fún ilé-iṣẹ́ tàbí ilé-ẹ̀rọ̀ kékeré.

Àwọn Ẹ̀yà Ohun-èlò

  • Ẹ̀rọ̀ ìṣàkóso mọ́tọ̀ PWM XY-1250 (10–50A/60A, 3000W)
  • Arduino Uno (tàbí ẹ̀yà èyíkéyìí tí ó bá mu)
  • Mọ́tọ̀ DC (fún ìdánwò)
  • Ìpèsè agbára DC (12V–36V tí a dábàá)
  • Potentiometer (10kΩ) — fún ìṣàkóso ọwọ́
  • Àwọn okun ìsopọ̀
  • Iron ìlùn àti okun (fún yíyí PCB padà)

Bí XY-1250 Ṣe Ṣiṣẹ́

XY-1250 ń lo ẹ̀rọ̀ àkókò 555 timer IC (tí a pè ní "U3" lórí pátákó) láti ṣe àmì-ìṣàkóso PWM. Àmì yìí ń ṣàkóso ẹnu-ọ̀nà àwọn MOSFET mẹ́rin tí ń yí ètò mọ́tọ̀ alágbára padà. Ìwọ̀n-ìṣiṣẹ́—èyí tí ó pinnu ìyára mọ́tọ̀—ni a sábà máa ń ṣètò nípasẹ̀ potentiometer tí ó wà lórí pátákó tí a so mọ́ ẹ̀yà 3 ti 555 timer. Láti ṣàkóso èyí pẹ̀lú Arduino, a ní láti ya ìṣáájú 555 kúrò ní àwọn ẹnu-ọ̀nà MOSFET kí a sì fi àmì PWM tiwa fún un dípò.

Yíyí padà yìí pọn dandan nítorí pé Arduino kò lè ta àwọn ẹnu-ọ̀nà MOSFET tí ń gba agbára púpọ̀ ta. Nípa gígé àwọn ìsopọ̀ PCB tí ó wà láàrin 555 timer àti àwọn MOSFET, a lè fi àmì PWM onífolútage kékeré wa láti ọ̀dọ̀ Arduino sínú rẹ̀ láìléwu, tí ó fún wa ní ìṣàkóso oní nọ́mbà kíkún lórí ìyára mọ́tọ̀. (nínú fídíò ní 01:42)

Yíyí Pátákó XY-1250 Padà

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

Kí a tó lè so Arduino pọ̀, a ní láti gé ibi méjì lórí PCB láti ya ìṣáájú 555 timer kúrò ní àwọn ẹnu-ọ̀nà MOSFET. Ẹ̀yí nìyí ní bí a ṣe lè ṣe é:

  1. Wá ẹ̀rọ̀ 555 timer (U3) lórí pátákó. Ó ní àmì kékeré tàbí ìlà tí ń tọ́ka sí ẹ̀yà 1.
  2. Mọ àwọn ìsopọ̀ PCB tí ń bọ̀ láti ẹ̀yà 3 (ìṣáájú) tí ń lọ sí àwọn diode tí a so mọ́ àwọn ẹnu-ọ̀nà MOSFET.
  3. Nípa lílo ọ̀bẹ́ mímú tàbí ohun èlò yíyí pẹ̀lú dískù gígé, gé àwọn ìsopọ̀ wọ̀nyí ní ibi méjì—ọ̀kan fún ọ̀nà ìṣáájú kọ̀ọ̀kan.
  4. Lẹ́yìn gígé, lo ẹ̀rọ̀ ìdánwò ìsopọ̀ láti rí i dájú pé gígé náà pé. O kò gbọ́dọ̀ gbọ́ ìró kankan láàrin ẹ̀yà 3 ti 555 àti àgbègbè ẹnu-ọ̀nà MOSFET.

Yíyí padà yìí ṣe pàtàkì—ó ṣèdíwọ́ fún àmì 555 timer láti má ba àmì PWM wa láti ọ̀dọ̀ Arduino. (nínú fídíò ní 07:02)

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

Ìtọ́sọ́nà Ìsopọ̀

Ìsopọ̀ fún iṣẹ́-ọwọ́ yìí ní ṣíṣopọ̀ Arduino sí pátákó XY-1250 tí a ti yí padà. Èyí ni àwòrán ìsopọ̀:

  1. Agbára fún Arduino: XY-1250 ní ẹ̀rọ̀ ìṣàkóso folútage tí ń mú ìwọ̀n 8.5V jáde. So ìṣáájú yìí pọ̀ (okun pupa tí ó wà láàrin àwọn capacitor méjì) sí ẹ̀yà VIN ti Arduino. Èyí ń fi agbára fún Arduino taara láti ìpèsè agbára mọ́tọ̀. Pàtàkì: Má ṣe so èyí pọ̀ sí ẹ̀yà 5V—yóò sun Arduino náà.
  2. Ìsopọ̀ ilẹ̀: So ilẹ̀ láti XY-1250 pọ̀ sí èyíkéyìí ẹ̀yà GND lórí Arduino.
  3. Àwọn àmì PWM: So ẹ̀yà 5 ti Arduino pọ̀ sí ìsopọ̀ tí a gé káàkiri (níbi tí ìṣáájú 555 ti wà), kí o sì so ẹ̀yà 6 ti Arduino pọ̀ sí ìsopọ̀ kejì tí a gé.
  4. Potentiometer (kò pọn dandan): Bí o bá fẹ́ ìṣàkóso ọwọ́, so potentiometer 10kΩ pọ̀ sí ẹ̀yà A0 ti Arduino, pẹ̀lú àwọn ẹ̀yà méjì yòókù sí 5V àti GND.
  5. Mọ́tọ̀: So mọ́tọ̀ DC rẹ pọ̀ sí àwọn ibi ìṣáájú ti ẹ̀rọ̀ XY-1250.

Nígbà tí a bá ti so ó pọ̀, Arduino yóò gba agbára láti ìpèsè kanna pẹ̀lú mọ́tọ̀, yóò sì rán àwọn àmì PWM tí a ṣàjọpọ̀ sí àwọn ètò ẹnu-ọ̀nà MOSFET méjèèjì. (nínú fídíò ní 10:25)

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

Àlàyé Kóòdù

Kóòdù Arduino rọrùn ó sì fojú sí ṣíṣe àwọn àmì PWM. Àwọn apá pàtàkì tí o lè ṣàtúnṣe nìwọ̀nyí:


#define pwmPin1 5
#define pwmPin2 6
#define controlPin A0
  • pwmPin1 ati pwmPin2 jẹ awọn pinni Arduino ti o fi ifihan PWM ran si awọn iyika ẹnu-ọna MOSFET meji. Awọn wọnyi jẹ asọye bi awọn pinni 5 ati 6, eyiti mejeeji jẹ awọn pinni ti o lagbara PWM lori Arduino Uno.
  • controlPin jẹ pinni afọwọṣe ti o ti sopọ si potentiometer (A0). Ti o ko ba fẹ lo potentiometer, o le foju rẹ.

Ninu iṣẹ loop(), koodu naa ka iye potentiometer (0–1023), ṣe afihan rẹ si iye PWM (0–255), ati fi ran si awọn pinni PWM mejeeji. delay(500) ṣeto iwọn isọdọtun si lẹmeji ni iṣẹju-aaya—o le dinku eyi si delay(100) fun idahun didan.

Koodu naa tun pẹlu iṣẹ toPWM() ti ara ẹni ti o yi iye ogorun pada (0–100) si iye PWM (0–255). Eyi wulo ti o ba fẹ ṣeto iyara kan pato laisi potentiometer. Fun apẹẹrẹ, pipe toPWM(50) yoo da 127 pada, ti o nsoju 50% iyipo iṣẹ. O le lo iṣẹ yii ninu koodu tirẹ lati ṣeto iyara motor taara.

60A-3000W-PWM-board-6

Idanwo ati Ifihan

Lẹhin gbigbe koodu naa ati sisopọ ohun gbogbo, o le danwo eto naa. Ti o ba nlo potentiometer, yiyi rẹ yoo ṣatunṣe iyara motor lainidi lati 0 si 100%. Atẹle tẹlentẹle yoo ṣafihan mejeeji iye afọwọṣe aise (0–1023) ati iye PWM ti a ṣe afihan (0–255).

Ti o ba fẹ ṣakoso iyara naa pẹlu eto, o le rọpo kika potentiometer pẹlu iye ti o wa titi. Fun apẹẹrẹ, ṣeto int pwm = toPWM(20); yoo mu motor ṣiṣẹ ni iyara 20%. Eyi jẹ pipe fun awọn ohun elo nibiti o fẹ ki motor ṣiṣẹ ni iyara kan pato laisi atunṣe ọwọ. (ninu fidio ni 16:42)

Ifihan Ise Agbese Laaye

Ninu fidio naa, o le rii oludari XY-1250 ti a ṣe atunṣe ti o n ṣiṣẹ motor DC kekere kan. Ifihan naa fihan:

  • Ṣiṣakoso iyara motor pẹlu potentiometer ti o ti sopọ si Arduino.
  • Ṣeto motor si iyara 20% ti o wa titi nipa lilo iṣẹ toPWM().
  • Alekun iyara si 50% ati lẹhinna 80% lati fi iwọn iṣakoso kikun han.

Awọn kika oscilloscope jẹrisi pe awọn ifihan PWM mejeeji ti wa ni amuṣiṣẹpọ pipe, laisi iyatọ ipele laarin awọn ikanni meji. Eyi ṣe idaniloju pe awọn MOSFET ti wa ni ṣiṣe ni deede, ti o ṣe idiwọ yiya tabi igbona aidogba. (ninu fidio ni 14:56)

60A-3000W-PWM-board-3

Awọn ipin

  • [00:00] Ifihan ati akopọ ise agbese
  • [01:42] Bawo ni oludari PWM XY-1250 ṣe n ṣiṣẹ
  • [04:28] Idanwo ifihan atilẹba pẹlu oscilloscope
  • [07:02] Gige awọn itọpa PCB lati ya sọtọ aago 555
  • [10:25] Sisopọ Arduino si module ti a ṣe atunṣe
  • [12:18] Ṣiṣalaye koodu Arduino
  • [14:56] Ifihan iṣakoso motor pẹlu potentiometer
  • [16:42] Ṣiṣakoso iyara pẹlu eto pẹlu awọn iye ti o wa titi
  • [20:32] Akopọ ikẹhin ati awọn asọye ipari

Aworan

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
Ede: 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
Ede: 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);  
}

Fáìlìs📁

Ko si awọn faili ti o wa.