程式
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int ledPin[] = { 2, 3, 4, 5, 6, 7 };
int delayMs;
int i = 0, d = 1;
// 設定 LCD 的位址、每行字數、行數
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// 設定輸出 pin 模式
for (int i = 0; i < 6; i++)
pinMode(ledPin[i], OUTPUT);
// 初始化 LCD 顯示器
lcd.init();
lcd.backlight();
}
void loop()
{
// 讀取電位器輸入
delayMs = analogRead(A0);
lcd.setCursor(0, 0);
lcd.print("A0 = " + String(delayMs) + " ");
// 限制延遲的範圍
delayMs = map(delayMs, 0, 1023, 5, 500);
lcd.setCursor(0, 1);
lcd.print("Delay = " + String(delayMs) + " ");
// 點滅控制
digitalWrite(ledPin[0], 0 == i ? HIGH : LOW);
digitalWrite(ledPin[1], 1 == i ? HIGH : LOW);
digitalWrite(ledPin[2], 2 == i ? HIGH : LOW);
digitalWrite(ledPin[3], 3 == i ? HIGH : LOW);
digitalWrite(ledPin[4], 4 == i ? HIGH : LOW);
digitalWrite(ledPin[5], 5 == i ? HIGH : LOW);
delay(delayMs);
i += d;
// 換方向的控制
if (5 == i)
d = -1;
else if (0 == i)
d = 1;
}
沒有留言:
張貼留言