การควบคุมความเร็วมอเตอร์กระแสตรงแบบ 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;
}
}
}


void InitPWM_timer (void)
{
TMOD &= 0xF0;    
TMOD |= 0x01;    
TH0 = 0x00;     
TL0 = 0x00;      
ET0 = 1;        
EA  = 1;         
TR0 = 1;         
}


void Timer0_ISR (void) interrupt 1   
{
TR0 = 0;   

if(PWM_Pin==1 && a==0)
{
PWM_Pin = 0;
temp = (255-PWM); 
TH0  = 0xFF;
TL0  = 0xFF - temp&0xFF;
}
else if(PWM_Pin==0 && a==0)    
{
PWM_Pin = 1;
temp = PWM;
TH0  = 0xFF;
TL0  = 0xFF - temp&0xFF;
}

TF0 = 0;     
TR0 = 1;     
}

รหัสผ่านระบบล็อคประตูตามภาพที่ 5
รหัสผ่านระบบล็อคประตูอิมเมจ 1
รหัสผ่านระบบล็อคประตูอิมเมจ 2
รหัสผ่านระบบล็อคประตูตามภาพที่ 3

ความคิดเห็น