51“motorrr”寻迹小车学习1电机和寻迹模块
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                51“motorrr”寻迹小车学习1电机和寻迹模块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                目錄
一 硬件
二 軟件
前幾天完成了尋跡小車的電機和尋跡模塊的學習,這里板子用的是51最小系統板。
一 硬件
電機驅動模塊L298N 和 尋跡模塊
其實也沒什么,pwm控制速度再加上尋跡模塊,主要是遇見了一些玄學問題,這里來總結一下:
1.用下載器燒不進程序,總顯示什么芯片加載超時==,解決方法:用51板子燒進去芯片再按上去就好了,(注意芯片的方向不要按反)就是比較麻煩。。
2.按進去芯片之后,上邊那個數碼管的數字一閃一閃的,車有想動的趨勢但是不動,差點想把車拆了換個芯片重新裝了,結果發現是芯片按的位置原因,應該把芯片按在正中間,試過了,最左最右都不行。
3.實現不了pwm調速,總是以最大引腳速度走,是那個跳線帽的原因,把跳線帽拔掉連上pwm的線就好了。
4.注意l298n的連線,12V? GND(板子的GND和電池負極)? 5V 。還有最好先檢查一下鋰電池有沒有問題。。。還有,用下載器連上電腦之后,別開單片機的開關,然后電腦就會直接黑屏(可能是之前接線有問題)。。
二 軟件
管腳定義:
電機:前左右停 左大轉 右大轉
速度自己調
//前進 停止 #define l_forward {IN1=1,IN2=0;}//左1 #define l_stop {IN1=0,IN2=0;} #define l_back {IN1=0,IN2=1;}#define ll_forward {IN3=1,IN4=0;}//左2 #define ll_stop {IN3=0,IN4=0;} #define ll_back {IN3=0,IN4=1;}#define r_forward {IN11=1,IN22=0;}//右1 #define r_stop {IN11=0,IN22=0;} #define r_back {IN11=0,IN22=1;}#define rr_forward {IN33=1,IN44=0;}//右2 #define rr_stop {IN33=0,IN44=0;} #define rr_back {IN33=0,IN44=1;} void forward() {left=12;lleft=12;right=12;rright=12;l_forward;ll_forward;r_forward;rr_forward; }void turn_right()//右 {left=18;lleft=18;right=40;rright=40;l_forward;ll_forward;r_back;rr_back; }void turn_left() {left=40;lleft=40; right=18;rright=18;l_back;ll_back;r_forward;rr_forward; }void stop() {l_stop;ll_stopr_stop;rr_stop; }void turn_big_right()//右 {left=18;lleft=18;right=50;rright=50;l_forward;ll_forward;r_back;rr_back; }void turn_big_left() {left=50;lleft=50; right=18;rright=18;l_back;ll_back;r_forward;rr_forward; } unsigned char count=0,count1=0,count2=0,count3=0;//計數值 unsigned char left=0,lleft=0; //左邊的比較值 unsigned char right=0,rright=0;//右邊的比較值中斷里面:計數值++
四個電機調速(小于比較值為0 大于比較值為1 大于100為0) 都一樣。
尋跡模塊:可能還需要加,這個效果還行。
void xunji() {if(D1==0&&D2==0&&D3==0&&D4==0) {forward();}if(D1==1&&D2==1&&D3==1&&D4==1) {stop();}if(D2==0&&D3==1) {turn_right();}if(D2==1&&D3==0) {turn_left();}if(D2==1&&D3==1) {forward();}if(D1==1&&D2==0&&D3==0&&D4==0) {turn_big_left();}if(D1==0&&D2==0&&D3==0&&D4==1) {turn_big_right();} }電機和尋跡模塊差不多就這些了,有別的再補充,==。
總結
以上是生活随笔為你收集整理的51“motorrr”寻迹小车学习1电机和寻迹模块的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [实用软件推荐] GIF截图软件 Scr
- 下一篇: 荣耀x10支持鸿蒙,还好没放弃!一大批荣
