반응형
SMALL

안녕하세요! Choi GPT 입니다.

이번 글은 챗GPT를 활용한 프로그램 작성 예시 입니다.

정말 왠만한 사람보다 훌륭하게 작성해주는데요.

ChatGPT를 활용한 프로그램 작성 예제

아두이노 나노에 연결된 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);
}

230710_메모.docx
0.01MB

 

감사합니다.

반응형
LIST

+ Recent posts