久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6831|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)循跡避障一體小車設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:383931 發(fā)表于 2018-9-11 20:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
跡避障一體小車
  • 小車功能實(shí)現(xiàn)描述
利用光電傳感(紅外對(duì)射管,紅外發(fā)射與接收二極管組成)檢測(cè)黑白線,實(shí)現(xiàn)小車能跟著白線(或黑線)行走,同時(shí)也可避開障礙物,即小車尋跡過(guò)程中,若遇障礙物可自行繞開,繞開后繼續(xù)尋跡。
  • 電路詳細(xì)分析
  • 光電傳感
循跡光電傳感器原理,利用黑白線對(duì)紅外線不同的反射能力。然后通過(guò)光敏二極管或光敏三極管,接收反射回的不同光強(qiáng)信號(hào),把不同光強(qiáng)轉(zhuǎn)換為電流信號(hào),最后通過(guò)電阻,轉(zhuǎn)換為單片機(jī)可識(shí)別的高低電平。光電傳感器實(shí)現(xiàn)循跡的基本電路如下圖所示
循跡傳感器基本電路
       電路解釋:TC端是傳感器工作控制端,為高電平時(shí),發(fā)光二極管不工作,傳感器休眠,為低電平時(shí),傳感器啟動(dòng)。Signal端為檢測(cè)信號(hào)輸出,當(dāng)遇到黑線,黑線吸收大量的紅外線,反射的紅外線很弱,光敏三極管不導(dǎo)通,signal輸出高電平,當(dāng)遇到白線,與黑線相反,反射的紅外線很強(qiáng),使光敏三極管導(dǎo)通,signal輸出低電平。
    尋跡部分
調(diào)整左右傳感器之間的距離,兩探頭距離約等于白線寬度最合適,一般白線寬度選擇范圍為3 – 5 厘米比較合適。注意:該傳感器的靈敏度是可調(diào)的,偶爾傳感器遇到白線卻不能送出相應(yīng)的信號(hào),通過(guò)調(diào)節(jié)傳感器上的可調(diào)電阻,適當(dāng)?shù)脑龃蠡驕p小靈敏度。另外,循跡傳感器的安放也算是比較有講究的,有兩種方法,一種是兩個(gè)都是放置在白線內(nèi)側(cè)但緊貼白線邊緣,第二種是都放置在白線的外側(cè),同樣緊貼白線邊緣。我們通常采用第二種方法。
編寫程序使小車遇白線時(shí),小車跟著白線走。當(dāng)小車先前前進(jìn)時(shí),如果向左偏離了白線。那么右邊傳感器會(huì)產(chǎn)生一個(gè)低電平,單片機(jī)判斷這個(gè)信號(hào),然后向右拐。回到白線后。兩傳感器輸出信號(hào)為高電平。小車前進(jìn)。如果小車向右偏離白線,左邊傳感器產(chǎn)生一個(gè)低電平,單片機(jī)判斷這個(gè)信號(hào),然后向左拐。如此如此,小車必不偏離白線。若小車的兩對(duì)光電傳感器同時(shí)輸出的信號(hào)為高電平(黑底)或低電平(白底),即單片機(jī)判斷的都為高電平或低電平,小車向前直走,在此過(guò)程中(直走)小車若遇白線,小車又重復(fù)上面動(dòng)作跟著白線走。
    避障部分
     當(dāng)小車在尋跡(沿著白線走或直走)過(guò)程中遇障礙物,小車亦可自行轉(zhuǎn)彎,轉(zhuǎn)彎動(dòng)作完成后,又繼續(xù)尋跡。
  • 電機(jī)驅(qū)動(dòng)電路
     電機(jī)驅(qū)動(dòng)芯片采用L298N,是一款承受高壓大電流的全橋型直流/步進(jìn)電壓驅(qū)動(dòng)器,如下圖
電機(jī)控制芯片L298N的引腳排列


