2019年4月2日 星期二

RGB LED 不會亮/顏色總是混合到..

因為還有作業 不打很多了.. 最近摸了RGB LED,課堂上參考葉難的教學
http://yehnan.blogspot.com/2013/01/arduinorgb-led.html

一開始不會亮喔,我試了很久,怕接反會燒掉,後來還是試了,的確要把它給接反(最長那根改通電3.3V) 但雖然可以亮,我要馬還是亮錯顏色,且顏色會和在一起,這個問題該不會是燈泡壞了吧 = =

後來看到這句話
RGB LED有四支腳,我買的是共陰極,其中最長的腳要接地,其他三支腳分別控制R、G、B色彩。

看來搜尋看看共陽極好了! 我找到這個MT7697搭配blocklyduino的教學 
https://docs.labs.mediatek.com/linkit-7697-blocklyduino/a04-rgb-led-12879766.html
腳位1 的接到 3.3V 的電源, 腳位 2 / 3 / 4 接到數位輸出腳位

確定我的是共陽極了! 它很特別,你通電給他(high)它才不會亮
所以,不會亮把它改成此教學的範例即可。


因此,共陽極要改變顏色的輸出變化,也是要用255減掉(改自葉難教學)

#define LEDR 15
#define LEDG 16
#define LEDB 17

void setup() {
  pinMode(LEDR, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDB, OUTPUT);
  RGB_Led(0,0,0); //turnOff
}

void RGB_Led(int r, int g, int b) {
  analogWrite(LEDR, 255 - r);
  analogWrite(LEDG, 255 - g);
  analogWrite(LEDB, 255 - b);
}

// 每隔一秒改變LED的顏色,紅、綠、藍
void loop() {

  RGB_Led(0,0,0); //turnOff
  RGB_Led(255,0,0); //Red
  delay(1000);

  RGB_Led(0,0,0); //turnOff
  RGB_Led(0,255,0); //Green
  delay(1000);

  RGB_Led(0,0,0); //turnOff
  RGB_Led(0,0,255); //Blue
  delay(1000);
}

希望有幫助到大家,有問題歡迎留言喔

沒有留言:

張貼留言

docker-mac Desktop清除容器log

 最近Docker遇到這個問題 Error grabbing logs: invalid character '{' looking for beginning of object key string. 建議的解法是刪除整個log檔,大家可以參考以下教學 htt...