답변 : (입력)키패드, (표시)LCD →4자리 숫자 표현 가능 소스
페이지 정보
작성자 master 작성일18-06-15 22:48 조회8,579회 댓글1건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-06-15 오후 10:51:09
// by Ok-Hyun Park
//
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#include <Keypad.h>
const byte ROWS=4;
const byte COLS=3;
int state=1;
char keys[ROWS][COLS]={
{ '1','2','3'},
{ '4','5','6'},
{ '7','8','9'},
{ '*','0','#'}
};
byte rowPins[ROWS]={5,4,3,2};
byte colPins[COLS]={8,7,6};
Keypad keypad=Keypad(makeKeymap(keys),rowPins,colPins,ROWS,COLS);
//
char k[]=" "; // 문자열의 끝인 널문자까지 5바이트
//
void setup(){
lcd.init(); lcd.backlight();
pinMode(9,OUTPUT); pinMode(10,OUTPUT);
}
//
void loop(){
char key=keypad.getKey();
if((key>='0')&&(key<='9')){ // 숫자
for(int i=0;i<3;i++)k[i]=k[i+1]; k[3]=key; // 쉬프트
lcd.setCursor(0,1); lcd.print(k); digitalWrite(9,HIGH); digitalWrite(10,key&1);
}
if(key=='*'){ for(int i=0;i<4;i++)k[i]=' '; lcd.setCursor(0,1); lcd.print(k); digitalWrite(9,LOW); digitalWrite(10,LOW ); }
if(key=='#'){ for(int i=0;i<4;i++)k[i]='?'; lcd.setCursor(0,1); lcd.print(k); digitalWrite(9,LOW); digitalWrite(10,HIGH); }
}
정확히 뭘 원하는지 모르겠습니다.
기본적인 c언어 예제를 공부하시면 원하는 것을 만드실 수 있을 것 같습니다.
댓글 : 1
조회수 : 8,579
하늘소사랑님의 댓글
하늘소사랑 작성일
답변 감사합니다.
말씀하신대로 도서관에서
'C언어.예제' 책 빌렸습니다.