類比輸出、變數宣告、串列埠監看、for迴圈

電路接線圖

類比輸出(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);
  }
  // --------------------------------------------------
}

作業練習

  1. 2顆LED燈輪流呼吸,LED1由最暗到最亮,再由最亮到最暗;接著換LED2由最暗到最亮,再由最亮到最暗。
  2. 在Wokwi網站上進行模擬,並完成實體接線。