智慧型車剛入門,前段時間製作了乙個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的兩個引腳。其次...