Search Code

Kontrola XY-1250 10–50A/60A 3000W PWM Motɛ́lɛ́ ya Ntɔ́ngɔ́tɔ́ na Arduino

Kontrola XY-1250 10–50A/60A 3000W PWM Motɛ́lɛ́ ya Ntɔ́ngɔ́tɔ́ na Arduino

Na boyekoli oyo, tokotalisa yo ndenge ya kozwa contrôleur ya vitesse ya moteur PWM XY-1250 oyo eyebani (oyo ebongisami mpo na 10–50A/60A na kati na 3000W) mpe kobongola yango mpo okoka kokamba vitesse na yango na Arduino esika ya bouton na yango ya libanda. Oyo ezali demande ya bato mingi ya hobby oyo balingi kosangisa contrôleur ya moteur ya puissance ya likolo na misala na bango moko—lokola kotonga longboard ya electric ya personalisé, contrôle ya vitesse ya CNC spindle, système ya robotique, to système ya fan ya automatique. Na bopesi esika ya potentiomètre ya maboko na signal ya numérique, ozwaka contrôle ya précise mpe ya programme na likolo ya vitesse ya moteur na yo, oyo efungolaka possibilités ebele mpo na automatisation mpe fonctionnement ya mosika.

60A-3000W-PWM-board-0

Tala misala misusu ya pratique oyo okoki kosala na ebongiseli oyo:

  • Kotonga longboard ya electric to go-kart ya personalisé na programme ya vitesse oyo ekómaka na malembe.
  • Kosala contrôleur ya vitesse ya CNC spindle oyo ekoki kobongisama na nzela ya G-code.
  • Kotonga fan ya serre ya automatique oyo ebongisaka vitesse na yango kolanda ba senseur ya température.
  • Kosala robot ya contrôle ya mosika na ba moteur ya torque ya likolo.
  • Kokóma système ya convoyeur ya intelligent mpo na atelier to fabrike ya mike.

Ba Composants ya Matériel

  • Module ya contrôleur ya vitesse ya moteur PWM XY-1250 (10–50A/60A, 3000W)
  • Arduino Uno (to carte nionso oyo ekokani)
  • Moteur DC (mpo na komeka)
  • Source ya puissance DC (12V–36V oyo epesami likebi)
  • Potentiomètre (10kΩ) — mpo na option ya contrôle ya maboko
  • Ba fils ya jumper
  • Fer ya kosolda mpe nsinga (mpo na kobongola PCB)

Ndenge XY-1250 Esalaka

XY-1250 esalelaka timer IC ya 555 (oyo ekomami "U3" na tableau) mpo na kobimisa signal ya PWM. Signal oyo ekambaka porte ya ba MOSFET minei oyo bapakolaka circuit ya moteur ya puissance ya likolo. Duty cycle—oyo ekeyebaka vitesse ya moteur—ebongisamaka na potentiomètre ya tableau oyo esangani na pin 3 ya timer ya 555. Mpo na kokamba yango na Arduino, tosengeli kokabola bimeli ya 555 na ba porte ya MOSFET mpe kotia signal na biso ya PWM na esika na yango.

Mbongwana oyo ezali nécessité mpo ete Arduino ekoki te kotambwisa ba porte ya MOSFET ya courant ya makasi mbala moko. Na kokata ba traces ya PCB kati na timer ya 555 mpe ba MOSFET, tokoki kotia na libateli signal na biso ya PWM ya voltage ya mike kowuta na Arduino, oyo epesaka biso contrôle ya numérique ya mobimba na likolo ya vitesse ya moteur. (na vidéo na 01:42)

Kobongola Tableau XY-1250

60A 3000W module rouge PCB ligne ekatami mpo na kosala na Arduino

Liboso ya kosangisa Arduino, tosengeli kokata mbala mibale na PCB mpo na kokabola bimeli ya timer ya 555 na ba porte ya MOSFET. Tala ndenge ya kosala yango:

  1. Luka puce ya timer ya 555 (U3) na tableau. Ezali na mokuse to nzela moke oyo elakisaka pin 1.
  2. Yeba ba traces ya PCB oyo babimaka na pin 3 (bimeli) oyo bakendaka na ba diodes oyo esangani na ba porte ya MOSFET.
  3. Na mbeli ya moko to esaleli ya rotary na disque ya kokata, kata na likebi ba traces oyo na bisika mibale—moko mpo na nzela na nzela ya bimeli.
  4. Sima ya kokata, salela testeur ya continuité mpo na koyeba soki kokata esili malamu. Osengeli koyoka te mbilinga kati na pin 3 ya 555 mpe esika ya porte ya MOSFET.

Mbongwana oyo ezali ya ntina mingi—epesaka nzela te ete signal ya timer ya 555 ekotela signal na biso ya PWM ya Arduino. (na vidéo na 07:02)

60A 3000W module rouge PCB ligne ekatami mpo na kosala na Arduino

Mokambi ya Ba Fils

