亚博智能论坛  
  
查看: 229|回复: 0

如何检测按键按下次数

  [复制链接]

该用户从未签到

2

主题

4

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2017-10-19 16:26:18 | 显示全部楼层 |阅读模式
程序如下,但按键无反应
! s+ R: Y8 z  t$ j/ f: t3 _int key=12;  //按键接口
: O6 E% E6 K$ F- ?7 w; I4 x% lint led=13;  //led灯接口
1 W: {$ k- A# a" _8 u$ bint val;, y. d5 n+ I  |! i4 ^3 M
int num;
% H9 Z# ?) P# |2 Hvoid setup()  A0 U) ^, C5 L/ o% Q+ ^
{  x' H$ m7 |6 x
  // 初始化电机驱动IO为输出方式
3 l9 m+ t5 Y  ?' y  pinMode(key,INPUT);
' q% X/ C( l$ s/ |  pinMode(led,OUTPUT);: c7 t6 e+ P. Y) C
  digitalWrite(key,HIGH);) D, |% B4 |$ ^/ _0 }2 x, U
  num=0;8 x5 d/ s4 _) r& n
}7 D. q) K# z9 s: F, |0 m' d
8 C: |5 n( j5 z* }' U/ I, [
void loop(): ~2 G7 q2 }4 r! C4 X2 y- k% }
{1 p; {* L4 r+ f, u7 P
  val=digitalRead(key);7 A1 w! c7 x8 l4 ~# @
  while(1)" C# u, I& x% d/ v6 @  N) |
  {
5 C# E% K4 h1 M2 P% i    if(val==LOW)
- p+ C" O2 k. [, \9 m6 Z3 s: A" y    {3 X' A; D8 ]* r' P, ^2 ~
      delay(10);1 u& Z* E& c; i6 T
      if(val==LOW)' R' p2 x$ m4 A7 F! M- I6 S
      {
# q( |7 _2 `) m6 W$ n3 B+ b- o        while(val==LOW);
+ `3 Q2 H9 a, j        num++;
: S0 Z" a" ]2 {6 n, j/ X9 Q        if(num>1)
# f" Z* v" A8 p/ j5 {4 N* C5 m        {1 L# g1 S- Y  {9 ~
          num=0;: l/ g, d1 ?# f$ o  ^
        }
" i$ z# L) x* u5 q( Y* m; S/ v/ v. |      }- @5 h: o4 h/ Z9 A! l
    }
5 L, {. t- Y  K: s. j    if(num==0)
  u, W7 U, G3 K! Y$ Y5 |& _# F    {
4 }# i4 P. E1 z* j! ^      digitalWrite(led,LOW);5 q! a/ ^7 Z$ q( h+ \+ d4 y, c! }% |
    }
6 o8 I* u# i4 e! b9 b& `. g+ l3 Z2 i    if(num==1)! z! U" O' \8 z$ l
    {
. ~6 p" k' F7 S5 [) u      digitalWrite(led,HIGH);
# C2 u' m. g0 G3 x    }# m8 ?8 j4 {, v- Z
  }  * o: s. B0 r: _8 P1 @0 \* p
}4 x2 `' z! {+ y  L

9 W4 ~( q! G7 U! x5 Q4 Q, d- M/*
8 k6 E1 s; f* n: ~- O* }# {void loop() + x& F% Z/ X( w* n+ C
{0 @2 h" J+ L( B4 t* B
  val=digitalRead(key);, `/ F7 ~; u# {3 o: H) k  Z% M4 T
  if(val==HIGH)$ U; C& u7 U. N" l4 |6 l" r
  {2 G  V( J" J0 A% I. C
    digitalWrite(led,LOW);
; Z" |' Q% d1 I  V6 E0 ]; B  }0 J- g) y0 [) i+ c  i; E& f! E
  else- r' {! l4 I6 K3 O: Y
  {  _$ d8 r" Z+ T+ \* ^5 I
    digitalWrite(led,HIGH);
5 ?/ n6 n7 d- n1 T  }/ H# v2 o1 T  M# j3 X) {- ~8 B
}9 j3 u% ^) K5 z% D4 T
*/2 Z  t3 [  L9 J' T, q
, b; \8 M9 X) F
回复

使用道具 举报

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

本版积分规则

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