2018年10月4日星期四:
今天國慶節,按理說該放假的。忙一天,這會已經晚上11點半了才開始寫這篇總結。重點是把自己學習過程中遇到的問題記錄下來,期待解答哈。
主題:《制作一個arduino的亮度可調節led燈》
預備知識點:
1、arduino數字接口和模擬接口的區別和關聯 首先要區別數字接口和模擬接口,就要先區分那些是數字接口,那些是模擬接口。下圖很清晰,下面的圖是arduino UNO型號的板子,也是很常用的板子。 總結一下arduino型號的板子模擬和數字口的區別: 模擬輸入口: A0、A1、A2、A3、A4、A5、也可以實現數字輸入輸出。數字輸入(輸出)接口 :1~13。既能數字輸入輸出,又能模擬輸出的引腳有: 3、5、6、9、10、11 使用的是10位2進制位進行數模轉換:(1111111111(二進制)=1023(10進制))
????? 注意普通的digitalwrite(端口,0或者1);因為數字輸入(輸出)只能有兩種狀態(高電平或者低電平),所以用于表示的只有0或者1即可。analogwrite(端口,模擬量)注意模擬量必須要屬于合適的范圍之內!
數字接口調制模擬信號,用的是8位2進制:(11111111 = 255)。
2、理解一下“調制模擬信號”:
? ? 調制模擬信號就是一段時間內來回切換高低電平,從而控制這段時間內高低電平出現的時間比例,高電平出現時間的比例越高那么輸出電壓越接近額定電壓(這里是5v),反之低電平出現的時間比例越多,輸出電壓就越接近0v低電壓。這就牽扯到占空比的問題了,0%的占空比輸出就是0v電壓,100%的占空比輸出就是額定電壓(5v),50%的占空比輸出電壓計算方式和交直流電“等效值”的計算方式類似,都是乘一個固定的值,進行轉化,從而得到輸出電壓。關于為什么在理論上可以實現任何電壓值的輸出,而現實不行呢?首先在“數模口”,不論你將0~5v(額定電壓)分為了幾份,每一份都得有一個計數值,但是“數模口”調制模擬信號用的是8位2進制。所以只能有0000001、00000002、····共255個計數值,所以0~5v的電壓只能分為255份。
3、映射函數:
? ? ? map(value,fromLow,fromHigh,tolow,tohigh): 將一個“值”從一個之前所在的范圍(fromLow~fromHigh),等比例的轉換到新的范圍(tolow~tohigh),這個值變為了一個“新的值”,但其劃分新范圍和舊范圍的比例是一樣的。一般會用于賦值:y = map(value,fromLow,fromHigh,tolow,tohigh);
? ? ? 附上程序:
4、電子元器件:
? ? Led,旋鈕開關,arduino開發板
5、 接線方式:
? ? Led:普通數字引腳
? ? 旋鈕開關:A0~A5
6.問題:
? ? 13個數字接口當中,可以作為模擬輸出的端口也可以設置為模擬讀取端口嗎?