iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
自我挑戰組

Maker making IoT !!系列 第 7

[Day6] 呼吸燈製作

1.前言

今天要介紹LED,並用LED燈製作出呼吸燈的效果,但是可能會有一些人會想說,那我使用昨天所介紹到的analogWrite()不就可以達到呼吸燈的效果,但是analogWrite()這個函式在Esp32中起不了作用,因為Esp32並不支援像Arduino Uno一樣的類比輸出,所以analogWrite()可以在Arduino Uno板上可以使用,在Esp32中卻得使用其他方法達到此功能,那我們就廢話不多說了Let's GOGO~

2.準備工具

作業系統

  • Windows 10

編譯器

  • Arduino IDE (version 1.8.5)

開發版

  • ESP32s

3.LED燈(發光二極體)

LED和其他感測器一樣有分正負極,且LED的正負極有一句很好記的口訣"長正短負",這句口訣可以讓我們清楚的了解LED的正負極。

LED燈常被用來當查看整個系統是否有正常供電的電源燈,或者是做為警示的警示燈,而有些人會用LED做出許多創意的作品,像是呼吸燈、霹靂燈、水滴燈...等等的作品,充滿炫砲特效又感覺好玩的燈光效果。

圖片取自:網路

4.接線

說到接線,可能現在還不知道我們等等要怎麼接線,所以呢,現在要跟大家講解要如何接線,就是要用名為"杜邦線"的線材去做連接,而杜邦線有分成公對公、公對母及母對母這三個的種類。

圖片取自:網路

這邊我們所使用的是兩條母對母的杜邦線,並照著下面的腳位進行連接: - 接到 GND; + 接到 P23

圖片取自:使用者繪製

5.程式碼

const int ledPin = 23;  // Esp32 23腳 

const int freq = 5000;       //頻率
const int ledChannel = 0;    //通道
const int resolution = 8;    //每次多少

void setup(){
  ledcSetup(ledChannel, freq, resolution);  //設定哪個通道開始多久依次每次多少
  ledcAttachPin(ledPin, ledChannel);        //設定腳位和通道
}

void loop(){
  for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){   
    ledcWrite(ledChannel, dutyCycle);       //由通道控制暗到亮
    delay(15);
  }
  for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
    ledcWrite(ledChannel, dutyCycle);       //由通道控制亮到暗
    delay(15);
  }
}

接下來就可以進行燒入的動作並感受LED帶來的光明,如果忘記怎麼燒入的小夥伴可以回去參考我們Day4 Arduino測試燒錄的文章溫習一下~

溫馨小提醒: LED盯太久傷眼,請保持距離喔!(要不就戴墨鏡XD)

歡迎交流

好了,今天的小案例相信大家都能夠輕鬆順利的完成。是不是頗有成就感呢?!但IoT能夠玩出的花樣可遠遠不止這一點點(快樂)功能,明天我們將會再為大家帶來"函式Part2",讓大家能夠在後續更精采的系列案例中玩出更多的花樣,相信自己就是未來的Maker~ 那我們明天見喽!!


上一篇
[Day5] 函式(數)介紹
下一篇
[Day7] IoT Maker之Coding知識科普 - (Variable)
系列文
Maker making IoT !!30

尚未有邦友留言

立即登入留言