BASIC4MCU | 질문게시판 | 아두이노 스위치제어
페이지 정보
작성자 erree 작성일2021-04-04 15:15 조회20,606회 댓글3건본문
아두이노 스위치를 이용하여 lcd에 출력문을 제어하려고합니다.
Digtal Pusle가 5초동안 깜빡인 후에 Mode Button 까지는 변경이 되고, Mode Button 까지는 유지가 됩니다.
그러나 스위치를 올리거나 내리면 아무 작동도 안하는 상태입니다.
혹시 while(1); 이 문장때문에 그 다음 조건으로 넘어가지 않는것 일까요??
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
lcd.init();
lcd.backlight();
pinMode(2,INPUT_PULLUP);
}
void loop() {
for(int i=0 ;i<5; i++){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Digital Pulse");
lcd.setCursor(0,1);
lcd.print("Number: A001");
delay(500);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Mode Button");
lcd.setCursor(0,1);
lcd.print(" Push Mode SW1!");
{
while(1);
}
if(digitalRead(2)){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("1.Pulse Mode");
lcd.setCursor(0,1);
lcd.print(" Push Select!");
delay(1000);
}
else{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("2.Sensor Mode");
lcd.setCursor(0,1);
lcd.print(" Push Select!");
delay(1000);
}
}
댓글 3
조회수 20,606master님의 댓글
master 작성일
while(1);
이 무한루프에 걸리면 전원을 껏다 다시 켜기 전까지 먹통 됩니다.
(해당위치에서 멈춤)
erree님의 댓글
erree
그러면 어떤값을 주어야지 먹통되지않고 그 자리에서 유지가되고 그 다음조건으로 넘어갈까요?
master님의 댓글
master
뭘 하려는지 정확히 알지 못하므로 조언을 드릴 수가 없습니다.
while(1); 이 문장 대신에
while(digitalRead(2)==0); 이렇게 변경하면 스위치를 누를 때까지 대기하는 문장이 됩니다.