- 功能簡介
- 使用 Arduino 控制 6 個 LED,造成霹靂燈的效果
- 使用電位器決定霹靂燈移動的延遲時間
- 將電位器輸入與延遲時間顯示在 LCD 顯示器上
- 電路連接
- 程式
#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; } 運行影片
2016年9月17日 星期六
Arduino 霹靂燈實驗
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言