BASIC4MCU | 질문게시판 | lcd에 문자출력
페이지 정보
작성자 왕왕초a 작성일2020-06-12 03:11 조회3,098회 댓글0건본문
키패드 버턴을 터치하여 lcd에 출력하려는데
문자 3을 입력하려는경우 최소5~15회정도 터치를해야 3이 입력이되는데요
(모든버턴이 마찬가지)
한번터치로 숫자가 바로 출력이 될수잇게 도와주셔요
#include <Wire.h>
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define relay 12
#include <SoftwareSerial.h>
SoftwareSerial sensor(2, 3);
unsigned char Send_data[4] = {2,3};
int cnt = 0;
float co2;
const byte ROWS = 4;
const byte COLS = 4;
char keys [ROWS] [COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'C', '0', '=', '/'}
};
byte rowPins[ROWS] = {11,10,9,8};
byte colPins[COLS] = {7,6,5,4};
Keypad myKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
boolean presentValue = false;
boolean next = false;
boolean final = false;
String num;
int tp;
int relayIN = 12;
void setup()
{
lcd.init();
lcd.backlight();
Serial.begin(9600);
sensor.begin(9600);
lcd.begin(16,2);
pinMode(12,OUTPUT);
}
char data[5] = {0,};
void loop(){
int co2 = 0;
while ( sensor.available()) {
delay(10);
co2 = sensor.parseInt();
sprintf(data, "%04d", co2);
sensor.read();
for ( int i = 0; i < 5; i++){
sensor.read();
sensor.read();
sensor.read();
lcd.setCursor(1,0);
lcd.print("co2:");
lcd.setCursor(5,0);
lcd.print( data);
lcd.setCursor(9,0);
lcd.print("ppm");
lcd.setCursor(0,1);
lcd.print( "setting:");
lcd.setCursor(9,1);
lcd.print(num);
lcd.setCursor(13,1);
lcd.print("ppm");
char key = myKeypad.getKey();
if (key != NO_KEY && (key=='1'||key=='2'||key=='3'||key=='4'||key=='5'||key=='6'||key=='7'||key=='8'||key=='9'||key=='0'))
{
if (presentValue != true)
{
num = num + key;
int numLength = num.length();
}
}
else if (key != NO_KEY && key == 'C'){
lcd.clear();
num = "";}
if((key>='0')&&(key<='9')){
tp%=1000; // 임시변수에서 천의자리 제거
tp*=10; // 일의자리 및 십의자리를 한자리 올림
tp+=key&0x0F; // key를 일의자리에 넣음
}
else if(key=='*'){ // 엔터키
co2=tp; // 습도 변수에 저장
tp=0; // 임시변수 초기화
}
if(co2>tp)
{
digitalWrite(relayIN, HIGH);
cnt = 1;
}
if(cnt != 0){
cnt--;
}else{
digitalWrite(relayIN, LOW);
delay(1);
}
}
}
}
//감사합니다
댓글 0
조회수 3,098등록된 댓글이 없습니다.