코딩 공부 중인데 잘 안 되는 부분이 많아서 질문 올립니다.
코딩 공부 중인데 어떻게 해야할 지 몰라서 모르겠습니다.
if … else if … else 이용해서 해야합니다.
사진 활용해서 해야할 것 같습니다.
{조건 1 : 송신 문자열로 1을 전송했을 때,
① 시리얼 모니터에 “1을 입력하셨습니다” 문구 출력 후 줄바꿈 1번
② 시리얼 모니터에 숫자 1을 16진수 ASCII 코드로 출력 후 줄바꿈 2번
③ 3색 LED 중 빨간색(R)을 0.5초 간격으로 1번 점멸(깜빡거림)
• 조건 2 : 송신 문자열로 2을 전송했을 때,
① 시리얼 모니터에 “2를 입력하셨습니다” 문구 출력 후 줄바꿈 1번
② 시리얼 모니터에 숫자 2를 8진수 ASCII 코드로 출력 후 줄바꿈 2번
③ 3색 LED 중 초록색(G)을 0.5초 간격으로 2번 점멸(깜빡거림) ← for문 사용
• 조건 3 : 송신 문자열로 3을 전송했을 때,
① 시리얼 모니터에 “3을 입력하셨습니다” 문구 출력 후 줄바꿈 1번
② 시리얼 모니터에 숫자 3을 2진수 ASCII 코드로 출력 후 줄바꿈 2번
③ 3색 LED 중 파란색(B)을 0.5초 간격으로 3번 점멸(깜빡거림) ← for문 사용}
안녕하세요. 비트박입니다.
int redLed = 2; // 빨간색 LED를 디지털 핀 2에 연결
int greenLed = 3; // 초록색 LED를 디지털 핀 3에 연결
int blueLed = 4; // 파란색 LED를 디지털 핀 4에 연결
void setup() {
Serial.begin(9600); // 시리얼 통신 속도 설정
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
}
void loop() {
if (Serial.available() > 0) { // 시리얼 포트에서 데이터가 도착한 경우
char data = Serial.read(); // 데이터 읽기
if (data == '1') {
Serial.println("1을 입력하셨습니다.");
Serial.println(String(1, HEX)); // 16진수 ASCII 코드로 출력
digitalWrite(redLed, HIGH); // 빨간색 LED 켜기
delay(500); // 0.5초 대기
digitalWrite(redLed, LOW); // 빨간색 LED 끄기
}
else if (data == '2') {
Serial.println("2를 입력하셨습니다.");
Serial.println(String(2, OCT)); // 8진수 ASCII 코드로 출력
digitalWrite(greenLed, HIGH); // 초록색 LED 켜기
delay(500); // 0.5초 대기
digitalWrite(greenLed, LOW); // 초록색 LED 끄기
delay(500); // 0.5초 대기
digitalWrite(greenLed, HIGH); // 초록색 LED 켜기
delay(500); // 0.5초 대기
digitalWrite(greenLed, LOW); // 초록색 LED 끄기
}
else if (data == '3') {
Serial.println("3을 입력하셨습니다.");
Serial.println(String(3, BIN)); // 2진수 ASCII 코드로 출력
// for문 사용하여 파란색 LED 3번 깜빡이기
for(int i = 0; i < 3; i++) {
digitalWrite(blueLed, HIGH); // 파란색 LED 켜기
delay(500); // 0.5초 대기
digitalWrite(blueLed, LOW); // 파란색 LED 끄기
delay(500); // 0.5초 대기
}
}
else {
Serial.println("올바르지 않은 입력입니다. 1, 2, 3 중 하나를 입력하세요.");
}
}
}