基於51微控制器的尋跡小車

2021-10-10 10:28:42 字數 2060 閱讀 3801

智慧型車剛入門,前段時間製作了乙個51尋跡小車,就是網上那種尋跡是用四個紅外感測器,驅動是l298n,主機板是自己焊接的51最小系統加了乙個7805將電池的7.2v穩壓成5v(雖然我直接用的電池電壓),原題圖網上滿天飛我就不放了,廢話少說,直接上**:

#

include

sbit left_led=p1^0;

//最左邊的感測器

sbit left_mid_led=p1^1;

//左邊中間的感測器

sbit right_mid_led=p1^2;

//右邊中間的感測器

sbit right_led=p1^3;

//最右邊的感測器

sbit yf=p3^1;

sbit yz=p3^2;

sbit zz=p2^5;

sbit zf=p2^6;

/*yf=1;yz=0;右輪往後

yf=0;yz=1;右輪往前

zf=1;zz=0;左輪往後

zf=0;zz=1;左輪往前

*/sbit ena=p1^6;

// sbit enb=p1^7;

unsigned

char pwm_value_left =0;

unsigned

char pwm_value_right =0;

unsigned

char push_value_left =0;

unsigned

char push_value_right =0;

void

delay_ms

(unsigned

int ms)

// 延時子程式

void

init()

void

pwm_left()

//利用pwm控制左電機速度

}void

pwm_right()

//利用pwm控制右電機速度

}void

timer0

() interrupt 1

using

2void

turn_right1()

void

turn_right2()

void

turn_left1()

void

turn_left2()

void

qianjin()

void

xunji()

if((left_led ==0)

&&(left_mid_led ==0)

&&(right_mid_led ==1)

&&(right_led ==0)

)if((left_led ==0)

&&(left_mid_led==0)

&&(right_mid_led ==0)

&&(right_led ==1)

)if((left_led==1)

&&(left_mid_led ==0)

&&(right_mid_led ==0)

&&(right_led ==0)

)}void

main()

}

**注釋寫的不多,說一下思路吧:

1.電機控速:利用定時器以及中斷控制兩個電機pwm脈寬訊號中的占空比達到控制電機兩端電壓以達到控速的效果(不懂的同學b站大學學習一下51微控制器pwm那一塊就好了,正所謂b站魂,b站人,b站都是人上人,哈哈哈哈)。

2.尋跡:這一塊就是判斷感測器的四種情況,控制電機的速度,為了讓他更精確,你可以在判斷過後再判斷是否走了直線,如果是,就直接返回。

再說一下製作過程中遇到的問題吧:

1.主機板硬體焊接問題就不多說了(最好別用一面錫的洞洞板,實測有效),最主要的是四路紅外感測器的位置擺放,還真就是位置定好事半功倍,中間兩路的感測器不宜過近(如果你尋跡夠精確當我沒說),因為如果太近一般情況下他會瘋狂檢測感測器 ,出現小車「蹦迪搖頭」現象。

2.我的電機直線時轉速居然不一樣!!!!不知道有沒有童鞋跟我一樣,也算個提示吧。

emmmm,大概就這麼多吧,第一次寫部落格,大佬勿噴,各位老爺,點點關注一起學習吧!!!

微控制器尋跡小車 尋跡模組

一 沒有檢測到黑線,則 h4發光到白紙光反射到h4接收端,h4接收端導通,導通則t1接地 0 提問會不會等於0,哪位有測試 二 有檢測到黑線,則 h4發光到黑線光全部被吸收,h4接收端,沒有收到任何訊號,因為h4不導通 截止 則t1 vcc 提問t1會不會等於5v,哪位有測試 原理圖 檢測到白紙有接...

基於51微控制器的藍芽小車

二,對於藍芽模組,我們可以使用藍芽hc05或者hc06這種藍芽模組,用的很廣。使用這個模組之前乙個把藍芽模組與usb轉ttl模組 例如ch340模組 前者txd接後者rxd,前者rxd接前者後者txd 開啟之後如下圖 這時應該先選擇串口號,我電腦上插ch340模組的串口號是3,所以我選擇com3,因...

基於51微控制器的紅外巡跡小車

在做巡跡小車的時候,需要用到一下幾個方面的 首先就是先讓小車可以調速的跑起來,就是用l298n來驅動直流電機,再用pwm技術實現控速,完成第一步。l298n的連線,其中有兩個使能位ena 和enb,開始是由跳線連線的,但是沒法實現控速,如果想要實現控速,就用拔掉跳線,用接入生成pwm的兩個引腳。其次...