키가 5개인 미니 키보드를 제작하려고 합니다.
기본적인 틀은 다 짜놓은 상태인데...
원래키보드라면 a를 한번 누르면 하나만 입력되고,
a키를 꾹 누른다면 a(잠깐 쉬고) a 연속입력
이런식으로 되는데 저는 a키를 한번 누르면 채터링 현상때문에 aaa이런식으로 연타로 눌립니다...ㅠ
키보드랑 똑같은 원리의 딜레이를 주고싶은데,
버튼 코드 짜는것도 엄청 버거운 일이었어서 딜레이를 추가하는게 여간 어려운일이 아니네요...
그래서 오유여러분에게 도움 받고자 글을 올리게 되었습니다ㅠ_ㅠ
제 스케치 중 삭제해도 되겠다 싶은 부분은 말씀 부탁드립니다.
자세히 아시는 회원님께서는 스케지의 어디부분에 추가를 해야하는지 설명 부탁드릴게요 ㅠ...
(완전초급이라 간단히 말해주시면 적용하는데 어려워서요 ㅠㅠㅠㅠ)
질문 요약 : 키보드랑 똑같은 동작을 하는 아두이노를 만들고 싶은데
버튼을 눌렀을때 채터링 현상때문에 여러번 입력됨.
키보드랑 똑같은 원리로 딜레이를 주고싶음.
◎ 사용된 부품 : 아두이노 레오나르도, 2핀 스위치,마이크로 스위치, 저항 등
※ pinMode9는 LED라 신경쓰지 않으셔도 됩니다!
완전 쌩초보다보니 저기서 어느부분을 적용시켜야하는지 모르겠습니다 ㅜ__ㅜ
▼ 현재까지 작성된 코드
#include <Keyboard.h>
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
Keyboard.begin();
}
void loop()
{
if (digitalRead(2)==HIGH)
{
Keyboard.write('z');
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9,LOW);
}
if (digitalRead(3)==HIGH)
{
Keyboard.write('q');
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9,LOW);
}
if (digitalRead(4)==HIGH)
{
Keyboard.write('s');
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9,LOW);
}
if (digitalRead(5)==HIGH)
{
Keyboard.write('c');
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9,LOW);
}
if (digitalRead(6)==HIGH)
{
Keyboard.write('e');
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9,LOW);
}
}