BASIC4MCU | 질문게시판 | 시리얼모니터로 led 제어
페이지 정보
작성자 아두리노 작성일2021-10-10 00:35 조회5,101회 댓글4건본문
0 입력 : led 꺼짐
1 ~ 9 : 입력한 수만큼 0.5초씩 켜졌다 꺼짐을 반복
( 예 : 2 -> 0.5초씩 켜짐꺼짐을 2번 반복 )
** 뭘 입력해도 아무일도 일어나지 않습니다 ..
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
char n=Serial.read();
if(Serial.available()){
if(n>='1' && n<='9'){
for(int i=0;i<n;i++){
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);
}
}
else if(n=='0'){
digitalWrite(13,LOW);
delay(100);
}
}
댓글 4
조회수 5,101깨소금님의 댓글
깨소금 작성일
String str="";
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
if(Serial.available()){
while(Serial.available()){
char n=Serial.read();
str=str+n;
delay(10);
}
int a=str.toInt();
str="";
for(int i=0;i<a;i++){
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);
}
}
}
master님의 댓글
master 작성일
if(n>='1' && n<='9'){
for(int i=0;i<n;i++){
digitalWrite(13,HIGH); delay(500);
digitalWrite(13,LOW); delay(500);
}
}
if문의 for루프 마지막에 LED를 끄고(digitalWrite(13,LOW);) 루프를 종료하므로
else에서 LED를 끌 필요는 없습니다.
master님의 댓글
master 작성일
if(n>='1' && n<='9'){
for(int i=0;i<n;i++){
n이 '2'일 경우 문자 '2'는 16진으로 0x32이고 10진으로 50이므로
2회가 아닌 50회가 실행 됩니다.
if(n>='1' && n<='9'){
n&=0x0F; // 정수형의 문자를 정수로 변환 <-- 추가
for(int i=0;i<n;i++){
master님의 댓글
master 작성일
void setup(){
pinMode(13,OUTPUT);
}
//
void loop() {
n='2';
n&=0x0F; // 정수로 변환
for(int i=0;i<n;i++){
digitalWrite(13,HIGH); delay(500);
digitalWrite(13,LOW); delay(500);
}
}
LED 점멸 테스트는 간단한 코드로 하세요