Nguyên văn bởi luc_ky_luke
Xem bài viết
Viết code cho robot dò đường
Collapse
X
-
đây là một bộ khung viết cho con dò đường dùng 89s52 bạn có thể tham khảo:
#include<REG52.H> // kb thu vien
sbit out_pwm1 = P2^0;
sbit out_pwm2 = P2^4;
sbit L1 = P2^2;
sbit L2 = P2^3;
sbit R1 = P2^6;
sbit R2 = P2^7;
sbit sw1 = P3^7;
unsigned char pwm1, pwm2;
int dem,xung,chieu;
void ngatngoai0 (void) interrupt 0
{
xung++;
}
void ngattimer0 (void) interrupt 1 // tao xung PWM
{
dem++;
if (dem ==256) dem =0;
if (dem < pwm1 )
out_pwm1=1;
else
out_pwm1=0;
if (dem < pwm2)
out_pwm2=1;
else
out_pwm2=0;
}
void quay_trai (void)
{
do
{
pwm1=20;
L1=R2=0;
pwm2=200;
L2=R1=1;
}
while(P2==0x81);
}
void quay_phai (void) // nguoc lai
{
do
{
pwm1=200;
L2=R1=0;
pwm2=20;
L1=R2=1;
}
while(P2==0x81);
pwm1=1;
pwm2=1;
}
void do_duong(void)
{
char temp;
temp=P2;
L1=R1=1; // tien
L2=R2=1; // tien
switch (temp)
{
case 12: // di thang
{
pwm1=250;
pwm2=250;
break;
}
case 8: // lech trai 1
{
pwm1=250;
pwm2=230;
break;
}
case 16: // lech trai 2
{
pwm1=250;
pwm2=200;
break;
}
case 32: // lech trai 3
{
pwm1=250;
pwm2=170;
break;
}
case 4: // lech trai 4
{
pwm1=250;
pwm2=230;
break;
}
default :
{
pwm1=100;
pwm2=100;
break;
}
case 2: //lech phai 1
{
pwm1=250;
pwm2=200;
break;
}
case 6: //lech phai2
{
pwm1=250;
pwm2=170;
break;
}
}
}
void chaythang(unsigned int quangduong)
{
xung=0;
do
{
do_duong();
}
while(xung<quangduong); // 1m
pwm1=1;
pwm2=1;
}
void main (void) // cct
{
// *** khoi tao ***
// khoi tao ngat
IE=0x83;
IT0=1;
// khoi tao ngat timer
TMOD=0x02;
TH0= 246;
TR0=1;
// chon do rong xung(chon toc doc cho motor)
pwm1=1;
pwm2=1;
while(sw1);
chaythang(500); //1m
while(1);
}
Comment
-
-
em đọc qua có phải đây là 2 cảm biến ko ạ, e đang cần làm mạch 6 cặp cảm biến cơ, chưa biết bố trí khoảng ách thế nào cho phù hợpNguyên văn bởi soc_con_haui Xem bài viếtđây là một bộ khung viết cho con dò đường dùng 89s52 bạn có thể tham khảo:
#incl
while(1);
}
Comment
-
có cao nhân nào code avr 7bit sensor không sử dụng atmega16 !!!! cho e xin code với !!! 5 bit hay 8 bít cũng được
Comment
Bài viết mới nhất
Collapse
There are no results that meet this criteria.

Comment