久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 42065|回復: 9
收起左側

Arduino教程-讓LED神燈亮度漸變

  [復制鏈接]
ID:99556 發表于 2015-12-19 21:36 | 顯示全部樓層 |閱讀模式
Hi,大家好!上一次我們一起學習了如何讓LED神燈閃爍。閃爍的狀態只能表現出兩種狀態,要么亮,要么滅。今天我們換一種變化方式,讓LED神燈的亮度有漸變的效果。
嗯,在開始之前,我們要先在硬件和軟件方面做一些準備。
硬件方面 arduino-led.jpg
圖片來源:Arduino-UNO-LED
像之前一樣,依然是一塊Arduino UNO電路板,一盞標準的LED神燈,還有一條連接Arduino和電腦的USB線。
軟件方面Arduino官方提供的IDE即可。
像之前一樣,準備好上面的軟硬件之后,接下來需要連接好電路,然后敲幾行代碼,就可以讓LED神燈產生亮度漸變的效果啦!
連接電路 arduino-led-fade.jpg
圖片來源:Arduino連接LED電路示意圖
和讓LED神燈閃爍的電路連接一樣,只需要簡單的一步,即可連接好我們的電路。這里唯一要注意的點是,LED的長針腳要插入11號孔,短針腳插入GND地線孔內,這一點要注意!最后,用USB線把Arduino連接到電腦上,連好之后會看到Arduino電路板上的一個小電源燈被點亮!
添加幾行代碼像之前一樣,最后需要我們添加幾行代碼,即可大功告成!
首先打開Arduino的IDE,新建一個Arduino項目窗口。
arduino-ide-new.jpg
圖片來源:Arduino官方IDE
新建完成之后,需要向其中添加幾行代碼。


  1. // 定義LED神燈的針腳號是 11
  2. int led = 11;
  3. // 定義LED神燈當前亮度值為整數值0
  4. int brightness = 0;
  5. // 定義LED神燈亮度變化的幅度為整數值5
  6. int fadeAmount = 5;

  7. // 對Arduino電路板或相關狀態進行初始化方法         
  8. void setup() {
  9.   // 聲明11號針腳為輸出狀態
  10.   pinMode(led, OUTPUT);
  11. }

  12. // 系統調用,無限循環方法
  13. void loop() {
  14.   // 設置LED神燈的當前亮度
  15.   analogWrite(led, brightness);

  16.   // 計算LED神燈的此次循環的亮度數值,
  17.   // 每次循環累加5(fadeAmount定義的數值)。
  18.   brightness = brightness + fadeAmount;

  19.   // 此判斷語句實現的效果是,判斷LED神燈的當前亮度,
  20.   // 當LED神燈全亮,將fadeAmount數值變為負數,
  21.   // 達到降低LED神燈亮度的效果。
  22.   // 當LED神燈熄滅,將fadeAmount數值變為正數,
  23.   // 達到增加LED神燈亮度的效果。
  24.   if (brightness == 0 || brightness == 255) {
  25.     fadeAmount = -fadeAmount ;
  26.   }
  27.   // 每次循環結束,進入下一次循環之前,延時30毫秒執行
  28.   delay(30);
  29. }
復制代碼


完工!比起之前的學習,好像這次多了點什么?是的,多了一個if判斷語句,小括號中出現的兩根豎線||是或的意思,即符號兩邊的語句只要有一個正確,即可執行大括號的程序。
除此之外,還出現了一個新方法,即analogWrite(),這個方法和之前在學習中遇到的那個digitalWrite()是兩兄弟,分別對應著電路中的模擬信號和數字信號的設置,從方法名即可看出,前一個是對針腳進行模擬信號的設置,后一個是對針腳進行數字信號的設置。為什么要使用analogWrite()方法呢?很簡單,因為模擬信號是連續的,數字信號是非連續的。只有連續的信號才可以讓LED神燈產生漸變的效果,所以這里使用的是模擬信號。
還剩最后一步!把代碼燒入Arduino!只需要點擊新建項目文件上,那個指向右側箭頭的圖標,即可自動完成代碼的燒入。
arduino-menu.jpg
圖片來源:Arduino官方IDE的文件編輯菜單選項(注意此處不是指Arduino頂部工具欄)
如果在此操作中碰到了連接Arduino的失敗錯誤,可以查看點亮LED神燈那一節中,關于這部分需要注意的兩個小細節。
如果一切順利,將會看到LED神燈漸變閃爍的效果!
總結通過這次學習,我們實現了LED神燈的亮度進行漸變的效果。多出來的知識點呢,一共有兩個,一個是if語句,另一個是analogWrite()方法。
下期預告至此呢,我們已經學習了點亮LED神燈,以及點亮神燈的兩種方式。通過這兩種點亮LED神燈的方式,我們了解了如何向外輸出數字信號,以及模擬信號。接下來,我們將會學習如何從Arduino讀出元器件輸入的數字信號以及模擬信號。


