แผนภาพวงจรของการควบคุมความเร็วมอเตอร์กระแสตรงแบบ PWM โดยใช้ไมโครคอนโทรลเลอร์
ส่วนประกอบวงจร
8051 ไมโครคอนโทรลเลอร์
11.0592 MHz Crystal
ตัวเก็บประจุ - 33pF x 2, 10µF
ตัวต้านทาน - 1KΩ x 4, 10KΩ x 2
มอเตอร์ 12V DC
L298N ขับมอเตอร์
กดปุ่ม x 5
1KΩ x 8 ตัวต้านทานแบบดึงขึ้น
สายเคเบิลอนุกรม
แบตเตอรี่หรืออะแดปเตอร์ 12V
สายเชื่อมต่อ
Code
#include<reg51.h>
sbit PWM_Pin = P0^0;
sbit low = P0^4;
sbit medium = P0^5;
sbit high = P0^6;
sbit off = P0^7;
void InitPWM_timer(void);
unsigned char PWM = 0;
unsigned int temp = 0;
char a=1;
int main(void)
{
low=1;
medium=1;
high=1;
off=1;
PWM_Pin=0;
InitPWM_timer();
while(1)
{
if(low==0)
{
PWM=102;
a=0;
}
else if(medium==0)
{
PWM=153;
a=0;
}
else if(high==0)
{
PWM=255;
a=0;
}
else if(off==0)
{
a=1;
PWM_Pin=0;
}
}
}
8051 ไมโครคอนโทรลเลอร์
11.0592 MHz Crystal
ตัวเก็บประจุ - 33pF x 2, 10µF
ตัวต้านทาน - 1KΩ x 4, 10KΩ x 2
มอเตอร์ 12V DC
L298N ขับมอเตอร์
กดปุ่ม x 5
1KΩ x 8 ตัวต้านทานแบบดึงขึ้น
สายเคเบิลอนุกรม
แบตเตอรี่หรืออะแดปเตอร์ 12V
สายเชื่อมต่อ
Code
#include<reg51.h>
sbit PWM_Pin = P0^0;
sbit low = P0^4;
sbit medium = P0^5;
sbit high = P0^6;
sbit off = P0^7;
void InitPWM_timer(void);
unsigned char PWM = 0;
unsigned int temp = 0;
char a=1;
int main(void)
{
low=1;
medium=1;
high=1;
off=1;
PWM_Pin=0;
InitPWM_timer();
while(1)
{
if(low==0)
{
PWM=102;
a=0;
}
else if(medium==0)
{
PWM=153;
a=0;
}
else if(high==0)
{
PWM=255;
a=0;
}
else if(off==0)
{
a=1;
PWM_Pin=0;
}
}
}
ความคิดเห็น
แสดงความคิดเห็น