電路接線圖

類比輸出(analogWrite)
analogWrite(led, value); // led:接腳;value:範圍0~255
void setup() {
pinMode(19,OUTPUT); //宣告第19腳為輸出腳
}
void loop() {
analogWrite(19,0); // 輸出第19腳值為0(LOW)--->LED最亮
delay(1000);
analogWrite(19,64); // 輸出第19腳值為64--->LED亮3/4
delay(1000);
analogWrite(19,128); // 輸出第19腳值為128--->LED亮一半
delay(1000);
analogWrite(19,192); // 輸出第19腳值為192--->LED亮1/4
delay(1000);
analogWrite(19,255); // 輸出第19腳值為255(HIGH)--->LED最暗
delay(1000);
}
宣告變數:參考說明
//---------------------
// 廣域變數
//---------------------
void setup() {
// 區域變數
}
void loop() {
// 區域變數
}
串列埠監看視窗
void setup() {
Serial.begin(9600); // 啟用串列埠監看視窗
Serial.println("Hello"); // 在串列埠監看視窗印出字串(換行)
Serial.print("This is a test."); // 在串列埠監看視窗印出字串(不換行)
}
void loop() {
}
for迴圈:參考說明
for (初值; 條件; 增量) {
// 敘述
}
// 讓LED從亮到最暗,每50ms,讓類比輸出的數值遞增5
// 宣告整數變數i,i從0開始,只要符合條件(i<=255),就做大括號裡面的敘述,完成後i每次加5
for (int i = 0; i <= 255; i = i + 5)
{
Serial.println(i); // 在監看視窗中印出i
analogWrite(led, i); // 輸出第led腳值為0(LOW)--->LED最亮
delay(50);
}
參考範例
// 宣告區
int led = 19; // 宣告變數led為整數
int t = 50; // 宣告變數t為整數,初值為50ms
void setup() {
Serial.begin(9600); // 啟用串列埠監看視窗
pinMode(led, OUTPUT); // 設定第led腳為輸出腳
}
void loop() {
// --------------------------------------------------
// 由最暗到最亮
// --------------------------------------------------
for (int i = 255; i >= 0; i = i - 5)
{
Serial.println(i); // 在監看視窗中印出i
analogWrite(led, i); // 送出第led腳信號值為0---255
delay(t);
}
// --------------------------------------------------
// --------------------------------------------------
// 由最亮到最暗
// --------------------------------------------------
for (int i = 0; i <= 255; i = i + 5)
{
Serial.println(i); // 在監看視窗中印出i
analogWrite(led, i); // 送出第led腳信號值為0---255
delay(t);
}
// --------------------------------------------------
}
作業練習
- 2顆LED燈輪流呼吸,LED1由最暗到最亮,再由最亮到最暗;接著換LED2由最暗到最亮,再由最亮到最暗。
- 在Wokwi網站上進行模擬,並完成實體接線。