L298N引腳編號(hào)與功能
引腳編號(hào)
名稱
功能
1
電流傳感器A
在該引腳和地之間接小阻值電阻可用來(lái)檢測(cè)電流
2
輸出引腳1
內(nèi)置驅(qū)動(dòng)器A的輸出端1,接至電機(jī)A
3
輸出引腳2
內(nèi)置驅(qū)動(dòng)器A的輸出端2,接至電機(jī)A
4
電機(jī)電源端
電機(jī)供電輸入端,電壓可達(dá)46V
5
輸入引腳1
內(nèi)置驅(qū)動(dòng)器A的邏輯控制輸入端1
6
使能端A
內(nèi)置驅(qū)動(dòng)器A的使能端
7
輸入引腳2
內(nèi)置驅(qū)動(dòng)器A的邏輯控制輸入端2
8
邏輯地
邏輯地
9
邏輯電源端
邏輯控制電路的電源輸入端為5V
10
輸入引腳3
內(nèi)置驅(qū)動(dòng)器B的邏輯控制輸入端1
11
使能端B
內(nèi)置驅(qū)動(dòng)器B的使能端
12
輸入引腳4
內(nèi)置驅(qū)動(dòng)器B的邏輯控制輸入端2
13
輸出引腳3
內(nèi)置驅(qū)動(dòng)器B的輸出端1,接至電機(jī)B
14
輸出引腳4
內(nèi)置驅(qū)動(dòng)器B的輸出端2,接至電機(jī)B
15
電流傳感器B
在該引腳和地之間接小阻值電阻可用來(lái)檢測(cè)電流


L298N內(nèi)部原理圖
電機(jī)驅(qū)動(dòng)A/B的控制邏輯如下表所示
輸入信號(hào)
電機(jī)運(yùn)動(dòng)方式
使能端A/B
輸入引腳1/3
輸入引腳2/4
1
1
0
前進(jìn)
1
0
1
后退
1
1
1
緊急停車
1
0
0
緊急停車
0
X
X
自由轉(zhuǎn)動(dòng)
電機(jī)驅(qū)動(dòng)A/B的工作原理
電機(jī)控制邏輯如下:以電機(jī)A為例,當(dāng)使能端A為高電平是,如果輸入端M1 Direction引腳為高電平,三極管導(dǎo)通,輸入引腳1為低電平而輸入引腳2為高電平,電機(jī)A反轉(zhuǎn);如果輸入端M1 Direction引腳為底電平,三極管截止,輸入引腳1為高電平而輸入引腳2為低電平,電機(jī)A正轉(zhuǎn)。

電機(jī)驅(qū)動(dòng)原理圖

  • 中文液晶顯示器128x64
帶中文字庫(kù)的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊。其顯示分辨率為128×64, 內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示8×4行16×16點(diǎn)陣的漢字,也可完成圖形顯示。具有低電壓低功耗特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。
基本特性: 低電源電壓(VDD:+3.0--+5.5V)
              顯示分辨率:128×64點(diǎn)
             內(nèi)置漢字字庫(kù),提供8192個(gè)16×16點(diǎn)陣漢字(簡(jiǎn)繁體可選)
              內(nèi)置 128個(gè)16×8點(diǎn)陣字符
              2MHZ時(shí)鐘頻率
              顯示方式:STN、半透、正顯
             驅(qū)動(dòng)方式:1/32DUTY,1/5BIAS
              視角方向:6點(diǎn)
              背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5—1/10
              通訊方式:串行、并口可選
              內(nèi)置DC-DC轉(zhuǎn)換電路,無(wú)需外加負(fù)壓
              無(wú)需片選信號(hào),簡(jiǎn)化軟件設(shè)計(jì)
              工作溫度: 0℃ - +55℃ ,存儲(chǔ)溫度: -20℃ - +60℃
    模塊接口說(shuō)明:
PIN15
LED+
背光正極,接4.8V-5V
PIN116
LED-
背光負(fù)極,接0V

