今天要介紹LED,並用LED燈製作出呼吸燈的效果,但是可能會有一些人會想說,那我使用昨天所介紹到的analogWrite()不就可以達到呼吸燈的效果,但是analogWrite()這個函式在Esp32中起不了作用,因為Esp32並不支援像Arduino Uno一樣的類比輸出,所以analogWrite()可以在Arduino Uno板上可以使用,在Esp32中卻得使用其他方法達到此功能,那我們就廢話不多說了Let's GOGO~
LED和其他感測器一樣有分正負極,且LED的正負極有一句很好記的口訣"長正短負",這句口訣可以讓我們清楚的了解LED的正負極。
LED燈常被用來當查看整個系統是否有正常供電的電源燈,或者是做為警示的警示燈,而有些人會用LED做出許多創意的作品,像是呼吸燈、霹靂燈、水滴燈...等等的作品,充滿炫砲特效又感覺好玩的燈光效果。
圖片取自:網路
說到接線,可能現在還不知道我們等等要怎麼接線,所以呢,現在要跟大家講解要如何接線,就是要用名為"杜邦線"的線材去做連接,而杜邦線有分成公對公、公對母及母對母這三個的種類。
圖片取自:網路
這邊我們所使用的是兩條母對母的杜邦線,並照著下面的腳位進行連接: - 接到 GND; + 接到 P23
圖片取自:使用者繪製
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~ 那我們明天見喽!!