티스토리 뷰

IT/Arduino

아두이노 교육3일차 RGB LED

underbell 2014. 8. 23. 14:12
#include  //ROM(비휘발성 메모리) 활용

int swCount = 0;
int swBuf = 0;

unsigned char color[8][3] = {
  // R   G   B
    {  0,   0,   0}  // OFF
  , {255,   0,   0}  // Red
  , {  0, 255,   0}  // Green
  , {  0,   0, 255}  // Blue
  , {255, 255,   0}  // Yellow
  , {255,   0, 255}  // magenta
  , {  0, 255, 255}  // cyan
  , {255, 255, 255}  // white
};

void setup()  {
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(2, INPUT_PULLUP);
  Serial.begin(9600);
  
  swCount = EEPROM.read(0);
}

void loop()  {
  if(digitalRead(2) == LOW && swBuf == 0)  {
    swBuf = 1;
  }else if(digitalRead(2) == HIGH && swBuf == 1)  {
    swBuf = 0;
    swCount++;
    if(swCount > 7)  swCount = 0;
    EEPROM.write(0, swCount);
  }
  setRGBColor(color[swCount][0], color[swCount][1], color[swCount][2]);
}
void setRGBColor(int R, int G, int B)  {  //common Anode 이므로 값 반전
  analogWrite(9, 255 - R);
  analogWrite(10, 255 - G);
  analogWrite(11, 255 - B);
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함