[英]Fading RGB light from yellow to red using reed switch
我對 arduino 編碼還很陌生,非常感謝您的幫助!
我最近用簧片開關和一個簡單的 LED 燈制作了一個電路,一旦它離開磁場,它就會慢慢熄滅,一旦接近磁場就會再次亮起。 對於我的項目,我需要 LED 在靠近磁場時發出恆定的黃光,但一旦它被帶走,光就必須逐漸變為紅光,並且一般同時淡出時間。
所以簡單地說:
波紋管是我已經擁有的簡單 LED 和簧片開關的代碼。
`
int ledPin = 9;
int reedPin = 2;
int brightness = 0;
int fadeAmount = 5;
unsigned long timestamp = 0;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(reedPin, INPUT_PULLUP);
}
void loop(){
if(millis()-timestamp > 30){
brightness = brightness - fadeAmount;
if(brightness < 0) brightness = 0;
timestamp = millis();
}
if(!digitalRead(reedPin)){
brightness = 255;
}
analogWrite(ledPin, brightness);
}
//different code begins here
int rVal = 254;
int gVal = 1;
int bVal = 127;
int rDir = -1;
int gDir = 1;
int bDir = -1;
const int rPin = 11;
const int gPin = 10;
const int bPin = 9;
void setup() {
pinMode(rPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(bPin, OUTPUT);
}
void loop() {
analogWrite(rPin, rVal);
analogWrite(gPin, gVal);
analogWrite(bPin, bVal);
// change the values of the LEDs
rVal = rVal + rDir;
gVal = gVal + gDir;
bVal = bVal + bDir;
if (rVal >= 255 || rVal <= 0) {
rDir = rDir * -1;
}
if (gVal >= 255 || gVal <= 0) {
gDir = gDir * -1;
}
if (bVal >= 255 || bVal <= 0) {
bDir = bDir * -1;
}
delay(33);
}
}
`
底部是使 RGB LED 淡入淡出不同顏色的代碼,但我需要將它從黃色變為紅色到 go。 我怎么能那樣做? 以及如何將 RGB 燈代碼合並到簧片開關代碼中?
您可以通過相同級別的綠色和紅色發射器獲得黃色。
為了淡化為紅色,您需要將綠色發射器減少到 0。這當然也會降低整體亮度。
一旦你淡出綠色,你就可以將紅色淡化為 0。
當然,您也可以同時淡出兩個 LED。 更快地淡化綠色分量也會將顏色移向紅色。
這是個人喜好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.