37种传感器(二十三)按键开关模块+Stduino Nano&UNO1 F' e6 A# u+ ^: L1 m# v2 Z4 a
( a4 q" B, I2 Y' P% _2 A
; Q# C* x1 N+ ~; [. W3 _/ q
关键词: 51;stm32;arduino;stduino单片机;stduino UNO&Nano;按键开关模块 & E7 L; j! W$ I3 J- E* n: N
说明:. y+ X1 ?) w( g( e+ g
按键开关可以依据模块是否按下来输出高低电平信号。当按键被按下时,输出高电平,反之亦然。 9 h* W/ v) d7 Q8 M7 w$ a5 i
实验目的:利用按键开关控制板载LED。
1 I" H# U' k- U2 }5 L3 Z器材:Stduino UNO/Nano;杜邦线;倾斜开关 ; W O8 U) h" p! \; x6 ^
电路连接:
& a# z1 O8 a$ ?代码展示:8 P4 H4 i: ?7 K8 `
按键按下,灯亮;按键松开灯灭。 - const int BUTTON = 8;
4 ~9 p9 n$ r5 F+ r5 i9 B - const int LED = 13;8 G ]0 @$ `' N5 P3 a9 |
- int value;
) y, X1 t7 @ K8 }" X8 y - void setup()
/ v' u# E2 T' _3 u, E - {* b/ U9 R2 |# e
- // put your setup code here, to run once:* {% e8 t1 {! z/ J. A0 U. Y
- pinMode(BUTTON, INPUT);8 q6 q0 F7 B- X- d8 [
- pinMode(LED, OUTPUT);% s5 R+ `2 j# M' ^
- $ c0 M- `( B6 _7 ?# s" h
- }: Q) v: x6 z+ l& Y0 l7 i
- void loop()
/ [2 d7 ]2 N" c, Q. X& |' [: C - {
M/ i: U! }' ~1 K0 B9 N* J/ F - // put your main code here, to run repeatedly:
# ~5 [# ]: }! y7 w& h( ^+ n - value = digitalRead(BUTTON); // 读取按键开关
^' e V) y( N! W% t - 5 }& c" U& E" Y3 F" ]
- if(value){
5 [) r( p+ _4 a/ J' Q8 y - digitalWrite(LED, HIGH);// 按键按下,输出高电平/ x3 L7 M# |9 S' _& D7 t
- }else{
. {' ?9 {! k; D" G; C3 M) T4 R - digitalWrite(LED, LOW);// 按键送开,输出低电平7 \" k, j# q3 w- H- s" {
- }
0 n5 K* U3 W3 f5 H9 o9 ]2 _ f - delay(100);
4 J- ]3 E: I. z# d* ^' y - }
复制代码
8 f7 C5 `. y9 W按键按下一次,灯亮;按下第二次,灯灭。 - const int BUTTON = 8;
! O7 r/ T' X$ y g, h9 o - const int LED = 13;, Z1 p! ]7 A y) l3 g6 h- u, Q: L- J' j
- int value = 0;//记录按键当下按下状态,0为送开,1为按下
3 L/ v: M" A! G$ b5 `( ^ - int lastValue = 0;//记录上一次按键状态
7 n2 q4 N+ O. [. \4 r$ i - int keyValue = 0;//记录当前LED状态) {+ ^, Y8 H9 p! W. }& B f; C
- void setup()
2 F2 T+ D# y: X5 ] - {; R9 F: Z( [' i
- // put your setup code here, to run once:2 {& Y; g" c. P& `+ ~
- pinMode(BUTTON, INPUT);6 J. J. u; ?) W% N' [# R* `
- pinMode(LED, OUTPUT);
- A( o6 s5 i7 V, L% J
+ w5 ]- l7 K% o! ]- }
4 o& H" L9 A# m, B1 ^& D" Z - void loop()
( x1 P0 D7 Z2 l2 H) A3 s - {; t, _ f- n8 g: w D1 z1 t
- // put your main code here, to run repeatedly:
; a$ w4 T! U( F, Y+ G- c3 a. [5 p7 H - value = digitalRead(BUTTON); // 读取按键开关
0 |, L' A& M4 E5 {9 W - if(value !=lastValue){
1 ~0 \6 }4 l8 ]: Y6 \3 x, a8 K - keyValue =! keyValue;- V0 i6 v$ h2 X8 C2 i
- }" v: k' [( ^& P
- lastValue = value;
/ w9 v" S+ L# {( F* Q( p8 u
6 y4 G' q( u" U- \, z- if(keyValue){
& {' p# k1 a8 x5 {) e7 I0 l! T - digitalWrite(LED, HIGH);// 按键按下,输出高电平
" [, q7 k: x6 O, e - }else{, d6 r4 I! w3 L
- digitalWrite(LED, LOW);// 按键送开,输出低电平
5 Q& u; i; f( t3 r! \ - }( ^2 L" q; L' Z0 d; }. @$ X
- delay(100);
' n+ U& A. X' i. F: A: k3 y' q# \ - }
复制代码
- M+ L5 w. }( g
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
" R" ^. [& V; ~' x' H, r, N+ NIDE当前支持的功能有: - GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证)
! y) i5 Q4 q9 V6 j
* K, a0 e' F, ]
" o0 Q# J: C& X/ [6 Z4 x8 Z
更多功能细节请前往www.stduino.com进行了解 已经支持的芯片&板型列表: - Stduino UNO&Nano
- Nucleo 144 boards
- Nucleo 64 boards
- Nucleo 32 boards
- Discovery boards
- Eval boards
- STM32MP1 series coprocessor boards
- Generic STM32F0 boards
- Generic STM32F1 boards
- Generic STM32F3 boards
- Generic STM32F4 boards
- Generic STM32H7 boards
- Generic STM32L0 boards
- 3D printer boards
- LoRa boards
- Electronic Speed Controller boards
- Generic flight controllers
- Garatronics boards
- Midatronics boards
6 w* r8 g# b2 {& @" |
3 |" \' Q3 \! a# d( V# C9 a8 O. j/ ^/ B& u( `0 @/ M6 D
更多功能集成正在进行中~ 9 \ t, Q& j7 C, J8 J
|