BASIC4MCU | 질문게시판 | 아두이노 LED 실행코드
페이지 정보
작성자 PEANUTS 작성일2022-04-04 03:16 조회20,376회 댓글5건본문
int pins[] = {2, 3, 4, 5};
int state = -1;
void setup() {
Serial.begin(9600);
for(int i = 0; i<4; i++)
{
pinMode(pins[i], OUTPUT);
digitalWrite(pins[i], LOW);
}
}
void loop()
{
if(Serial.available())
{
char data = Serial.read();
if(data != '\n')
{
Serial.println(String("You entered ") + "'" + data + "'");
if(data >= '1' && data <= '4')
{
state = data - '0' - 1;
Serial.print("LED ");
Serial.print(state + 1);
Serial.println(" is ON...");
}
else
{
Serial.println("* Invalid LED number...");
state = -1;
}
for(int i=0; i<4; i++)
{
if(i==state)
{
Serial.print("O ");
digitalWrite(pins[i], HIGH);
}
else
{
Serial.print("X ");
digitalWrite(pins[i], LOW);
}
}
Serial.println();
}
}
}
이 코드를 이용해서 10~13번 핀을 연결해서 LED켜는 코드를 완성하고싶은데 아스키코드가 안맞는건지
10을 1과 0으로 인식해서 2개씩 핀이 작동?되요.. 어떻게 해결할 수 있을까요....
댓글 5
조회수 20,376master님의 댓글
master 작성일10,11,12,13을 보내지말고 0,1,2,3을 보내면 간단하죠?
master님의 댓글
master 작성일
알파벳을 보내면 더 간단합니다.
A,B,C,D <-- 10,11,12,13을 ON
a,b,c,d <-- 10,11,12,13을 OFF
1바이트를 전송해서 명령을 할 수 있으면 코드가 훨씬 간단해집니다.
PEANUTS님의 댓글
PEANUTS
1바이트씩 해서 켜는건 되는데 2바이트로 보내는건 안되서요... 시리얼 모니터 입력시 10이 1과 0따로 입력되서요..
master님의 댓글
master
https://cafe.naver.com/circuitsmanual/147353
시리얼 통신 경험이 없다면 설명하기가 쉽지 않습니다.
이 예제 참고해보세요
아두이노는 아니지만 방법적인 것은 유사합니다.
PEANUTS님의 댓글
PEANUTS
감사합니다ㅠ