1. 程式人生 > 實用技巧 >米思齊觸控+RGB燈實現紅綠藍燈迴圈切換

米思齊觸控+RGB燈實現紅綠藍燈迴圈切換

材料

Arduino uno R3 開發板:1個
RGB彩色流水燈四腳:1個
觸控式開關三腳:1個

硬體連線在這裡插入圖片描述

RGB LED燈--------Arduino開發板
red-------11
green-------10
blue-------9
GND------GND

觸控開關-------------Arduino開發板
GND--------GND
VCC--------3.3V
SIG---------2

LED燈程式碼和效果

實驗效果:每觸控一次,顏色進行下面的迴圈轉換:紅色-綠色-藍色-暗

volatile int PIN_B;
volatile int PIN_G;
volatile int PIN_R;

//定義RGB燈顏色控制引腳
volatile int buttonState;
volatile int PIN_COUNT;//定義一個變數,用於控制顏色的轉換
volatile int PIN_KEY;//定義按鍵位管腳

void setup(){
pinMode(2, INPUT);
PIN_R = 11;
PIN_G = 10;
PIN_B = 9;
PIN_KEY = 2;
PIN_COUNT = 0;
buttonState = 0;
pinMode(PIN_B, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(PIN_R, OUTPUT);
//設定RGB對應的管腳為輸出

pinMode(PIN_KEY, INPUT);//設定PIN_KEY對應的管腳2為輸入
}

//寫一個顏色輸出的方法
void color(char red, char green, char blue) {
pinMode(PIN_R, OUTPUT);
digitalWrite(PIN_R,(255 - red));
pinMode(PIN_G, OUTPUT);
digitalWrite(PIN_G,(255 - green));
pinMode(PIN_B, OUTPUT);
digitalWrite(PIN_B,(255 - blue));
}

void loop(){
buttonState = digitalRead(2);

if (buttonState ==HIGH) {
delay(1000);//延時
PIN_COUNT = PIN_COUNT + 1;
if ((long) (PIN_COUNT) % (long) (4) == 1) {
color(0, 255, 255);//紅色
}
if ((long) (PIN_COUNT) % (long) (4) == 2) {
color(255, 0, 255);//綠色
}
if ((long) (PIN_COUNT) % (long) (4) == 3) {
color(255, 255, 0);//藍色
}
if ((long) (PIN_COUNT) % (long) (4) == 0) {
color(255, 255, 255);//黑色
}
}