37种传感器(二十三)按键开关模块+Stduino Nano&UNO& E; o: N0 b. d
. X1 e% @8 D: S4 M9 c, Q
' K L1 |2 x9 U$ v; G7 p关键词: 51;stm32;arduino;stduino单片机;stduino UNO&Nano;按键开关模块
+ W1 G% J, ~! o2 b 说明:
1 J ~2 h" J9 Y+ ~2 @4 b* l( D按键开关可以依据模块是否按下来输出高低电平信号。当按键被按下时,输出高电平,反之亦然。 ) T; M2 a0 J4 Z. y% k
实验目的:利用按键开关控制板载LED。 ; l7 F9 R0 p0 J+ t0 l- T0 t. s
器材:Stduino UNO/Nano;杜邦线;倾斜开关
" [. ]- |" L" _6 g8 y7 |# d 电路连接: * ^8 V7 K5 y# c" Y/ t
代码展示:
. R2 `1 h, ~8 b% S2 x按键按下,灯亮;按键松开灯灭。 - const int BUTTON = 8;1 e a8 J! J! Z- f, G
- const int LED = 13;% Z+ [. p6 A6 G8 g
- int value;5 h; S4 R9 Z( }% R6 c# P7 S/ r
- void setup() + {' r- D6 g8 n& F- p
- {
! v( G( z& u$ ~" ]) S% ?2 H - // put your setup code here, to run once:
' \8 T6 t2 d8 y: l. e - pinMode(BUTTON, INPUT);, ~& B7 u. k `5 \/ Y* s& P
- pinMode(LED, OUTPUT);- t; P5 ]: N( o; ]* [
- ) g; ~. T, r7 q' Y
- }0 W. }1 _* N% v
- void loop()% {( ^( i' z5 Z2 ]" y8 ^" Q. m
- {5 }* K j. U9 p
- // put your main code here, to run repeatedly:5 C i) ]1 n3 S5 c7 ?" e" L9 f
- value = digitalRead(BUTTON); // 读取按键开关
7 M" [7 H9 A4 n1 Y
" [* i6 H/ [: j' {+ f( u- if(value){. l R/ o* h1 J) e1 \" S* K8 x* \5 A
- digitalWrite(LED, HIGH);// 按键按下,输出高电平7 S, X( ?4 ?" o8 q
- }else{% V: }. j" B! }
- digitalWrite(LED, LOW);// 按键送开,输出低电平, z& |- D2 }2 Z3 ~2 C
- }1 ^6 ]% H7 V9 N, \
- delay(100);8 q5 a" J2 H7 o- j8 o
- }
复制代码 7 [) Z1 X- `/ v. X
按键按下一次,灯亮;按下第二次,灯灭。 - const int BUTTON = 8;
a g6 J; t" x+ O - const int LED = 13;- u7 ~% {0 G, ~- I
- int value = 0;//记录按键当下按下状态,0为送开,1为按下
, o/ E# X+ V2 J d - int lastValue = 0;//记录上一次按键状态" b: C5 m0 }) ^7 u2 n
- int keyValue = 0;//记录当前LED状态: m7 p C( {+ a
- void setup()
9 A+ q+ [- Z2 _* T* j - {
H& K! i# K3 V - // put your setup code here, to run once:
9 w! z8 J# k4 s - pinMode(BUTTON, INPUT);2 I% ?; F" B$ @
- pinMode(LED, OUTPUT);3 U7 C+ M0 ]3 @9 |
- : k; c2 c! d2 T, U9 P3 w
- }
1 t2 z0 v3 l! B g - void loop()
' H& N8 c1 d l - {( K# _. [0 A& {3 a# k/ p
- // put your main code here, to run repeatedly:
* i1 k: f# `) _ D3 B3 s - value = digitalRead(BUTTON); // 读取按键开关
6 I: c3 L% P" U N' [! J - if(value !=lastValue){- @! {( \6 `/ E, H4 Z+ N% `
- keyValue =! keyValue;
! M! @6 T5 t5 d2 J9 K - }
& S) |4 |) W, B- N9 l9 M" _ - lastValue = value;
- p: h0 r& i4 Q- ~- i/ g# |4 ^
& w6 |6 ?, n( \! { `, U! b- if(keyValue){
& e. Y& m4 o% w- e& [ - digitalWrite(LED, HIGH);// 按键按下,输出高电平
; {6 ~) p' A3 W% Y, G! K - }else{
% r5 J( n! M" G% ]+ Q! v - digitalWrite(LED, LOW);// 按键送开,输出低电平! _/ h; D; V" O- ]# {& H6 Y9 ~0 }
- }5 x$ |' ~" T a! p: a& t
- delay(100);
! p8 b# r( ?3 Z( P8 p) i A8 M. k - }
复制代码 5 T1 n, D1 v$ i4 c$ t; Y
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
' _3 T5 H% B! Q7 D: c" I MIDE当前支持的功能有: - GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证)( r8 g8 b3 W7 d7 o% q- R1 [3 |1 W
6 o2 S8 P/ f Q1 \3 \2 W, q
% d" r5 X8 K- M! I5 h, ~
更多功能细节请前往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
. \' V4 p8 ~. F) X3 K% h
; z0 t4 j3 k5 H( h$ s! R" z3 f C5 _4 f' ]. V7 O" R
更多功能集成正在进行中~
& W3 O: X: ]5 r |