TA的每日心情 | 衰 2019-11-19 15:32 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, o- v" [6 x6 ^; R' C# u( K
matlab与Arduino通讯,按键输入控制LED
' h$ |3 Y. z5 Y) `- 实验材料
- 实验步骤
- 实验现象
- 函数介绍
- 利用simulink读取按键状态,控制输出。
3 C/ p& u$ m, }7 |% }1 U 3 G" {% u" r) x
实验材料
0 ]6 b- }( z# H" [% _8 A/ J• Uno R3开发板$ @6 L" r3 k8 K' c- Z; ^" S
• 配套USB数据线
% d$ l" @! Y; }+ z9 H# O1 `9 T# Z: V• 1个轻触按键
) K0 S! R9 D) U9 b+ u• 用开发板自带的LED(引脚13)
4 q" s+ S! P% d3 h ~: u0 V; p$ _& j$ N( h
% R/ Y' l S+ j( _2 Z& n
2 Y/ ^6 w# Q/ J% {6 o$ ] b实验步骤( [" C5 |) D% ^8 K) d) p
① 根据原理图搭建电路,实验原理图如下图所示:
* [+ r; z8 z, J8 ?: B+ Q
7 v) M$ \$ m. r. |
6 ?' Z! m$ d6 L8 k- M
② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
. ?, T5 K7 l5 |6 |/ ], {4 t4 {! b* G2 b) n0 ]! w$ k# m4 {! u
6 |+ \3 x( ]) R& a5 M( m1 P, Sconst int keyPin = 7; //按键管脚定义
2 F+ d& G, v: v% C" ~const int ledPin = 13;//LED灯管脚定义+ W+ y6 U$ \/ ?
/**********************************/4 H& r9 V5 d) ?. V3 o/ S% J4 B
void setup()4 w5 ]: ^5 A0 L, x) B& i
{
. O; Q- E$ N- E pinMode(keyPin,INPUT);//设置引脚7为按键输入
% H0 H6 o$ f6 D6 J0 u0 ?: j5 H pinMode(ledPin,OUTPUT);//设置引脚13为LED输出
4 w8 w& h5 [' `# A}' [: e* @9 a1 A7 V! d* H8 V
/**********************************/& O( F7 H$ k* l" h' e
void loop()
3 R8 }) Q- j; [{" `. ~* l, b# L# K, q# f1 c
& Z6 G0 {6 r: w( I; _& [ boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value
/ n2 o# Y/ `. e //检查按键是否按下
' w' u H1 w e if(Value ==HIGH )
. p$ w2 L; s$ m$ s) l' O. t: S9 B {8 [$ h. }8 Z! d% I
digitalWrite(ledPin,LOW);
5 p# h$ w' B0 E }; M9 J1 f2 t3 T& g
else+ v7 ?0 @; s0 D: W6 Z* k# f( \! C
{
5 |, R( Y% C& Y' Z7 l4 I digitalWrite(ledPin,HIGH);
$ C8 S# p$ ], m' E4 k+ q }5 O( H0 d" @% a* F/ m6 H
}, g# {- U$ r' @" j; q" \. F& I& d
2 o2 a: Q) `# S0 |* M; B% N$ U
% z' v: W5 [$ [0 h
( n3 ]* C6 S! M$ q$ i) j$ P4 n实验现象
9 b. b, N* Z. O, l% }) W按下按键,LED灯点亮。放开按键,LED灯熄灭。
+ |0 K" K- R. D+ O! }8 V5 j! S& ^ w3 D( }& n4 E% h5 Y F
函数介绍
?! \0 E* P" K' w) cdigitalRead()6 {. `; Z% m3 o6 p8 f/ N. r
• 描述:读取指定数字引脚的值7 l1 [% @' u/ |/ ?
• 函数原型:digitalRead(pin)- s1 P: t7 ?5 q/ x1 v
• 参数:要读取的数字引脚编号: t: Z7 a7 p! X6 |+ W( E: [* E
• 返回值:HIGH(1)或LOW(0)' R& T' j, C1 f" Y
6 d3 l& p( u) d5 T+ Q/ g2 c1 r& o! v; s! n2 m" ^/ y j3 I
利用simulink读取按键状态,控制输出。* X- k% p* i: H1 w3 G& _4 X
一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.4 H, }7 D# ^0 |5 R( x
! U. r! A! D5 \( T% W
5 \# G& l; S5 @+ c这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下
1 ]! {0 u$ f3 q/ L0 z9 t |
|