【arduino自制扩展】2块钱自制完美无抖动电阻矩阵键盘,无需扩展IC,支持3点触控~
前几天10块钱弄来了100来个微型开关,闲来没事就想弄个矩阵键盘玩玩,由于图便宜,就直接搞了个电阻键盘,没想到精度确相当高,即使延迟1毫秒也毫无抖动,说明电阻键盘也是很好用的,通过软件可以实现微延迟“3点触控”,还是相当划算的~
成本一共也就2块钱左右,却完全可以媲美或者超过淘宝上30多的矩阵键盘,自己动手才是王道~
电路图:
2012-1-17 13:48 上传
(18.43 KB)
arduino主控器:
2012-1-17 13:48 上传
(50.74 KB)
键盘:
2012-1-17 13:48 上传
(51.75 KB)
背面自制EPP封胶:
2012-1-17 13:48 上传
(35.34 KB)
演示视频:
演示代码:
#define NOTE_D0 -1
#define NOTE_D1 294
#define NOTE_D2 330
#define NOTE_D3 350
#define NOTE_D4 393
#define NOTE_D5 441
#define NOTE_D6 495
#define NOTE_D7 556
#define NOTE_DL1 147
#define NOTE_DL2 165
#define NOTE_DL3 175
#define NOTE_DL4 196
#define NOTE_DL5 221
#define NOTE_DL6 248
#define NOTE_DL7 278
#define NOTE_DH1 589
#define NOTE_DH2 661
#define NOTE_DH3 700
#define NOTE_DH4 786
#define NOTE_DH5 882
#define NOTE_DH6 990
#define NOTE_DH7 112
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.25
#define SIXTEENTH 0.625
int tonePin=8;//蜂鸣器的pin
void setup()
{
pinMode(tonePin,OUTPUT);//设置蜂鸣器的pin为输出模式
}
void loop()
{
int v;
float te;
v=analogRead(2);
te=v/4.5 ;
v=(int)te;
int va;
float tem;
va=analogRead(1);
tem=va/4.5 ;
va=(int)tem;
int val;
float temp;
val=analogRead(0);
temp=val/4.5 ;
val=(int)temp;
if(va==151)
{
tone(tonePin,NOTE_D5);
}
if(val==151)
{
tone(tonePin,NOTE_D6);
}
if(v==113)
{
tone(tonePin,NOTE_D1);
}
if(va==113)
{
tone(tonePin,NOTE_D2);
}
if(val==113)
{
tone(tonePin,NOTE_D3);
}
if(v==151)
{
tone(tonePin,NOTE_D4);
}
delay(100);
noTone(tonePin);
}
via - 极客工坊