|
Hi,大家好!在之前獲取輸入模擬信號的學(xué)習(xí)中,我們很早就是知道了如何使用旋轉(zhuǎn)電位計。但在那一次的學(xué)習(xí)中,我們并沒有進一步來完成控制LED神燈的亮度。今天呢,我們一方面復(fù)習(xí)之前的學(xué)習(xí),另一方面完成用旋轉(zhuǎn)電位計來控制LED神燈的亮度。
好!還是老規(guī)矩,先來看看這次我們需要哪些硬件吧!
硬件方面
arduino-switch-led-parts.jpg (136.94 KB, 下載次數(shù): 190)
下載附件
2016-1-30 18:40 上傳
圖片來源:Arduino電路配件
具體包括如下:
- Arduino UNO電路板(1塊)
- 面包板(1塊)
- 220Ω電阻(1個)
- LED神燈(1盞)
- 面包線(若干)
上面配件中,都是熟悉的面孔,不多說。
軟件方面Arduino官方提供的IDE
連接電路
arduino-switch-led.jpg (116.74 KB, 下載次數(shù): 176)
下載附件
2016-1-30 18:40 上傳
圖片來源:Arduino電路連接
電路的連接也很清晰,不多說。
最后一步!
添加幾行代碼首先,還是新建項目一個窗口。
arduino-ide-new.jpg (70.98 KB, 下載次數(shù): 187)
下載附件
2016-1-30 18:40 上傳
圖片來源:Arduino官方IDE
向其中添加幾行代碼:
- // 定義旋轉(zhuǎn)電位計模擬信號輸入針腳號
- const int analogInPin = A0;
- // 定義LED神燈數(shù)字信號針腳號
- const int analogOutPin = 9;
- // 定義存儲旋轉(zhuǎn)電位計模擬信號數(shù)值
- int sensorValue = 0;
- // 控制LED神燈亮暗的模擬信號數(shù)值
- int outputValue = 0;
- // 對Arduino電路板或相關(guān)狀態(tài)進行初始化方法
- void setup() {
- // 開啟串行通信,并設(shè)置其頻率為9600。
- // 如果沒有特別要求,此數(shù)值一般都為9600。
- Serial.begin(9600);
- }
- // 系統(tǒng)調(diào)用,無限循環(huán)方法
- void loop() {
- // 讀取旋轉(zhuǎn)電位計的數(shù)值
- sensorValue = analogRead(analogInPin);
- // 轉(zhuǎn)換電位計的數(shù)值范圍,
- // 將0~1023數(shù)值范圍映射到0~255
- outputValue = map(sensorValue, 0, 1023, 0, 255);
- // 將轉(zhuǎn)換后的數(shù)值,應(yīng)用給LED神燈,
- // 以此控制LED神燈的亮度。
- analogWrite(analogOutPin, outputValue);
- // 向串口調(diào)試窗口打印數(shù)值
- Serial.print("sensor = ");
- Serial.print(sensorValue);
- Serial.print(" output = ");
- Serial.println(outputValue);
- // 延遲2毫秒,進入下一個loop循環(huán)。
- delay(2);
- }
復(fù)制代碼
好!代碼輸入完畢!沒有新內(nèi)容,調(diào)用的方法也都是之前見用過的。
arduino-menu.jpg (9.87 KB, 下載次數(shù): 173)
下載附件
2016-1-30 18:40 上傳
圖片來源:Arduino官方IDE的文件編輯菜單選項
點擊上圖中標(biāo)有向右指向的箭頭圖標(biāo),將編寫完成的代碼燒入Arduino電路板。如果一切順利,現(xiàn)在就可以通過控制旋轉(zhuǎn)電位計來調(diào)控LED神燈的亮度啦!
如果想查看串口調(diào)試窗口里的輸出信息,可以點擊上圖中最右側(cè)的放大鏡圖標(biāo),即可查看實時輸出信息。
arduino-switch-led-serial.jpg (122.4 KB, 下載次數(shù): 171)
下載附件
2016-1-30 18:40 上傳
圖片來源:Arduino串口調(diào)試窗口
總結(jié)這一次的試驗,沒有新內(nèi)容,總的來說呢,是對之前所學(xué)的內(nèi)容重新做了復(fù)習(xí)。這里需要特別注意的是map()方法,這個方法還是蠻常用到的。
下期預(yù)告下一次,我們將介紹一個新的Arduino家族的成員給大家認識,會是誰呢?Mega2560:http://www.torrancerestoration.com/bbs/dpj-43094-1.html
|
|