實驗說明:
- 數位訊號(Digital signal)是指使用離散(不連續)的0、1來表示資訊,例如:「電腦是只有0和1的世界」,電腦在運算的時候只有低電位(0V 代表二進位的數字0)與高電位(3.3V 代表二進位的數字 1),訊號可以由 0(0V)直接跳到 1(3.3V),也可以由 1(3.3V)直接跳到 0(0V),得到的是一個不連續的電壓變化,這種「不連續的訊號」稱為數位訊號。
- 接下來我們就使用數位訊號輸出來做一個稍微複雜一點的交通紅綠燈實驗,其實聰明的讀者們可以看出來這個實驗就是將單個LED的實驗擴展成3 個顏色的LED,就可以實現我們模擬交通燈的實驗了。
- LED燈實驗是比較基礎的實驗之一,我們利用ESP32的數位I/O Pins 和外接直插LED 燈來完成這個實驗。
材料:
- ESP32-E DevKit
- USB 傳輸線
- 直插LED (紅色、黃色、綠色)
- 220Ω直插電阻
- 麵包板
- 麵包板跳線
▼ 購買IoT物聯網學習教材:
相關知識
LED是一種發光二極管。 只有當電流以正確的方向流動並且有兩個極點時,發光二極管才能工作。 當LED的較長引腳(+)連接到電源的正極輸出且較短引腳連接到負極(-)時,LED才會工作(亮起)。
所有常見的2腳二極管都是相同的。發光二極管只有在其正極的電壓高於其負極的電壓時才會工作,並且對於大多數所有常見的二極管來說,工作電壓的範圍都很窄,為1.9V和3.4V。 如果您使用超過 3.3V 的電壓,則 LED 會損壞並燒壞,所以一般來說必須使用指定電阻值如220歐姆串聯到您使用的LED上。
接線說明:
- LED 正極(長的一端)接數位接腳GPIO ,
- LED 負極接220歐姆電阻再接GND。
程式:
int val;
int redled =15;
int yellowled =2;
int greenled =4;
void setup()
{
pinMode(redled, OUTPUT);
pinMode(yellowled, OUTPUT);
pinMode(greenled, OUTPUT);
}
void loop()
{
digitalWrite(redled, HIGH);
delay(1000);
digitalWrite(redled, LOW);
digitalWrite(yellowled, HIGH);
delay(200);
digitalWrite(yellowled, LOW);
digitalWrite(greenled, HIGH);
delay(1000);
digitalWrite(greenled, LOW);
}
程式說明:
- 第 1 列定義數位接口GPIO15 Pin 。
- 第 2 列定義數位接口GPIO2 Pin 。
- 第 3 列定義數位接口GPIO4 Pin 。
- 第 6 列定義紅色LED Pin為輸出Pin。
- 第 7 列定義黃色LED Pin為輸出Pin。
- 第 8 列定義綠色LED Pin為輸出Pin。
- 第 12 列點亮紅色LED。
- 第 13 列延遲1 秒。
- 第 14 列點熄滅紅色LED。
- 第 15 列點亮黃色LED。
- 第 16 列延遲2 秒。
- 第 17 列熄滅黃色LED。
- 第 18 列點亮綠色LED。
- 第 19 列延遲1 秒。
- 第 20 列熄滅綠色LED。
下載程序完成後就可以看到我們自己的設計控制的交通號誌燈了。