Arduino 程式碼範例

下面是加註解的 Arduino 程式碼,並且加上了複製程式碼的按鈕:

#include <SoftwareSerial.h>  // 引入 SoftwareSerial 庫
SoftwareSerial swSer(12, 14);  // 設定軟體序列埠,連接到腳位 12 和 14

uint8_t ledPin = 2;  // LED 連接腳位
int delayTime = 0xc8;  // 設定延遲時間為 200 (0xc8)
unsigned long lastTime = 0;  // 記錄上次執行時間的變數

// setup 函數在按下重置或開機時執行一次
void setup() {
  pinMode(ledPin, OUTPUT);  // 設定 LED 引腳為輸出
  Serial.begin(9600);  // 初始化串口,波特率為 9600
  swSer.begin(4800);  // 初始化軟體序列埠,波特率為 4800
}

// loop 函數會持續執行,直到板子斷電或重置
void loop() {
  // 檢查是否已經到達設定的延遲時間
  if (millis() - lastTime >= delayTime) {
    // 閃爍 LED
    int ledStatus = digitalRead(ledPin);  // 讀取 LED 當前狀態
    digitalWrite(ledPin, !ledStatus);  // 反轉 LED 狀態

    // 向軟體序列埠發送資料
    swSer.write(0x01);
    swSer.write(0x03);
    swSer.write((byte)0x00);
    swSer.write(0x48);
    swSer.write((byte)0x00);
    swSer.write(0x08);
    swSer.write(0xC4);
    swSer.write(0x1A);

    lastTime = millis();  // 更新上次執行時間
  }

  // 檢查軟體序列埠是否有可用的資料
  while (swSer.available() > 0) {
    Serial.println(swSer.read());  // 輸出軟體序列埠的資料到串口
  }
}