*注:1:如在實(shí)際應(yīng)用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“VCC”用焊錫短接;2:模塊內(nèi)部接有上電復(fù)位電路,因此在不需要經(jīng)常復(fù)位的場(chǎng)合可將該端懸空;3:如背光和模塊共用一個(gè)電源,可以將模塊上的JA、JK用焊錫短接。
引腳控制信號(hào)應(yīng)用
   D/I,R/W的配合選擇決定控制界面的4種模式:

D/I
R/W
功能說(shuō)明
L
L
MPU寫指令到指令暫存器(IR)
L
H
讀出忙標(biāo)志(BF)及地址記數(shù)器(AC)的狀態(tài)
H
L
MPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)
H
H
MPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)
E信號(hào)操作:
E狀態(tài)
執(zhí)行動(dòng)作
結(jié)果
高——>低
I/O緩沖——>DR
配合/W進(jìn)行寫數(shù)據(jù)或指令
DR——>I/O緩沖
配合R進(jìn)行讀數(shù)據(jù)或指令
低/低——>高
無(wú)動(dòng)作

內(nèi)部寄存器信號(hào)
● 忙標(biāo)志:BF   
    BF標(biāo)志提供內(nèi)部工作情況,BF=1表示模塊在進(jìn)行內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。利用STATUS RD 指令,可以將BF讀到DB7總線,從而檢驗(yàn)?zāi)K之工作狀態(tài)。
●字型產(chǎn)生ROM(CGROM)   
    字型產(chǎn)生ROM(CGROM)提供8192個(gè)此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示(DISPLAY ON),DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。DFF 的狀態(tài)是指令DISPLAY ON/OFF和D/IT信號(hào)控制的。
● 顯示數(shù)據(jù)RAM(DDRAM)
    模塊內(nèi)部顯示數(shù)據(jù)RAM提供64×2個(gè)位元組的空間,最多可控制4行16字(64個(gè)字)的中文字型顯示,當(dāng)寫入顯示數(shù)據(jù)RAM時(shí),可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在此階段0000H—0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個(gè))將選擇CGRAM的自定義字型,02H—7FH的編碼中將選擇半角英數(shù)字的字型,至于A1以上的編碼將自動(dòng)的結(jié)合下一個(gè)位元組,組成兩個(gè)位元組的編碼形成中文字型的編碼BIG5(A140—D75F),GB(A1A0-F7FFH)。
●字型產(chǎn)生RAM(CGRAM)      
    字型產(chǎn)生RAM提供圖象定義(造字)功能,可以提供四組16×16點(diǎn)的自定義圖象空間,使用者可以將內(nèi)部字型沒(méi)有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過(guò)DDRAM顯示在屏幕中。
● 地址計(jì)數(shù)器AC
    地址計(jì)數(shù)器AC地址計(jì)數(shù)器是用來(lái)貯存DDRAM/CGRAM之一的地址,它可由設(shè)定指令暫存器來(lái)改變,之后只要讀取或是寫入DDRAM/CGRAM的值時(shí),地址計(jì)數(shù)器的值就會(huì)自動(dòng)加一,當(dāng)D/I為“0”時(shí)而R/W為“1”時(shí),地址計(jì)數(shù)器的值會(huì)被讀取到DB6——DB0中。
●光標(biāo)/閃爍控制電路
    此模塊提供硬體光標(biāo)及閃爍控制電路,由地址計(jì)數(shù)器的值來(lái)指定DDRAM中的光標(biāo)或閃爍位置。
指令操作

模塊控制芯片提供兩套控制命令,基本指令和擴(kuò)充指令如下:

指令表1:(RE=0:基本指令)

指令
                     指 令 碼
