中创联盟-奥松机器人创客空间-Arduino中文社区

标题: micro:bit MicroPython_Button [打印本页]

作者: 奥松-Neil    时间: 2017-12-22 13:55
标题: micro:bit MicroPython_Button
在之前的教程中,已经讲解了关于输出的一些操作,这里说明一下输入部分,在 micro:bit 控制器板载的输入是 A B 两个按键,我们可以通过编程来读取按键是否按下,同时作出反应。
1、按键操作 - button_a.get_presses()
记录一段时间内按下按键的次数,并且通过 micro bit 点阵显示出来
  1. from microbit import *

  2. sleep(1000)
  3. display.scroll(str(button_a.get_presses()))  #显示按键A按下的次数
复制代码
程序上传后,microbit 等待 1 秒,然后打印出这 1 秒内,按下按键 A 的次数

2、按键操作 - button_a.is_pressed()
判断某个按键是否被按下,常用于某个动作的触发
  1. from microbit import *

  2. while True:
  3.     if button_a.is_pressed():
  4.         display.show(Image.HAPPY)
  5.     elif button_b.is_pressed():
  6.         break
  7.     else:
  8.         display.show(Image.SAD)

  9. display.clear()
复制代码
实验效果:
当按键 A 没有被按下时,点阵显示“Image.SAD”
当按键 A 被按下时,点阵显示“Image.HAPPY
当按键 B 被按下时,退出程序
1.gif

3、使用按键控制外部 LED(1)LED 发光二极管 * 1个
(2)470欧电阻 * 1个
(3)micro bit 扩展板 * 1个
(4)micro USB 连接线 * 1个
(5)micro bit 控制器 * 1个
(6)跳线 * 若干
接线说明:
LED 正极(长脚)连接 P0
LED 负极(短脚)连接 电阻一端,电阻另一端连接 GND

01.png

micro Python 程序1:
  1. from microbit import *
  2. brightness = 0
  3. pin0.write_digital(0)

  4. while True:
  5.     if button_a.is_pressed():
  6.         pin0.write_digital(1)
  7.         sleep(1000)
  8.     else:
  9.         pin0.write_digital(0)
复制代码

效果:
02.gif


micro Python 程序2:
  1. from microbit import *
  2. brightness = 0

  3. while True:
  4.     if button_a.is_pressed():
  5.         pin0.write_digital(1)
  6.         sleep(1000)
  7.         
  8.     elif button_b.is_pressed():
  9.         for i in range(50):
  10.             brightness = brightness + 20
  11.             pin0.write_analog(brightness)
  12.             sleep(200)
  13.         pin0.write_analog(0)
  14.         brightness = 0
  15.     else:
  16.         pin0.write_digital(0)
复制代码


效果:
当按下按键 A 时,LED 亮起 1 秒后熄灭
当按下按键 B 时,LED 逐渐亮起后熄灭
03.gif





欢迎光临 中创联盟-奥松机器人创客空间-Arduino中文社区 (http://bbs.alsrobot.cn/) Powered by Discuz! X3.2