Ba fils mpo na projet oyo ezali kosangisa Arduino na tableau XY-1250 oyo ebongisami. Tala diagramme ya connexion:

  1. Puissance mpo na Arduino: XY-1250 ezali na régulateur ya voltage oyo ebimisaka pene na 8.5V. Sangisa bimeli oyo (nsinga ya motane kati na ba condensateur mibale) na pin ya VIN ya Arduino. Oyo epesaka Arduino puissance mbala moko kowuta na source ya moteur. Likambo ya ntina: Kosangisa yango te na pin ya 5V—ekozikisa Arduino.
  2. Connexion ya terre: Sangisa terre kowuta na XY-1250 na pin nionso ya GND na Arduino.
  3. Ba signal ya PWM: Sangisa pin 5 ya Arduino na trace ya liboso oyo ekatami (esika bimeli ya 555 ezalaki), mpe pin 6 ya Arduino na trace ya mibale oyo ekatami.
  4. Potentiomètre (optionnel): Soki olingi contrôle ya maboko, sangisa potentiomètre ya 10kΩ na pin ya A0 ya Arduino, na ba pin misusu mibale na 5V mpe GND.
  5. Moteur: Sangisa moteur na yo ya DC na ba terminaux ya bimeli ya module XY-1250.

Nsima ya kosangisa ba fils, Arduino ekopelama na source moko ya moteur, mpe ekotinda ba signal ya PWM oyo esangani na ba circuits mibale ya porte ya MOSFET. (na vidéo na 10:25)

60A-3000W-PWM-board-7-inpu-wires ebongisami mpo na kosangisa na Arduino

Limonisi ya Code

Code ya Arduino ezali pete mpe eluki mingi na kobimisa ba signal ya PWM. Tala ba parties ya ntina oyo utilisateur akoki kobongola:


#define pwmPin1 5
#define pwmPin2 6
#define controlPin A0
  • pwmPin1 mpe pwmPin2 bizali ba pin ya Arduino oyo batindaka signal ya PWM na ba circuit mibale ya gate ya MOSFET. Ba défini lokola ba pin 5 mpe 6, oyo nyonso mibale ezali na makoki ya PWM na Arduino Uno.
  • controlPin ezali pin ya analogique oyo esangani na potentiomètre (A0). Soki olingi kosalela potentiomètre te, okoki koloba yango.

Na fonction loop(), code yango etangaka motuya ya potentiomètre (0–1023), ekambi yango na motuya ya PWM (0–255), mpe etindaka yango na ba pin mibale ya PWM. delay(500) ezali kotia taux ya rafraîchissement na mbala mibale na seconde—okoki kokitisa yango na delay(100) mpo na réponse ya pete koleka.

Code yango ezali mpe na fonction ya toPWM() oyo ebongolaka motuya ya pourcentage (0–100) na motuya ya PWM (0–255). Yango ezali na tina soki olingi kotia vitesse ya sikisiki sans potentiomètre. Na ndakisa, kobenga toPWM(50) ekopesa 127, oyo ezali kopesa cycle ya devoir ya 50%. Okoki kosalela fonction oyo na code na yo moko mpo na kotia vitesse ya moteur na ndenge ya sikisiki.

60A-3000W-PWM-board-6

Komeka mpe Kolakisa

Nsima ya kotia code mpe kosangisa biloko nyonso, okoki komeka yango. Soki ozali kosalela potentiomètre, kobalola yango ekobongola vitesse ya moteur na ndenge ya pete longwa na 0 kino na 100%. Moniteur ya série ekolakisa motuya ya analogique ya brut (0–1023) mpe motuya ya PWM oyo ebongolami (0–255).

Soki olingi kokamba vitesse na ndenge ya programme, okoki kokitola kotanga potentiomètre na motuya ya libela. Na ndakisa, kotia int pwm = toPWM(20); ekotambwisa moteur na vitesse ya 20%. Yango ezali malamu mpo na ba applications oyo olingi moteur etambola na vitesse ya sikisiki sans kobongola na maboko. (na vidéo na 16:42)

Kolakisa Projet na Bomoi

Na vidéo, okoki komona contrôleur XY-1250 oyo ebongolami etambwisaka moteur DC moko ya moke. Kolakisa yango emonisi:

  • Kokamba vitesse ya moteur na potentiomètre oyo esangani na Arduino.
  • Kotia moteur na vitesse ya libela ya 20% na kosalela fonction toPWM().
  • Komatisa vitesse na 50% mpe na sima na 80% mpo na kolakisa ndenge nyonso ya kokamba.

Ba lectures ya oscilloscope ekomatisa ete ba signal mibale ya PWM ezali synchronisé na ndenge ya malembe, sans différence ya phase kati na ba chaîne mibale. Yango ezali kolendisa ete ba MOSFET etambwisama na ndenge ya semba, mpo na kopekisa kokatana to koyoka moto na ndenge ya mabe. (na vidéo na 14:56)

60A-3000W-PWM-board-3

Bikapu

  • [00:00] Introduction mpe elilingi ya projet
  • [01:42] Ndenge contrôleur PWM XY-1250 ezali kosala
  • [04:28] Komeka signal ya liboso na oscilloscope
  • [07:02] Kokata ba traces ya PCB mpo na kokabola timer ya 555
  • [10:25] Kosangisa Arduino na module oyo ebongolami
  • [12:18] Kolimbola code ya Arduino
  • [14:56] Kolakisa kokamba moteur na potentiomètre
  • [16:42] Kokamba vitesse na ndenge ya programme na ba valeurs ya libela
  • [20:32] Résumé ya suka mpe maloba ya kosukisa

Images

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

Fichiers📁

Aucun fichier disponible.