极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12260|回复: 5

新手求救 抢答器实验疑问

[复制链接]
发表于 2013-8-6 15:52:16 | 显示全部楼层 |阅读模式
[media=x,500,375][/media]
  1. int R=8;
  2. int G=7;
  3. int i;
  4. int j=0;
  5. void buzzer()
  6. {
  7. for(i=0;i<80;i++)
  8. {
  9.   digitalWrite(5,HIGH);
  10.   delay(20);
  11.   digitalWrite(5,LOW);
  12.   delay(20);
  13. }
  14. }
  15. void key_scan()
  16. {
  17.   int key_1,key_2,key_3;
  18.   key_1=analogRead(1);
  19.   key_2=analogRead(2);
  20.   key_3=analogRead(3);
  21.   if(key_1<1000&&key_2<1000&&key_3<1000)
  22.      { return;}
  23.   if(key_1>1000)
  24.     {
  25.      delay(10);
  26.      if(key_1>1000)
  27.       {
  28.        buzzer();
  29.        digitalWrite(R,HIGH);
  30.        digitalWrite(G,LOW);
  31.       
  32.       }
  33.       else
  34.       {
  35.        return;
  36.       }
  37.     }
  38.     if(key_2>1000)
  39.     {
  40.      delay(10);
  41.      if(key_2>1000)
  42.     {
  43.      buzzer();
  44.      digitalWrite(R,LOW);
  45.      digitalWrite(G,HIGH);
  46.     }
  47.     else
  48.     {
  49.      return;
  50.     }
  51.     if(key_3>818)
  52.     {
  53.      delay(10);
  54.     if(key_3>1000)
  55.       {
  56.        buzzer();
  57.        digitalWrite(R,LOW);
  58.        digitalWrite(G,LOW); }
  59.      else{
  60.       return;
  61.      }
  62.     }
  63.     }
  64. }
  65. void setup()
  66. {
  67. for(i=5;i<=8;i++)
  68.    {
  69.     pinMode(i,OUTPUT);
  70.    }
  71. }
  72. void loop()
  73. {
  74. while(1)
  75. {
  76. key_scan();
  77. }
  78. }
复制代码




程序中R是红的,G是绿灯。delay是用来延时,躲避抖动干扰的。按第三个键的时候,就是最后按那个,理应是两个灯都熄灭的,但是却红灯亮啦!接线我检查过,没问题。
回复

使用道具 举报

 楼主| 发表于 2013-8-6 15:52:59 | 显示全部楼层
求问那是为什么????第三个键啊~!!!!!!
回复 支持 反对

使用道具 举报

发表于 2013-8-6 16:28:36 | 显示全部楼层
按键IO口要使用输入模式,使用digitalRead读IO。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 16:42:59 | 显示全部楼层
本帖最后由 kenneth22 于 2013-8-6 16:44 编辑
pathletboy 发表于 2013-8-6 16:28
按键IO口要使用输入模式,使用digitalRead读IO。


按键那我插去模拟口,所以用模拟口读没问题
回复 支持 反对

使用道具 举报

发表于 2013-8-6 16:47:46 | 显示全部楼层
你把key1 key2的点灯都去了,开始运行时候都点亮,再按key3,看看情况。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 17:51:03 | 显示全部楼层
pathletboy 发表于 2013-8-6 16:47
你把key1 key2的点灯都去了,开始运行时候都点亮,再按key3,看看情况。

按key3之后,两个灯还亮................................................................
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 00:24 , Processed in 0.035430 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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