TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ g' d9 ^; i" V; f& N: Amatlab与Arduino通讯,按键输入控制LED
, I. Z0 c; c2 q2 K; v/ u7 V- 实验材料
- 实验步骤
- 实验现象
- 函数介绍
- 利用simulink读取按键状态,控制输出。
. D' i M! L) H" Y4 @- O7 ^" l / c9 }& D* b, J0 C: K+ p$ N
实验材料% Z& z# |) z1 ]! S3 n
• Uno R3开发板
: u7 r6 f9 I, _4 G• 配套USB数据线4 A2 ~- S; f) q, j Q
• 1个轻触按键
7 G" b& e! i) P( {+ f# V3 E4 ^) h* A• 用开发板自带的LED(引脚13)5 T4 B9 O, I/ J
, Q7 l: J3 Q$ J% @; [
' g; c9 n9 u. w3 {$ P8 O2 Z) {+ Q/ ^3 K
实验步骤
3 Z, r" A* z2 O: U, m7 A① 根据原理图搭建电路,实验原理图如下图所示:
8 W9 G8 j" @2 }" G& O D
8 D2 g3 M4 c. ]! y; P" H% ?7 Q
7 c- f9 O4 I' t+ w
② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
, ?: p4 F$ j3 A
' M4 a/ x( i. Y, [ p/ ^
' O5 d: a7 ~% E2 F2 s/ nconst int keyPin = 7; //按键管脚定义
z% i* z( G8 A! t, b. ^2 J y2 Sconst int ledPin = 13;//LED灯管脚定义
% S4 X5 b; {3 {* l2 q* i' R/**********************************/
" Z- K1 `, X E: {% Fvoid setup()
* L1 }" u+ p2 u: u5 q& g9 q{& y+ d# I' Z) F4 x: ]# i( N: M
pinMode(keyPin,INPUT);//设置引脚7为按键输入
$ j8 [9 ]2 C* D- @+ T, T0 ] pinMode(ledPin,OUTPUT);//设置引脚13为LED输出) X9 {! d' R3 X9 f2 g: H( \
}; J( }) @" F4 N' [
/**********************************/! C4 e6 z: n, v
void loop()
0 R! h9 y, }3 a5 e! ?3 a{; x% z: K! {# V7 ]& L
* @) H6 A8 l7 z3 C7 a0 ^$ y! j; _ boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value+ {8 A% H/ ]2 j1 s# i6 x
//检查按键是否按下
3 v* u! v: y/ B: e% a, Q if(Value ==HIGH )
/ |- q/ T4 g ^6 W' J {$ H c/ G$ V0 V$ X& q% E- _" ~
digitalWrite(ledPin,LOW);
/ R& s7 h ]) @4 T }
3 S/ v2 O6 B9 l) x* u( _" r" F else' ?5 c% ~! m. D; h, c) U0 e: @
{, v4 k+ K0 _' G! Z* E
digitalWrite(ledPin,HIGH);
9 J3 x( ^0 [0 T& U/ E* W5 V% k: Y }& X) g! K( e8 |; q. ] j9 V
}8 S) ~4 J: M, `# t3 X
! {/ f' O2 Q; {6 n. a7 ?
7 g* Q, E4 f+ D$ w8 W b9 H- J, ^6 k+ s! J3 }0 w
实验现象% s. `$ B- m: g$ H4 {: V
按下按键,LED灯点亮。放开按键,LED灯熄灭。% G' b9 G2 R0 n
- r: q6 i8 s' e6 `函数介绍: Q7 M0 T% U& r D. |0 U1 Q
digitalRead()! P7 P; q9 L7 ]9 r, D% Z* I
• 描述:读取指定数字引脚的值
+ b2 _+ g* `* @4 ?1 O• 函数原型:digitalRead(pin) P1 m4 \7 i# I+ C' @, H# w
• 参数:要读取的数字引脚编号2 [2 ^- x7 j* e. B( @
• 返回值:HIGH(1)或LOW(0)
- E* X! L$ i$ d8 _9 u
# N$ H. t1 E- x" C% L" M
, D6 c4 J0 n" a; o6 }% p% H. g) R' Y利用simulink读取按键状态,控制输出。
! j* z2 K. w$ Z3 L一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.( c2 i/ r8 A3 z( g, m0 o# b7 x9 t
3 C# o0 e* g" r. \( p& Q
6 f D& t6 J; o5 m) }* g8 f2 d这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下" f; J6 g) L/ Z1 {* \4 s
|
|