树莓派:外设开发编程,控制继电器
樹莓派外設開發接口文檔參考
wiringPi(特定平臺,特定功能接口) 庫(Linux 動態庫 .so? ?靜態庫.a)
API? ? ? printf? ?是c 的標準庫
1、樹莓派的接口
(所謂的外設開發編程就是我們說的接口)
io口:? input????????? output? ????????對主控芯片來說
input相關的模塊: 人體(傳感器),火焰,振動等
Output相關的模塊:繼電器? ?,蜂鳴器
?(實現某些控制)
PWM:電機調速,燈光調明亮度
語音識別模塊,液晶屏
(比如項目中定死了,就用樹莓派,你買了一個屏幕是SPI的,那你就要用SPI的協議,去寫樹莓派的代碼,讓他跟液晶屏調試起來
如果你買的語音模塊是串口的,同樣的,要用樹莓派的串口編程,與這個語音模塊配合起來)
串口 uart
IIC
SPI
IIS
其他特定硬件的接口:flash..
Nanopi:Linux
S3c2410,2440 6410
Tiny210 tiny 4412
海思方案,瑞星微方案,移遠方案
c51,STM32,Arduino,WemosD1(純邏輯的開發):沒有OS(Linux)
2、樹莓派的接口函數
如何檢查樹莓派有沒有wiringPI?
這就是裝了wiringPi庫,你沒裝的話,他會提示指令不認識
你要用別人編好的piringPI庫,要加個-l
?注意看這里
相關的代碼
?我們里面先什么也不寫
?我們克隆一下這個窗口
出現這樣的情況是因為我們在窗口一打開了這個文件?
O是以只讀的方式打開 ,E是可以編輯它? ,R重新加載 ,Q退出 ,A 放棄
?原因是ls -a?
?解決方案一:把前面的窗口關上
解決方案二:刪掉隱藏文件
然后我們繼續編輯
?運行
1、樹莓派控制繼電器
?接線正確的話紅燈會亮起
(ucc連接3.3v,GND連接0v)
他是一個可編程的電子開關,io口控制才會吸鐵派片
Gpio既能輸入,也能輸出,是通用的
現在我想做一件事情,鍵盤輸入1 導通,鍵盤輸入0斷開
記得里面判斷一下
連接的是7口,如何把7口設置成輸出口呢?
先調用硬件初始化函數
還有GPIO的控制
這個PinMode是引腳的模式,有輸入模式INPUT,和輸出模式OUTPUT
?導通開關繼電器賦值一個低電平就會導通,如何才能賦值低電平呢?
digitalWrite
高電平就斷開了
?
代碼如下?
?這里寫cc也可以
(因為gcc 的軟連接就是面向cc的)
運行一下
?默認情況下它就亮了,就綠了
?
?我們現在輸入個0 ,看能不能關掉
結果?
我們想讓他能一直玩
用while(1)的時候,cmd需要重新歸位
修改一下,讓繼電器上來不通
執行有時候蹦了
?原因是回車的問題
用getchar();吸收回車
?運行結果
?然后我們再來一下代碼優化
代碼中的7是不是很難看,可讀性差
我們可以用define SWITCHER 7
?思路,main函數一進來做wiringPi庫的初始化
然后引腳要做初始化,因為引腳既有輸出功能,也有輸入功能,我們把他配置成輸出的功能
為了讓繼電器一上電不要導通電器,來了一個高電平
循環的時候,你不給它10 它容易一直都是1,記得getchar()吸收一下回車符
2、繼電器組硬件控制開發
連接成功后會有微弱的光
scanf 取地址符號去掉,是因為數組名就是個地址
scanf里面用%s,因為字符串
scanf之前都要memset初始化一下
這里注意是sizeof,而不是strlen
我們先控制一個
?運行結果
?說明scanf還是有一些bug的
用gets會提示你危險慎用(沒辦法不過也能用)
?運行一下
?繼電器組的燈
同樣的邏輯,我們可以做其他的燈
?
?
?運行結果
?繼電器的燈光
可以再來個一鍵關閉,開啟
?
運行
總結
以上是生活随笔為你收集整理的树莓派:外设开发编程,控制继电器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有公司还有什么车呢?
- 下一篇: 树莓派:和电脑之间的串口编程,以及树莓派