สารบัญ:

การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX: 3 ขั้นตอน
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX: 3 ขั้นตอน

วีดีโอ: การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX: 3 ขั้นตอน

วีดีโอ: การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX: 3 ขั้นตอน
วีดีโอ: ควบคุมมอเตอร์ ด้วยโมดูล DIY Motor Control with the L298N Motor Driver 2024, กรกฎาคม
Anonim
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX

ในโครงการนี้ เราจะอธิบายวิธีใช้ L298N H-bridge เพื่อเพิ่มและลดความเร็วของมอเตอร์กระแสตรง โมดูล L298N H-bridge สามารถใช้กับมอเตอร์ที่มีแรงดันไฟฟ้าระหว่าง 5 ถึง 35V DC

นอกจากนี้ยังมีตัวควบคุมออนบอร์ด 5V ดังนั้นหากแรงดันไฟฟ้าของคุณสูงถึง 12V คุณสามารถจ่ายไฟ 5V จากบอร์ดได้เช่นกันโมดูลคอนโทรลเลอร์มอเตอร์คู่ L298 H-bridge ราคาไม่แพงและมีจำหน่ายที่นี่

ขั้นตอนที่ 1: ส่วนประกอบ

ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
  • ไมโครคอนโทรลเลอร์ CloudX
  • CloudX Softcard
  • สาย USB V3
  • L298N สะพาน H
  • เขียงหั่นขนม
  • สายจัมเปอร์
  • มอเตอร์กระแสตรง
  • ตัวต้านทาน 10k
  • 4* ปุ่มกด

สามารถออนไลน์ได้ที่นี่

ขั้นตอนที่ 2: แผนภาพวงจร

แผนภูมิวงจรรวม
แผนภูมิวงจรรวม

ติดตามวงจรขึ้น

ขั้นตอนที่ 3: รหัส

คัดลอกโค้ดนี้ไปยัง CloudX IDE. ของคุณ

#รวม #รวม

ลงชื่อ char ฉัน, j;

ธงบิต;

ติดตั้ง(){

// ตั้งค่าที่นี่สำหรับ (i=1; i<5; i++){ pinMode(i, INPUT); } PWM1_Init(5000); PWM2_Init(5000); PWM1_Start(); PWM2_Start(); PWM1_Duty(0); PWM2_Duty(0); ผม=j=0; วน () { // โปรแกรมที่นี่ถ้า (!readPin (1)) { delayMs (200); ถ้า(flag==0){ PWM1_Duty(i); PWM2_Duty(0); } if(flag==1){ PWM2_Duty(j); PWM1_Duty(0); } ธง = ~ ธง; } ถ้า (!readPin(2)){ delayMs(200); if(flag==1){ //i -= 10; ผม--; ถ้า(ผม <= 0) ผม=0; PWM1_Duty(i); PWM2_Duty(0); } if(flag==0){ //j -= 10; NS--; ถ้า(j <= 0) j=0; PWM2_Duty(j); PWM1_Duty(0); } } if(!readPin(3)){ delayMs(200); if(flag==1){ //i += 10; ผม++; ถ้า(ผม>= 100) ผม=100; PWM1_Duty(i); PWM2_Duty(0); } if(flag==0){ //j += 10; เจ++; ถ้า(j>=100) j=100; PWM2_Duty(j); PWM1_Duty(0); } }

ถ้า(!readPin(4)){

ความล่าช้า(200); PWM1_Duty(0); PWM2_Duty(0); ผม=0; เจ=0; }

}

}

แนะนำ: