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

如何检测按键按下次数

  [复制链接]

该用户从未签到

2

主题

4

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2017-10-19 16:26:18 | 显示全部楼层 |阅读模式
程序如下,但按键无反应1 I! v+ \0 `: S0 w- @3 {
int key=12;  //按键接口0 W, D" n- j5 ^$ _) W+ U
int led=13;  //led灯接口- c  I, a" d3 P6 F& A2 x
int val;" ^/ c+ Z9 F- g& G
int num;
6 r3 O" u+ R4 G/ vvoid setup()
7 q  {  F4 `/ A; i) k. ^& z{0 N& Y! Y$ v% k1 s0 m
  // 初始化电机驱动IO为输出方式
; R' Z, T: i' d5 {1 l! u  pinMode(key,INPUT);
+ A& x: I3 L3 o0 h0 z! D. W( c0 a: Z  pinMode(led,OUTPUT);# T1 u) Y" B+ c. k" R
  digitalWrite(key,HIGH);( o+ t3 B* j. e- F
  num=0;% f. W) U; y# s( P
}
! x$ u: @( ?; B4 D8 Y$ _
* a* ~. T* }- W  hvoid loop(); t# c7 x% Q" v( O
{- t/ ^& j0 z2 k+ W! j( H; g
  val=digitalRead(key);
% ?! D  f: C1 U: W" c* a  while(1)
- v" d/ m" U6 j! T& G; N2 H  @  {" O% d1 N3 E$ u
    if(val==LOW)
: n- F  t7 Y0 L$ v. w  ~2 Y& }    {/ q/ Z6 h# n9 {" O0 ]# w/ N
      delay(10);
! ]- a8 T2 Y) u6 [$ M      if(val==LOW)+ O  \$ o3 L, L1 p. h' L6 H: v
      {
7 ?' w( p( K+ I/ F6 S        while(val==LOW);
1 t- |* E- ]; J1 @1 f" @        num++;4 P% E0 L& b, O% i* z7 y: o
        if(num>1)
8 @# }8 J! a  y3 i& m        {
# D0 i5 ^! n& _8 o          num=0;
" L% H+ j, C4 ]# G. K% y        }7 P- q+ y4 g4 ]  v2 l* g: x
      }
3 _4 E# O8 D4 `6 d    }, m" u5 W/ Y6 G0 a& w8 y
    if(num==0)- Z9 Y" ~/ P. i3 _
    {
. J0 r+ c7 |' u5 B7 n+ d2 C. V      digitalWrite(led,LOW);' u4 y, c) u8 F6 V+ R$ h
    }
. Z5 V1 m, X  W. x! `    if(num==1)- R7 G/ M6 ]) a) e
    {9 ^$ A2 U; b# X+ p3 H3 r
      digitalWrite(led,HIGH);2 b9 h: K. K+ v) a. m: L: F
    }
! B5 i: a/ N% U, a- ?  }  
9 o9 [! @/ D7 ~$ E& ?1 Q' L  @' [}; ^, z! [. Q5 o

9 h6 n1 E: w1 s. B/ s4 ^' J/*
. t& N5 k8 V" Q& S" \  A  Qvoid loop() & P: M$ r& H* E# ^9 m% z
{
8 T3 Y7 d& c& b0 L5 t0 Z; @% T  val=digitalRead(key);
% [; R- v7 X7 C* l3 B  if(val==HIGH)* q2 T: u2 q, w9 `8 h! t1 u4 Z. N: x
  {/ a5 V* T) J% u, p5 X2 s, F$ w! e
    digitalWrite(led,LOW);
6 O: F$ i# N; ]- ]7 ]  I  }
2 I( a' Y( z' ]" j5 G/ h  else9 l) |" e4 b5 L" K* ^& g8 [3 K$ L# X& ^9 h5 i
  {; G3 b; B* P9 a: r6 d
    digitalWrite(led,HIGH);6 O4 X5 ?6 t3 u- l
  }
0 q( P: t/ d, e}
) \  ~  j( H& a$ n% u) R0 y*/
) l4 O7 P0 [( W
  u9 U; H5 T% ^9 `1 X) Y; l' U
回复

使用道具 举报

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

本版积分规则

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