文章來(lái)自于Designspark Jackzhang的BLOG 《樹(shù)莓派小應用之無(wú)線(xiàn)感應》 DIY目的: 通過(guò)把LCD1602,蜂鳴器和單路徑循跡傳感器模塊都接入到樹(shù)莓派的GPIO引腳上面,用單路徑循跡傳感器檢測物體的距離或顏色。當物體距離過(guò)近時(shí),此時(shí)路徑傳感器模塊輸出為低電平,這個(gè)時(shí)候LCD1602顯示出“DETECTED:YES”,同時(shí)蜂鳴器發(fā)出聲音。而當物體為黑色或者距離較遠時(shí),蜂鳴器沒(méi)有輸出,同時(shí)LCD1602顯示“DETECTED:NO”。 DIY工具: 主要包括樹(shù)莓派B+,LCD1602,蜂鳴器,單路徑循跡傳感器模塊。其主要作用如下: 樹(shù)莓派:主控芯片,根據外部輸入控制輸出。主要利用樹(shù)莓派的GPIO口 蜂鳴器:無(wú)源蜂鳴器,通過(guò)PWM波驅動(dòng)其發(fā)聲,由樹(shù)莓派驅動(dòng)。 LCD1602:顯示必要的信息,輸出設備。 單路徑循跡傳感器模塊:輸入設備?梢酝▽Ψ瓷紅外線(xiàn)的接收情況來(lái)判斷物體的距離。當被檢測物體在檢測范圍內時(shí),紅外線(xiàn)被反射回來(lái)且強度足夠大,模塊的輸出端為低電平,指示二極管被點(diǎn)亮。否則輸出高電平。 分配樹(shù)莓派的引腳 因為用的是B+的板子,所以GPIO口比較多,我就把其他的小模塊直接和樹(shù)莓派的GPIO口連接起來(lái),不要擔心GPPIO口不夠用。 樹(shù)莓派和蜂鳴器相連,使用了兩個(gè)引腳,Pin20和Pin36。其中Pin20是樹(shù)莓派的Ground引腳,所以我通過(guò)Pin36引腳(GPIO16)來(lái)發(fā)PWM波驅動(dòng)蜂鳴器。 接下來(lái)是樹(shù)莓派和LCD1602連接。特別主要LCD1602的RW引腳一定要接地,否則可能燒壞樹(shù)莓派。 對于LCD1602大家應該很熟悉不過(guò)了,如果大家之前有玩過(guò)單片機的話(huà)。這個(gè)就是它的樣子,我們可以用它來(lái)顯示字母、數字、符號等信息。它背面總共包含16個(gè)引腳,能同時(shí)顯示16X02個(gè)字符。對于一些小應用和演示,還是很不錯的一個(gè)工具哦。 今天我做的就是把樹(shù)莓派和LCD1602連接起來(lái)。那首先第一問(wèn)題就出來(lái)了?我們怎么連線(xiàn)呢?這需要我們知道樹(shù)莓派的GPIO口輸出信息,也要我們知道LCD1602的引腳信息,只有把這個(gè)都對上號了,才能正確給LCD上電,我們才能正式的編程,使用LCD1602。 這個(gè)就是我使用的樹(shù)莓派的GPIO和LCD1602的連線(xiàn)的原理圖。 下面是我實(shí)際的接線(xiàn)圖。 這里有幾點(diǎn)需要和大家說(shuō)一下: (1)原理圖的樹(shù)莓派是B版,我實(shí)際使用的是B+的板子,但是引腳編號沒(méi)有改變。大家也一定要注意實(shí)際和原理圖的區別 (2)由于樹(shù)莓派的引腳很少,所以關(guān)于LCD的7~10號引腳我們不使用 (3)由于樹(shù)莓派沒(méi)有過(guò)流保護,并且十分脆弱在使用中保證LCD1602的RW引腳接地,否則嘗試從LCD1602讀取數據可能會(huì )燒掉樹(shù)莓派。 (4)原理圖中Ri是電位器,即10KΩ滑動(dòng)變阻器,可以調節LCD的亮度 最后當我們檢查完畢,一定不要有短路,確保接地。我們就可以上電了。這個(gè)時(shí)候LCD就應該點(diǎn)亮了哦。我們旋轉電位器,還能看到LCD上的小格子消失或者出現。 樹(shù)莓派和單路徑循跡模塊連接,一共有三個(gè)引腳,其中一個(gè)引腳接電壓正極,Pin1,樹(shù)莓派輸出5V。一個(gè)接地,Pin34,樹(shù)莓派的Ground。另外一個(gè)是信號輸出,Pin3。在程序里面,通過(guò)判斷樹(shù)莓派引腳的電壓來(lái)判斷物體的距離。 完成這些步驟以后,我們就基本完成硬件的連接了。接下來(lái)就是軟件的實(shí)現了。 軟件實(shí)現 這一部分主要和大家介紹的我這個(gè)小應用的軟件部分。 軟件是實(shí)現這個(gè)功能的核心啊,主要包括以下幾個(gè)部分: (1)感應模塊,感知無(wú)線(xiàn)感應模塊的輸入 (2)驅動(dòng)蜂鳴器,需要產(chǎn)生PWM波 (3)顯示模塊,LCD1602根據不同的感應情況顯示不同的信息。 這三部分我們都可以借鑒網(wǎng)上的資料,但是要根據自己的情況做一些修改。當然,我非常推薦下面這個(gè)網(wǎng)站:http://wiringpi.com/。我程序里面用到的函數都在下面的目錄里,大家點(diǎn)進(jìn)去,對著(zhù)我后面的程序找就能找到原型了! Wiring是為了更好的應用樹(shù)莓派的GPIO口專(zhuān)門(mén)編寫(xiě)的控制函數。這個(gè)控制函數包含了很多已經(jīng)寫(xiě)好了庫函數,我們只要按照規則調用就行。當然在使用這些函數的時(shí)候,我們要根據自己樹(shù)莓派GPIO口的連接情況更改一些參數。 下面是整個(gè)軟件實(shí)現過(guò)程: |