안녕하세요~~ 오늘은 RGB LED를 랜덤으로 깜빡이기에 대해서 포스팅할겁니다. 우선 준비물은 아두이노 보드UNO(뭐든 상관이 없어여), 연결선, 다운로드 케이블 등 입니다.
우선 RGB LED란 R(REd),G(Green),B(Blue) 즉, 빛의 3원색인 빨강,초록,파랑이 있는 LED 입니다. 이 세 빛이 모이면 흰색을 만들 수 있고, 이 세가지 빛으로는 검은색을 못 만듭니다. 밝기를 조절해서 다양한 색깔도 만들 수 있습니다.
RGB LED 출처-네이버 쇼핑
또한 애노드, 캐소드 라는 것이 있습니다. 애노드는 산화 반응(산소를 얻는 반응)이 일어나는 전극으로 전자가 생기고, 캐소드는 환원 반응(산소를 잃는 반응)이 일어나는 전극으로 전자를 받습니다. 전자는 - 에서 +로 가기 때문에 -가 애노드 +가 캐소드입니다. 그런데 애노드인지 캐소드인지에 따라서 위의 RGB LED의 가장 오른쪽에 GND(-)를 꽂아줄 것인지 5V(+) 를 꽂아줄 것인지 달라집니다. 애노드면 5V , 캐소드면 GND에 연결해주시면 됩니다.
기본적으로 캐소드가 보편적이라서 캐소드가 많이 나오기 때문에 당연히 캐소드인줄 알고 회로 구성을 다하고 GND에 연결하고 코드 작성해서 다운로드했는데도 안되더군요. '왜 안되지?' 라는 생각으로 계속 코드도 바꿔보고 보드가 고장났나하고 다른 핀에 꽂아주었는데도 안되길래 설마하고 5V에 연결했더니 싹 되더라고요. 정말 운이 없나봅니다. 이제 본격적으로 시작하겠습니다.
LED를 랜덤으로 깜빡일려면 랜덤함수가 필요한데요 그게 바로 randomSeed() 함수입니다. 이 함수를 통해서 빨강,초록,파랑의 밝기를 랜덤으로 해줄겁니다. 이번에는 digitalRead() 나 digitalWrite() 를 쓰지 않고 analogRead() 와 analogWrite() 를 써보겠습니다. 일단 회로 구성부터 할 건데요. 아래와 같이 해줍니다.
fritzing이란 사이트에는 위의 사진과 같은 LED가 없어서 어차피 같은 RGB LED인것을 가지고 왔습니다. 저기에는 왼쪽에서 두번째가 캐소드입니다. 여러분들은 저 선을 GND에 꽂아보시고 안되시면 저와 같은 애노드라 5V에 연결해주시면 됩니다. 저렇게 연결해주시면 R은 13번, G는 12번, B는 11번 핀에 꽂아주게 되고 애노드는 5V에 연결해주게 되었습니다. 이제 코드를 짜보겠습니다.
우선 randomSeed(analogRead(0)); 를 써줘서 analogRead(0)에서 난수(무작위)를 생성하게 해줍니다. 그리고 밑에는 LED는 출력이니까 analogWrite(핀번호,random(숫자)); 를 써줘서 '숫자' 안의 범위에서 난수가 생성되게 하고 그 난수가 밝기가 되게 합니다. 이렇게 하면 R은 13번, G는 12번, B는 11번에서 255안의 랜덤수만큼 밝기가 설정됩니다. 그리고 이 코드를 loop안에 넣어놨기 때문에 계속 반복이 되어 밝기가 계속 바뀝니다.
오늘은 RGB LED로 랜덤밝기 깜빡이기에 대해 알아보았습니다. 시험 기간이라 시간이 없어 다소 대충 썼다는 느낌이 있지만 열심히 썼으니 잘 봐주세요. 다음주는 시험이라 못 쓸것 같습니다.
[아두이노 LED] 버튼을 누를 때 누르는 횟수가 홀수면 켜지고 짝수면 꺼지기 (0) | 2020.04.30 |
---|---|
[아두이노] RGB LED를 버튼 1개로 제어하기 (0) | 2020.04.20 |
[아두이노] 아두이노로 LED 깜빡이기 (0) | 2020.04.19 |
[아두이노] 아두이노란? (0) | 2020.04.15 |