Difference between revisions of "BakeBit - Button/zh"
From FriendlyELEC WiKi
(→硬件连接) |
(→运行结果) |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 25: | Line 25: | ||
|SIG || 信号 | |SIG || 信号 | ||
|} | |} | ||
− | == | + | == 示例程序:Button And Buzzer == |
− | + | ||
− | + | ||
− | + | 本示例需要配合蜂鸣器使用。 | |
− | + | === 硬件连接 === | |
+ | 简单的将 蜂鸣器 模块插入 D3接口,将 按键 插入 D4 接口,如下面这样: | ||
− | == | + | ::{| class="wikitable" |
− | + | |- | |
+ | |[[File:Button And Buzzer-1.jpg |frameless|300px]] || [[File:Button And Buzzer-2.jpg |frameless|300px]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === 示例源代码 === | ||
+ | |||
+ | <syntaxhighlight lang="python"> | ||
+ | import time | ||
+ | from bakebit import * | ||
+ | import math | ||
+ | |||
+ | buzzer_pin = 3 #Port for buzzer | ||
+ | button = 4 #Port for Button | ||
+ | old_button_status = -1 | ||
+ | pinMode(buzzer_pin,"OUTPUT") # Assign mode for buzzer as output | ||
+ | pinMode(button,"INPUT") # Assign mode for Button as input | ||
+ | |||
+ | buzzer_on = False | ||
+ | old_buzzer_on = not buzzer_on | ||
+ | button_pressed = False | ||
+ | |||
+ | while True: | ||
+ | try: | ||
+ | while True: | ||
+ | button_status = digitalRead(button) #Read the Button status | ||
+ | # print button_status | ||
+ | if old_button_status < 0: | ||
+ | break | ||
+ | |||
+ | if button_status != old_button_status: | ||
+ | break | ||
+ | |||
+ | time.sleep(0.2) | ||
+ | old_button_status = button_status | ||
+ | |||
+ | if button_status == 0: | ||
+ | button_pressed = True | ||
+ | else: | ||
+ | if button_pressed: | ||
+ | buzzer_on = not buzzer_on | ||
+ | button_pressed = False | ||
+ | |||
+ | if old_buzzer_on != buzzer_on: | ||
+ | old_buzzer_on = buzzer_on | ||
+ | if buzzer_on: | ||
+ | analogWrite(buzzer_pin,127) | ||
+ | print "Buzzing" | ||
+ | else: | ||
+ | analogWrite(buzzer_pin,0) | ||
+ | print "\tOff" | ||
+ | |||
+ | time.sleep(0.2) | ||
+ | except KeyboardInterrupt: # Stop the buzzer before stopping | ||
+ | digitalWrite(buzzer_pin,0) | ||
+ | break | ||
+ | except (IOError,TypeError) as e: | ||
+ | print("Error") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | [https://github.com/friendlyarm/BakeBit/blob/master/Software/Python/bakebit_prj_Button_And_Buzzer.py Github] | ||
+ | |||
+ | === 运行示例 === | ||
+ | |||
+ | 假设你已经参考[http://wiki.friendlyarm.com/bakebit bakebit教程]安装了BakeBit源代码,<br /> | ||
+ | 要运行示例程序,可以在开发板上进入 BakeBit/Software/Python目录,运行bakebit_prj_Button_And_Buzzer.py: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd ~/BakeBit/Software/Python | ||
+ | sudo python bakebit_prj_Button_And_Buzzer.py | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 运行结果 === | ||
+ | |||
+ | 当点击按键时,蜂鸣器会响起,再次点击按键,蜂鸣器停止。 | ||
==相关资料== | ==相关资料== | ||
*[Schematic]([http://wiki.friendlyarm.com/wiki/images/8/8a/05-SCHEMATIC_Button.pdf BakeBit - Button.pdf]) | *[Schematic]([http://wiki.friendlyarm.com/wiki/images/8/8a/05-SCHEMATIC_Button.pdf BakeBit - Button.pdf]) | ||
+ | *[BakeBit Github项目](https://github.com/friendlyarm/BakeBit) | ||
+ | *[BakeBit Starter Kit手册](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_cn.pdf) |
Latest revision as of 07:46, 17 April 2017
1 介绍
- BakeBit - Button是一个瞬时(非自锁)按钮开关模块,用于检测按键事件,按钮被释放后自动恢复到常态。
- 在按钮未被按下时模块输出高电平,按钮被按下后输出低电平。
2 特性
- 使用标准的2.0mm 4 Pin BakeBit接口
- 数字信号输出
- PCB尺寸(mm):20x24
- 引脚说明:
名称 | 描述 |
GND | 地 |
5V | 电源5V |
NC | 空 |
SIG | 信号 |
3 示例程序:Button And Buzzer
本示例需要配合蜂鸣器使用。
3.1 硬件连接
简单的将 蜂鸣器 模块插入 D3接口,将 按键 插入 D4 接口,如下面这样:
3.2 示例源代码
import time from bakebit import * import math buzzer_pin = 3 #Port for buzzer button = 4 #Port for Button old_button_status = -1 pinMode(buzzer_pin,"OUTPUT") # Assign mode for buzzer as output pinMode(button,"INPUT") # Assign mode for Button as input buzzer_on = False old_buzzer_on = not buzzer_on button_pressed = False while True: try: while True: button_status = digitalRead(button) #Read the Button status # print button_status if old_button_status < 0: break if button_status != old_button_status: break time.sleep(0.2) old_button_status = button_status if button_status == 0: button_pressed = True else: if button_pressed: buzzer_on = not buzzer_on button_pressed = False if old_buzzer_on != buzzer_on: old_buzzer_on = buzzer_on if buzzer_on: analogWrite(buzzer_pin,127) print "Buzzing" else: analogWrite(buzzer_pin,0) print "\tOff" time.sleep(0.2) except KeyboardInterrupt: # Stop the buzzer before stopping digitalWrite(buzzer_pin,0) break except (IOError,TypeError) as e: print("Error")
3.3 运行示例
假设你已经参考bakebit教程安装了BakeBit源代码,
要运行示例程序,可以在开发板上进入 BakeBit/Software/Python目录,运行bakebit_prj_Button_And_Buzzer.py:
cd ~/BakeBit/Software/Python sudo python bakebit_prj_Button_And_Buzzer.py
3.4 运行结果
当点击按键时,蜂鸣器会响起,再次点击按键,蜂鸣器停止。
4 相关资料
- [Schematic](BakeBit - Button.pdf)
- [BakeBit Github项目](https://github.com/friendlyarm/BakeBit)
- [BakeBit Starter Kit手册](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_cn.pdf)