فهرست مطالب:

کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX: 3 مرحله
کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX: 3 مرحله

تصویری: کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX: 3 مرحله

تصویری: کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX: 3 مرحله
تصویری: PWM DC Motor control with Arduino and L298N Module with library - Robojax 2024, نوامبر
Anonim
کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX
کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX
کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX
کنترل موتورهای DC با L298N با استفاده از میکروکنترلر CloudX

در این پروژه ما نحوه استفاده از پل H298N H را برای افزایش و کاهش سرعت موتور DC توضیح خواهیم داد. ماژول L298N H-Bridge را می توان با موتورهایی که دارای ولتاژ بین 5 تا 35 ولت DC هستند استفاده کرد.

یک رگولاتور 5 ولت داخلی نیز وجود دارد ، بنابراین اگر ولتاژ منبع تغذیه شما تا 12 ولت است ، می توانید 5 ولت را از برد نیز تامین کنید. این ماژول های کنترلر دو موتوره L298 H-Bridge ارزان و در دسترس هستند در اینجا

مرحله 1: اجزاء

اجزاء
اجزاء
اجزاء
اجزاء
اجزاء
اجزاء
  • میکروکنترلر CloudX
  • کارت نرم افزاری CloudX
  • کابل USB V3
  • پل H298N
  • تخته نان
  • سیم های بلوز
  • موتور DC
  • مقاومت 10k
  • دکمه 4*

اینجا می توانید آنلاین باشید

مرحله 2: نمودار مدار

مدار
مدار

مدار را دنبال کنید

مرحله 3: کد

این کد را در CloudX IDE خود کپی کنید

#شامل #شامل شود

امضا شده char i، 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) ؛ i = j = 0 ؛ حلقه () {// برنامه در اینجا اگر (! readPin (1)) {delayMs (200)؛ if (flag == 0) {PWM1_Duty (i) ؛ PWM2_Duty (0) ؛ } if (flag == 1) {PWM2_Duty (j)؛ PWM1_Duty (0) ؛ } flag = ~ flag؛ } if (! readPin (2)) {delayMs (200)؛ if (flag == 1) {// i -= 10؛ من--؛ اگر (i <= 0) i = 0 ؛ PWM1_Duty (i) ؛ PWM2_Duty (0) ؛ } if (flag == 0) {// j -= 10؛ j-- ؛ اگر (j <= 0) j = 0 ؛ PWM2_Duty (j) ؛ PWM1_Duty (0) ؛ }} if (! readPin (3)) {delayMs (200)؛ if (flag == 1) {// i += 10؛ من ++ ؛ اگر (i> = 100) i = 100 ؛ PWM1_Duty (i) ؛ PWM2_Duty (0) ؛ } if (flag == 0) {// j += 10؛ j ++ ؛ اگر (j> = 100) j = 100 ؛ PWM2_Duty (j) ؛ PWM1_Duty (0) ؛ }}

if (! readPin (4)) {

delayMs (200) ؛ PWM1_Duty (0) ؛ PWM2_Duty (0) ؛ i = 0 ؛ j = 0 ؛ }

}

}

توصیه شده: