Leonardo触摸按键-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2323|回复: 3

[未解决] Leonardo触摸按键

[复制链接]
发表于 2021-3-1 14:30 | 显示全部楼层 |阅读模式
本帖最后由 Watashi 于 2021-3-1 14:38 编辑

想用Leonardo做Makey Makey水果钢琴,如图连接后加上代码运行,感觉问题是根本无法识别人这个电阻,如果我将地线越过人和水果直接连接的话就会有相应但是,如果两端是人连接没有任何反应,为什么?有没有大神会指点一下,第一次接触。感激不尽。
我用mouse_test程序发现用人接触电平几乎没有变化,要怎么改呢

[md]int InData1 = 0, InData2 = 0, InData3 = 0, InData4 = 0, InData5 = 0, InData0 = 0;  //触摸输入值暂存
int TouchSensitivity = 30; //触摸灵敏度。0~1023,越大越不灵敏
void setup()
{
  Serial.begin(9600);
}

void loop()
{

  //默认所有引脚为最高电平1023,通过触摸拉低引脚电平。
  //所以数值由1024-analogRead(A0);
  InData0 = 1024 - analogRead(A0);               
  InData1 = 1024 - analogRead(A1);
  InData2 = 1024 - analogRead(A2);
  InData3 = 1024 - analogRead(A3);
  InData4 = 1024 - analogRead(A4);
  InData5 = 1024 - analogRead(A5);
  //按照各种可能触发键盘事件
  if(InData0 >= TouchSensitivity)
  {
    Serial.write('a'); //发送字符,支持 ASCII 码
  }
  if(InData1 >= TouchSensitivity)
  {
    Serial.write('s');  
  }
  if(InData2 >= TouchSensitivity)
  {
    Serial.write('d');  
  }
  if(InData3 >= TouchSensitivity)
  {
    Serial.write('w');  
  }
  if(InData4 >= TouchSensitivity)
  {
    Serial.write(' ');  
  }
  if(InData5 >= TouchSensitivity)
  {
    Serial.write(13);  //Enter
  }
  delay(100);   //可根据实际情况增加或减少
}[/md]

大概电路图

大概电路图

实物图

实物图
发表于 2021-3-2 16:16 | 显示全部楼层
电路不对吧,虽然我不知道原电路,但是你这个图,没触摸前是上拉到5V,触摸后IO口依然是5V。换句话说,你的人、苹果跟IO口、1M电阻没有任何关系,就是分开的两个电路
 楼主| 发表于 2021-3-5 14:06 | 显示全部楼层
vincesketch 发表于 2021-3-2 16:16
电路不对吧,虽然我不知道原电路,但是你这个图,没触摸前是上拉到5V,触摸后IO口依然是5V。换句话说,你的 ...

可是如果不连水果跟人,直接拉出来接地,显示就是低电平然后有相应,我一开始的理解是人电阻太大了,我的电阻没选好,
发表于 2021-3-5 16:21 | 显示全部楼层
Watashi 发表于 2021-3-5 14:06
可是如果不连水果跟人,直接拉出来接地,显示就是低电平然后有相应,我一开始的理解是人电阻太大了,我的 ...

再检查检查电路?你看你的电路是:正极VCC——(苹果+人)——负极GND已经形成了完整的回路了呀,怎么会影响A0呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 11:31 , Processed in 0.140362 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表