功 能
D/I
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清除
顯示
0
0
0
0
0
0
0
0
0
1
將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H"
地址
歸位
0
0
0
0
0
0
0
0
1
X
設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H",并且將游標(biāo)移到開頭原點(diǎn)位置;這個(gè)指令不改變DDRAM 的內(nèi)容
顯示狀態(tài)
開/關(guān)
0
0
0
0
0
0
1
D
C
B
D=1: 整體顯示 ON
C=1: 游標(biāo)ON   
B=1:游標(biāo)位置反白允許
進(jìn)入點(diǎn)設(shè)定
0
0
0
0
0
0
0
1
I/D
S
指定在數(shù)據(jù)的讀取與寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位
游標(biāo)或顯示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位;這個(gè)指令不改變DDRAM 的內(nèi)容
功能
設(shè)定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:4/8位數(shù)據(jù)
RE=1: 擴(kuò)充指令操作
RE=0: 基本指令操作
設(shè)定CGRAM地址
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
設(shè)定CGRAM 地址
設(shè)定DDRAM地址
0
0
1
0
AC5
AC4
AC3
AC2
AC1
AC0
設(shè)定DDRAM 地址(顯示位址)
第一行:80H-87H
第二行:90H-97H
讀取忙標(biāo)志和地址
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出地址計(jì)數(shù)器(AC)的值
寫數(shù)據(jù)到RAM
1
0
數(shù)據(jù)
將數(shù)據(jù)D7——D0寫入到內(nèi)部的RAM (DDRAM/CGRAM/IRAM/GRAM)
讀出RAM的值
1
1
數(shù)據(jù)
從內(nèi)部RAM讀取數(shù)據(jù)D7——D0(DDRAM/CGRAM/IRAM/GRAM)
指令表2:(RE=1:擴(kuò)充指令)
指令
指 令 碼
功 能
D/I
R/W
D7
D6
D5
D4
D3
D2
D1
D0
待命
模式
0
0
0
0
0
0
0
0
0
1
進(jìn)入待命模式,執(zhí)行其他指令都終止
卷動(dòng)地址開關(guān)開啟
0
0
0
0
0
0
0
0
1
SR
SR=1:允許輸入垂直卷動(dòng)地址
SR=0:允許輸入IRAM和CGRAM地址
反白
選擇
0
0
0
0
0
0
0
1
R1
R0
選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R0=00,第一次設(shè)定為反白顯示,再次設(shè)定變回正常
睡眠
模式
0
0
0
0
0
0
1
SL
X
X
SL=0:進(jìn)入睡眠模式
SL=1:脫離睡眠模式
擴(kuò)充功能設(shè)定
0
0
0
0
1
CL
X
RE
G
0
CL=0/1:4/8位數(shù)據(jù)
RE=1: 擴(kuò)充指令操作
RE=0: 基本指令操作
G=1/0:繪圖開關(guān)
設(shè)  定
繪圖RAM
地  址
0
0
1
0
AC6
0
AC5
0
AC4
AC3
AC3
AC2
AC2
AC1
AC1
AC0
AC0
設(shè)定繪圖RAM
先設(shè)定垂直(列)
AC6AC5…AC0
  再設(shè)定水平(行)地址AC3AC2AC1AC0
