สำหรับการใช้งานโดยใช้ไมโครคอนโทรลเลอร์ควบคุมการทำงานที่ใช้มอเตอร์เพียงตัวเดียวสามารถต่อวงจรได้ดังรูป
ตัวอย่างโปรแกรมควบคุมการทำงานให้มอเตอร์หมุนซ้ายหมุนขวา
#include<reg52.h> void delay(int t); sbit m1cw=P0^0; sbit m1ccw=P0^1; sbit m2cw=P0^2; sbit m2ccw=P0^3; sbit ea_m1=P0^4; sbit ea_m2=P0^5; void main (void) { TMOD=0x10; while(1) { m1cw=0; delay(5000); // 5000=5 second delay m1cw=1; m1ccw=0; delay(5000); m1ccw=1; } } void delay(int t) { int i; for(i=0;i<t;i++) { TH1=0xFC; //set for 1 milisecond TL1=0x66; TF1=0; TR1=1; while(TF1==0) {} TR1=0; } } |
ตัวอย่างการนำไปใช้ขับเคลื่อนหุ่นยนต์โดยมีการรับสัญญาณตรวจจับ(Sensor) 2 จุดในการทดลองใช้สวิตช์แทนตัวตรวจจับ
#include<reg52.h> sbit m1cw=P0^0; sbit m1ccw=P0^1; sbit m2cw=P0^2; sbit m2ccw=P0^3; sbit ea_m1=P0^4; sbit ea_m2=P0^5; sbit sensor1=P2^0; sbit sensor2=P2^1; void main (void) { m1cw=0; m2cw=0; while(1) { if(sensor1==0) m1cw=1; else m1cw=0; if(sensor2==0) m2cw=1; else m2cw=0; } } |
การต่อจำลองการทำงาน ทำได้ดังรูป
โปรดติดตามในบทความตอนต่อไป
ครูประภาส สุวรรณเพชร