ohcoder的系列精彩Arduino教程:
Arduino教程-初識Arduino(包含本教程目錄):http://www.zg4o1577.cn/bbs/dpj-41334-1.html
Arduino教程-開篇:http://www.zg4o1577.cn/bbs/dpj-41335-1.html
Arduino教程-點亮LED神燈:http://www.zg4o1577.cn/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://www.zg4o1577.cn/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://www.zg4o1577.cn/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數字信號:http://www.zg4o1577.cn/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號:http://www.zg4o1577.cn/bbs/dpj-41340-1.html
Arduino教程-另一種時間延遲:http://www.zg4o1577.cn/bbs/dpj-41331-1.html
Arduino教程-按鍵開關:http://www.zg4o1577.cn/bbs/dpj-41341-1.html
Arduino教程-停止抖動!:http://www.zg4o1577.cn/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://www.zg4o1577.cn/bbs/dpj-41332-1.html
Arduino教程-用按鍵開關計數:http://www.zg4o1577.cn/bbs/dpj-41330-1.html

………后續持續更新中請打開:http://www.zg4o1577.cn/bbs/dpj-41334-1.html

評分

參與人數 1黑幣 +1 收起 理由
是阿阿阿周 + 1

查看全部評分

回復

使用道具 舉報

ID:173823 發表于 2017-3-19 22:24 來自手機 | 顯示全部樓層
大師你好我想求一個源程序(我只是想學習用Ardunio NANO同時控制一個舵機在45度-90度-135度之間來回停頓運行和1組綠LED燈和8組藍LED燈(其中8組藍燈要像呼吸燈那樣一閃一閃的)可以嗎?如果可以請麻煩大師把源程序發到我郵箱:285883100@qq.com萬分感謝
回復

使用道具 舉報

ID:237069 發表于 2017-10-4 17:42 | 顯示全部樓層
新人加入,等級夠了再來下載學習
回復

使用道具 舉報

ID:470631 發表于 2019-1-19 21:37 | 顯示全部樓層
既然是模擬信號為什么針腳不用A0--A5反而選用了數字端口11呢
回復

使用道具 舉報

ID:543640 發表于 2019-5-22 10:42 | 顯示全部樓層
哪里買這些硬件 淘寶都是套裝 比較貴
回復

使用道具 舉報

ID:452731 發表于 2019-7-8 17:01 | 顯示全部樓層
有大師嗎? 每 次循環累加5,能夠實現例子里的,亮度漸變,變亮然后逐漸熄滅,但是如果每次循環累加變為偶數數值,就是變亮,然后突然熄滅,然后逐漸變亮,沒有了變暗的過程,這是怎么回事?
回復

使用道具 舉報

ID:450950 發表于 2019-7-21 19:35 | 顯示全部樓層
azi197417 發表于 2019-7-8 17:01
有大師嗎? 每 次循環累加5,能夠實現例子里的,亮度漸變,變亮然后逐漸熄滅,但是如果每次循環累加變為偶數數值 ...

  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;

brightness每次從0開始加5 直到255 再減小 這樣沒有問題,而每次加偶數的話 brightness==255就會直接超過255 而超過255后pwm信號就會認為又是從0開始
嘗試改成 brightnes<=0||brightness>=255試試
回復

使用道具 舉報

ID:698787 發表于 2020-6-10 12:57 | 顯示全部樓層
210482244 發表于 2019-1-19 21:37
既然是模擬信號為什么針腳不用A0--A5反而選用了數字端口11呢

A0~A5應該是輸入引腳吧
回復

使用道具 舉報

ID:138707 發表于 2021-7-3 20:51 | 顯示全部樓層
新人加入,等級夠了再來下載學習
回復

使用道具 舉報

ID:1023753 發表于 2022-7-2 13:48 | 顯示全部樓層
210482244 發表于 2019-1-19 21:37
既然是模擬信號為什么針腳不用A0--A5反而選用了數字端口11呢

ANALOG IN
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线婷婷 | 二区三区视频 | 国产在线资源 | 日韩av成人在线 | 久久成人久久 | 亚洲第一区久久 | 天天干国产 | 亚洲成人毛片 | 成人精品国产免费网站 | 久久久久亚洲 | 日韩一区二区三区在线视频 | 中文字幕日韩一区 | 精品一区二区在线观看 | 久久久美女 | 国产精品久久久久久久久久久久冷 | 国产一区中文字幕 | 久久草视频 | 九九久久精品视频 | 亚洲精品3 | 综合久| 欧美日日 | 伊人久久综合影院 | 日韩欧美在线精品 | 日日摸夜夜添夜夜添精品视频 | 五月激情综合 | 夜夜骚 | 国产成人99久久亚洲综合精品 | 一区二区三区欧美 | 国产成人高清在线观看 | 久久久久国产一区二区三区四区 | 日韩美女在线看免费观看 | 国产99热精品 | 在线一区 | 青青艹在线视频 | www.色午夜.com | 91精品国产91久久久久久丝袜 | 国产精品免费观看 | 欧美一级高潮片免费的 | 538在线精品| 久久看片 | 久久综合一区 |