embeded/arduino(genuino)2020. 4. 18. 21:19

먼가 회로가 잔뜩 추가된 상황.. 330옴으로 해주니 생각외로 엄청 밝다.

회로 다 꾸미고 나니.. 발견된 1k옴.. ㅠㅠ 아놔...

 

 

신기하게(?) D9 / D10 / D11 과 RGB LED 사이에 저항을 달아주지 않고 바로 연결하고

공통 + 와 VCC 사이에 저항을 달아주면 정상적으로 불이 들어오지 않는다.

 

AVR 내부 풀업 때문인진 모르겠지만

RGB 전부 켜서 흰색이 들어와야 하는데 Red로만 불이 들어 오는 이상한 현상이 발생한다.

회로적으로 공부가 좀 더 필요 할 듯..

 

회로는 아래 링크를 참조했음

[링크 : http://wiki.vctec.co.kr/opensource/arduino/rgbled]

 

일단 작성한 코드는 다음과 같음

int led_r = 9;
int led_g = 10;
int led_b = 11;
int val = 0;
int dir = 0;
int mode = 1;

void setup() {
  // put your setup code here, to run once:
  pinMode(led_r, OUTPUT);
  pinMode(led_g, OUTPUT);
  pinMode(led_b, OUTPUT);
}

// common -
void mode_change()
{
  switch(mode)
  {
    default:
    case 1: mode = 2; break;
    case 2: mode = 3; break;
    case 3: mode = 4; break;
    case 4: mode = 5; break;
    case 5: mode = 6; break;
    case 6: mode = 7; break;
    case 7: mode = 1; break;
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  if(mode & 0x01) analogWrite(led_r, 255 - val);
  else            analogWrite(led_r, 255);
  
  if(mode & 0x02) analogWrite(led_g, 255 - val);
  else            analogWrite(led_g, 255);
  
  if(mode & 0x04) analogWrite(led_b, 255 - val);
  else            analogWrite(led_b, 255);

  if(dir == 0)
  {
    val = val + 1;
    if(val >= 255)
    {
      dir = 1;
    }
  }
  else
  {
    val = val - 1;
    if(val == 0)
    {
      dir = 0;
      mode_change();
    }
  }
  delay(5);
}

'embeded > arduino(genuino)' 카테고리의 다른 글

L293D 아두이노 드라이버  (0) 2020.04.22
라즈베리 - 아두이노 i2c 통신 예제  (0) 2020.04.18
rgb led 색상 순환 패턴  (0) 2020.04.17
arduino nano PWM 출력  (0) 2020.04.17
PAM8403 3W 스테레오 오디오 앰프  (0) 2020.04.17
Posted by 구차니