將以上16位地址連續(xù)寫入即可
注:當(dāng)IC1在接受指令前,微處理器必須先確認(rèn)其內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時(shí),BF需為零,方可接受新的指令;如果在送出一個(gè)指令前并不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延長(zhǎng)一段較長(zhǎng)的時(shí)間,即是等待前一個(gè)指令確實(shí)執(zhí)行完成。
三、顯示應(yīng)用
1、字符顯示
帶中文字庫(kù)的128X64-0402B每屏可顯示4行8列共32個(gè)16×16點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)16×8點(diǎn)陣全高ASCII碼字符,即每屏最多可實(shí)現(xiàn)32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。帶中文字庫(kù)的128X64-0402B內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過(guò)將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫(kù))、HCGROM(ASCII碼字庫(kù))及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006共4個(gè))顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫(kù)字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對(duì)應(yīng)的關(guān)系,其對(duì)應(yīng)關(guān)系如下表所示。
80H
81H
82H
83H
84H
85H
86H
87H
90H
91H
92H
93H
94H
95H
96H
97H
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
其中,C語(yǔ)言編譯器具有直接把中文轉(zhuǎn)換成ASCII碼字符功能。對(duì)照下面原理圖,編譯程序示例,并下載到實(shí)驗(yàn)板上,觀測(cè)現(xiàn)象。

  • 尋跡避障程序
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit RM1=P0^0;
  5. sbit RM2=P0^1;//右電機(jī)

  6. sbit LM1=P0^2;
  7. sbit LM2=P0^3;//左電機(jī)

  8. sbit bzh=P2^6;
  9. sbit RAD=P0^6;//紅外接收右電機(jī)轉(zhuǎn)
  10. sbit LBD=P0^7;//紅外接收左電機(jī)轉(zhuǎn)

  11. sbit rs=P3^5;//              LCD的RS
  12. sbit rw=P3^6;//              LCD的R/W
  13. sbit en=P3^7;//              LCD的E  

  14. void lcd_string(uchar *strpoint);

  15. void delay(uint a)
  16. { uint b,c;
  17.   for(b=a;b>0;b--)
  18.     for(c=120;c>0;c--);
  19. }
  20. uchar i=0;

  21. void checkbusy()//檢查L(zhǎng)CD忙
  22. {              uchar dat;
  23.               rs=0;              //rs=1為數(shù)據(jù),=0為命令.
  24.               rw=1;              //rw=1為讀,=0為寫.
  25.     do
  26.       {
  27.       P1=0x00;
  28.       en=1; //E信號(hào)下降沿鎖存DB7~DBO
  29.       dat=P1; //讀入P1的值
  30.       en=0; //鎖存
  31.       dat=0x80 & dat;    //BUSY:1內(nèi)部在工作,0正常狀態(tài)
  32.        }while(!(dat==0x00));rw=0;
  33. }
  34. void sentcom(uchar com)
  35. { checkbusy(); //檢查Busy
  36.    rs=0;
  37.    en=0;
  38.    P1=com;
  39.    delay(5);
  40.    en=1;
  41.    delay(5);
  42.    en=0;
  43.    }

  44. void sentdata(uchar date) //寫數(shù)據(jù)
  45. {
  46.   checkbusy();
  47.   rs=1;
  48.   en=0;
  49.   P1=date;
  50.   delay(5);
  51.   en=1;
  52.   delay(5);                                                                                                                                                                                                                                               
  53.   en=0;
  54. }



  55. //初始化     LCM  
  56. void     lcd_init()  
  57.     {  

  58.               sentcom(0x38);//功能設(shè)置,一次送8位數(shù)據(jù),基本指令集  
  59.               sentcom(0x0C);//0000,1100       整體顯示,游標(biāo)off,游標(biāo)位置off  
  60.               sentcom(0x01);//0000,0001     清DDRAM  
  61.               sentcom(0x02);//0000,0010     DDRAM地址歸位  
  62.               sentcom(0x80);//1000,0000     設(shè)定DDRAM     7位地址000,0000到地址計(jì)數(shù)器AC  

  63.     }

  64. void lcd_string(char *strpoint)//在當(dāng)前顯示位置顯示LCD字符串
  65. {              register i=0;
  66.               while(strpoint[i]!=0){
  67.                             sentdata(strpoint[i]);
  68.                             i++;
  69.                             }
  70. }


  71. void  stop()
  72. {

  73.      lcd_init();
  74.             
  75.               sentcom(0x80);
  76.               lcd_string("現(xiàn)代創(chuàng)新實(shí)訓(xùn)室 ");//C編譯系統(tǒng)本省也具有轉(zhuǎn)換功能,所以也可以這樣寫
  77.               sentcom(0x90);
  78.               lcd_string("尋跡避障一體小車");                                                         
  79.               sentcom(0x88);
  80.               lcd_string("--指導(dǎo):文方老師");                                                      
  81.               sentcom(0x98);
  82.               lcd_string("--設(shè)計(jì):劉志聰  ");
  83.             
  84. }


  85. void  tracing()
  86. {


  87.             
  88.               sentcom(0x80);
  89.               lcd_string("現(xiàn)代創(chuàng)新實(shí)訓(xùn)室 ");
  90.               sentcom(0x90);
  91.               lcd_string("--指導(dǎo):文方老師");                                                         
  92.               sentcom(0x88);
  93.               lcd_string("--設(shè)計(jì):劉志聰  ");                                                      
  94.               sentcom(0x98);
  95.               lcd_string("  小車尋跡中---");
  96.             
  97. }

  98. void  bypass()
  99. {



  100.               sentcom(0x80);
  101.               lcd_string("現(xiàn)代創(chuàng)新實(shí)訓(xùn)室 ");
  102.               sentcom(0x90);
  103.               lcd_string("--指導(dǎo):文方老師");                                                         
  104.               sentcom(0x88);
  105.               lcd_string("--設(shè)計(jì):劉志聰  ");                                                      
  106.               sentcom(0x98);
  107.               lcd_string("  小車避障中---");
  108.             
  109. }

  110. void find()
  111. {tracing();
  112.   while(bzh==1)
  113.             
  114.               {              if(LBD&&RAD==1)
  115.                                {            
  116.                                           RM1=1;LM1=1;
  117.                                           RM2=0;LM2=0;            
  118.                                           }            
  119.                             if(RAD==0)
  120.                                {                                         
  121.                                           RM1=0;LM1=1;
  122.                                           RM2=0;LM2=0;
  123.                                           if(LBD==0)
  124.                                               {
  125.                                                         RM1=1;LM1=1;
  126.                                                RM2=0;LM2=0;
  127.                                                         delay(i);            
  128.                                                         }
  129.                                }                                                                                                                                          
  130.                             if(LBD==0)
  131.                               {                           
  132.                                           RM1=1;LM1=0;
  133.                                           RM2=0;LM2=0;
  134.                                           if(RAD==0)
  135.                                                         {
  136.                                                                       RM1=1;LM1=1;
  137.                                                                       RM2=0;LM2=0;
  138.                                                                       delay(i);
  139.                                                         }            
  140.                                }
  141.     }               
  142. }               
  143.                
  144. void bizhan()
  145. {                bypass();
  146.               if(bzh==0)
  147.                             {            
  148.                                           RM1=1;LM1=0;
  149.                                           RM2=0;LM2=1;
  150.                                           delay(100);
  151.                                          
  152.                                          
  153.                             }
  154. }


  155. void main()
  156. {  stop();
  157.               delay(2000);            
  158.    while(1)
  159. {
  160.     find();
  161.               bizhan();
  162. }                           
  163. }
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
尋跡避障一體小車.rar (284.63 KB, 下載次數(shù): 22)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:449181 發(fā)表于 2018-12-20 20:50 | 只看該作者
n能不能私法下程序
還有這個(gè)L298N的引腳有點(diǎn)多啊,我看不懂,大一的表示很懵
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美一区二区在线播放 | 日韩av高清在线 | 国产日韩欧美激情 | 黄色三级免费网站 | 成人在线观看亚洲 | 国产激情在线 | 亚洲一区二区久久久 | 毛片在线看片 | 高清欧美性猛交xxxx黑人猛交 | 精品三级在线观看 | 亚洲淫视频 | 人人叉 | 日日天天| 五月婷婷在线播放 | 亚洲视频一区二区 | 99久久婷婷国产综合精品首页 | 97精品一区二区 | 天天操夜夜骑 | 懂色中文一区二区三区在线视频 | 国产成人精品免高潮在线观看 | 国产一二三区电影 | 亚洲视频中文字幕 | 成人午夜精品一区二区三区 | 欧美在线播放一区 | 玖玖色在线视频 | 日韩中文在线视频 | 天天插天天操 | 日本精品视频在线观看 | 亚洲成人一区二区 | 日日操日日舔 | 国产在线h | 欧美日韩视频网站 | 精品亚洲永久免费精品 | 久久久国产亚洲精品 | 欧美日韩国产综合在线 | 91av在线影院 | 欧美精品一二三 | 国产一区2区 | 中文字幕免费在线 | 久久av网 | 精品国产不卡一区二区三区 |