2018年10月4日星期四:
今天國慶節(jié)艺普,按理說該放假的。忙一天缠借,這會已經(jīng)晚上11點半了才開始寫這篇總結(jié)。重點是把自己學習過程中遇到的問題記錄下來宜猜,期待解答哈泼返。
主題:《制作一個arduino的亮度可調(diào)節(jié)led燈》
預備知識點:
1、arduino數(shù)字接口和模擬接口的區(qū)別和關(guān)聯(lián) 首先要區(qū)別數(shù)字接口和模擬接口姨拥,就要先區(qū)分那些是數(shù)字接口绅喉,那些是模擬接口。下圖很清晰叫乌,下面的圖是arduino UNO型號的板子柴罐,也是很常用的板子。 總結(jié)一下arduino型號的板子模擬和數(shù)字口的區(qū)別: 模擬輸入口: A0憨奸、A1革屠、A2、A3排宰、A4似芝、A5、也可以實現(xiàn)數(shù)字輸入輸出板甘。數(shù)字輸入(輸出)接口 :1~13党瓮。既能數(shù)字輸入輸出,又能模擬輸出的引腳有: 3盐类、5寞奸、6痕寓、9、10蝇闭、11 使用的是10位2進制位進行數(shù)模轉(zhuǎn)換:(1111111111(二進制)=1023(10進制))
????? 注意普通的digitalwrite(端口呻率,0或者1);因為數(shù)字輸入(輸出)只能有兩種狀態(tài)(高電平或者低電平)呻引,所以用于表示的只有0或者1即可礼仗。analogwrite(端口,模擬量)注意模擬量必須要屬于合適的范圍之內(nèi)逻悠!
數(shù)字接口調(diào)制模擬信號元践,用的是8位2進制:(11111111 = 255)。
2童谒、理解一下“調(diào)制模擬信號”:
? ? 調(diào)制模擬信號就是一段時間內(nèi)來回切換高低電平单旁,從而控制這段時間內(nèi)高低電平出現(xiàn)的時間比例,高電平出現(xiàn)時間的比例越高那么輸出電壓越接近額定電壓(這里是5v)饥伊,反之低電平出現(xiàn)的時間比例越多象浑,輸出電壓就越接近0v低電壓。這就牽扯到占空比的問題了琅豆,0%的占空比輸出就是0v電壓愉豺,100%的占空比輸出就是額定電壓(5v),50%的占空比輸出電壓計算方式和交直流電“等效值”的計算方式類似茫因,都是乘一個固定的值蚪拦,進行轉(zhuǎn)化,從而得到輸出電壓冻押。關(guān)于為什么在理論上可以實現(xiàn)任何電壓值的輸出驰贷,而現(xiàn)實不行呢?首先在“數(shù)穆宄玻口”括袒,不論你將0~5v(額定電壓)分為了幾份,每一份都得有一個計數(shù)值狼渊,但是“數(shù)南浒荆口”調(diào)制模擬信號用的是8位2進制类垦。所以只能有0000001狈邑、00000002、····共255個計數(shù)值蚤认,所以0~5v的電壓只能分為255份米苹。
3、映射函數(shù):
? ? ? map(value砰琢,fromLow蘸嘶,fromHigh良瞧,tolow,tohigh): 將一個“值”從一個之前所在的范圍(fromLow~fromHigh)训唱,等比例的轉(zhuǎn)換到新的范圍(tolow~tohigh)褥蚯,這個值變?yōu)榱艘粋€“新的值”,但其劃分新范圍和舊范圍的比例是一樣的况增。一般會用于賦值:y = map(value赞庶,fromLow,fromHigh澳骤,tolow歧强,tohigh);
? ? ? 附上程序:
4为肮、電子元器件:
? ? Led摊册,旋鈕開關(guān),arduino開發(fā)板
5颊艳、 接線方式:
? ? Led:普通數(shù)字引腳
? ? 旋鈕開關(guān):A0~A5
6.問題:
? ? 13個數(shù)字接口當中茅特,可以作為模擬輸出的端口也可以設(shè)置為模擬讀取端口嗎?