무지개 링
Coddy Arduino 여정의 디스플레이와 센서 섹션에 포함된 레슨. 24개 중 17번째.
무지개를 표현하려고 빨강, 초록, 파랑을 고르는 것은 어렵습니다. 색조가 더 간단합니다. 빨강에서 시작해 노랑, 초록, 시안, 파랑, 마젠타를 거쳐 다시 빨강으로 돌아오는 색상환을 도는 하나의 숫자입니다.
ring.ColorHSV(hue)는 색조를 색으로 바꿉니다. 색조의 범위는 0부터 65535까지입니다. 0은 빨강이고, 약 21845는 초록, 약 43690은 파랑이며, 65536이면 다시 빨강이 됩니다.
무지개 하나를 16픽셀에 펼치려면, 각 픽셀에 바로 앞 픽셀보다 65536 / 16 = 4096만큼 더 큰 값을 지정하세요. 픽셀 15에는 int에 담을 수 있는 값보다 큰 61440이 필요하므로, 색조를 long에 저장하고 숫자를 4096L로 쓰세요. L을 붙이면 곱셈에도 long이 사용됩니다.
for (int i = 0; i < 16; i++) {
long hue = i * 4096L;
ring.setPixelColor(i, ring.ColorHSV(hue));
}
ring.show();챌린지
중급링을 따라 무지개색을 칠하세요:
- 픽셀 0은 빨간색(색조 0)
ring.ColorHSV()를 사용해 다음 픽셀마다 색상환을 따라 4096만큼 이동합니다- 그러면 16개 픽셀이 색상환을 한 바퀴 돕니다
Run을 누른 다음 Check를 누르세요.
직접 해보기
#include <Adafruit_NeoPixel.h>
// 16개 픽셀, 데이터는 핀 6으로 전송
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
void setup() {
ring.begin();
// 각 픽셀에 고유한 색조를 지정하고, 픽셀 0은 빨간색으로 설정
ring.show();
}
void loop() {
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
디스플레이와 센서의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드