아두이노 나노에 연결된 6개의 LED를 D13부터 D8까지 사용하여 랜덤으로 점멸하는 프로그램을 작성하려면 다음과 같이 코드를 작성할 수 있습니다. 이 코드는 아두이노 IDE에서 작성하고 업로드할 수 있습니다.
// LED 핀 설정
const int ledPins[] = {13, 12, 11, 10, 9, 8};
const int numLEDs = 6;
void setup() {
// 모든 LED 핀을 출력 모드로 설정
for (int i = 0; i < numLEDs; i++) {
pinMode(ledPins[i], OUTPUT);
}
randomSeed(analogRead(0)); // 랜덤 시드 초기화
}
void loop() {
// 랜덤 LED 선택
int randomLED = random(numLEDs);
// 선택된 LED를 랜덤으로 켜고 끄기
digitalWrite(ledPins[randomLED], HIGH);
delay(500); // 0.5초 동안 켜기
digitalWrite(ledPins[randomLED], LOW);
delay(500); // 0.5초 동안 끄기
}
위 코드를 아두이노 IDE에 복사하고 아두이노 나노에 업로드하면 6개의 LED 중 하나가 랜덤으로 선택되어 0.5초 동안 켜지고 0.5초 동안 꺼집니다. 코드에서 `random()` 함수를 사용하여 랜덤한 LED를 선택하고 `digitalWrite()` 함수를 사용하여 LED를 켜고 끕니다. `randomSeed(analogRead(0))`는 랜덤 시드를 초기화하는데 사용되며, 시드를 초기화하지 않으면 항상 같은 순서로 LED가 선택될 수 있습니다.
소스상세 설명
ledPins[] 배열: LED가 연결된 핀 번호를 저장하는 배열입니다.
여기서는 총 6개의 핀(13, 12, 11, 10, 9, 8)을 사용합니다.
numLEDs: 사용되는 LED의 개수를 나타냅니다. 여기서는 6으로 설정되어 있습니다.
이렇게 하면 다음과 같은 새로운 기능이 추가됩니다.
랜덤한 개수의 LED 켜기: 각 루프마다 1개에서 최대 6개의 LED가 랜덤하게 켜집니다.랜덤한 시간 동안 켜기/끄기: LED가 켜지고 꺼지는 시간이 0.1초에서 1초 사이로 랜덤하게 변경됩니다.
이 코드로 LED가 더 다양한 패턴으로 깜빡거리는 모습을 볼 수 있을 것입니다. 즐겁게 코딩하세요!
// LED 핀 설정
const int ledPins[] = {13, 12, 11, 10, 9, 8};
const int numLEDs = 6;
void setup() {
// 모든 LED 핀을 출력 모드로 설정
for (int i = 0; i < numLEDs; i++) {
pinMode(ledPins[i], OUTPUT);
}
randomSeed(analogRead(0)); // 랜덤 시드 초기화
}
void loop() {
// 랜덤으로 켜질 LED 개수 결정 (1~numLEDs)
int numLEDsToLight = random(1, numLEDs + 1);
// 선택된 LED를 랜덤으로 켜기
for (int i = 0; i < numLEDsToLight; i++) {
int randomLED = random(numLEDs);
digitalWrite(ledPins[randomLED], HIGH);
}
// 랜덤한 시간 동안 켜기 (0.1초 ~ 1초)
int onTime = random(100, 1001);
delay(onTime);
// 모든 LED 끄기
for (int i = 0; i < numLEDs; i++) {
digitalWrite(ledPins[i], LOW);
}
// 랜덤한 시간 동안 끄기 (0.1초 ~ 1초)
int offTime = random(100, 1001);
delay(offTime);
}