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
arduino rgb led 사용하기  (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 구차니

댓글을 달아 주세요