BASIC4MCU | 질문게시판 | LCD 도와주세요 ㅜㅠㅠㅠ
페이지 정보
작성자 dentist22 작성일2022-06-17 22:39 조회4,810회 댓글2건본문
이전에 도움주셔서 감사합니다. 알려주신것과는 다르게 위와 같이 코딩을 해봤는데 loop 아래로 if(t%1000 == 0) 로 묶여있어서 버튼이 으로 숫자를 증감시킬때 설정한 50millis로 작동이 안되고 무조건 버튼을 누르고 1초뒤에 숫자가 증감됩니다.. 버튼을 누르고 바로 증감시키기 위해서는 함수를 이용해서 따로 빼야될 것 같은데 이럴때는 어떻게 할까요??
항상 좋은 피드백 감사합니다.
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x20, 16, 2);
void setup() {
pinMode(11, INPUT); pinMode(10, INPUT);
pinMode(9, INPUT); pinMode(8, INPUT);
lcd.init();
lcd.backlight();
}
unsigned int meridiem=0;
unsigned int seconds = 0;
unsigned int minutes = 0;
unsigned int hours = 0;
unsigned long past = 0;
int flag = 0;
int presentbutton;
int lastbutton=0;
int toggle=1;
int state=1;
int hourbt,hourslast, minuteslast, secondslast, minutesbt, secondsbt;
int toggle1=1;
void loop() {
{unsigned long t = millis();
if(t%1000 == 0) {
seconds++;
if (seconds==60)
minutes++;
if (seconds==60)
seconds=0;
if (seconds==-1)
seconds=59;
if (minutes==60)
hours++;
if (minutes==60)
minutes=0;
if (minutes==-1)
minutes=59;
if(hours==12)
meridiem++;
if (hours==12)
hours=0;
if(hours==-1)
hours=11;
if(meridiem%2==0) {
lcd.setCursor(0,0);
lcd.print("AM"+String(" "));
}
if(meridiem%2==1){
lcd.setCursor(0,0);
lcd.print("PM"+String(" "));
}
if(t-past>=50)
past=t;
flag=1;
if(flag==1){
presentbutton = digitalRead(8);
if(presentbutton != lastbutton){
if(presentbutton == LOW)toggle=toggle*-1;}
lastbutton = presentbutton;
hourbt=digitalRead(11); {
if (hourbt != hourslast)
{if(hourbt==LOW & toggle==1) hours++;
if(hourbt==LOW & toggle==-1) hours--;}
hourslast = hourbt;}
minutesbt=digitalRead(10); {
if (minutesbt != minuteslast)
{if(minutesbt==LOW & toggle==1) minutes++;
if(minutesbt==LOW & toggle==-1) minutes--;}
minuteslast = minutesbt;}
secondsbt=digitalRead(9); {
if (secondsbt != secondslast)
{if(secondsbt==LOW & toggle==1) seconds++;
if(secondsbt==LOW & toggle==-1) seconds--;}
secondslast = secondsbt;}
lcd.setCursor(2,1);
lcd.print(" "+String(hours)+"h "+String(minutes)+"m " +String(seconds) + "s "+(" "));
}}
}}
이전에 도움주셔서 감사합니다. 알려주신것과는 다르게 위와같이 코딩을 해봤는데 loop 아래로 if(t%1000 == 0) 로 묶여있어서 버튼이 으로 숫자를 증감시킬때 설정한 50millis로 설정안되고 무조건 1초동안 버튼을 눌러야 버튼이 증감됩니다.. 버튼을 누르고 바로 증감시키기 위해서는 함수를 이용해서 따로 빼야될 것 같은데 이럴땐 어떻게 할까요..
댓글 2
조회수 4,810master님의 댓글
master 작성일
알려드려도 이해를 하지 못하고 원래 코드를 수정하신 건가요?
알려드린 방법을 공부하셔서 질문하셔야지 소통이 되는 것 아닌가요?
알려드려도 사용하지 않으시면 알려드리는 것이 아무런 소용이 없다는...
dentist22님의 댓글
dentist22 작성일답변을 보기전에 해버렸네요..