TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 h' u% D, Y$ }matlab与Arduino通讯,按键输入控制LED
4 S: S$ y0 \/ q- 实验材料
- 实验步骤
- 实验现象
- 函数介绍
- 利用simulink读取按键状态,控制输出。) v' y( i: j% v) z& Z
$ V+ e3 z( y ?9 E! n
实验材料
4 U9 r8 z1 w P5 h- j; q• Uno R3开发板
: a3 S, B( R; S6 ]: @• 配套USB数据线# R9 R" f: f3 O& `, S
• 1个轻触按键; M. W% G" i; O0 }/ r
• 用开发板自带的LED(引脚13). ^# h( z8 y/ q1 m$ X3 c; K6 y2 h
# W% D2 r3 C& O7 o/ D
6 h% l! `$ r5 S+ z2 _! B0 k9 A. O* M
7 v/ [. X- m) `, x& c实验步骤" d! v2 S# `; ?- n
① 根据原理图搭建电路,实验原理图如下图所示:
: ]5 v* O- r" e# G7 y- t+ B
: o0 x% S9 |; N+ O7 [& J- i
8 v" [: ~; g6 c$ s( f0 y; k( _; k② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。/ k: Y9 @1 L+ V5 {. m3 P/ j. Z
( @ Z2 g. j! {' Q/ B6 d' ?/ \- L
$ y) v/ H q# y' h; T! @ w
const int keyPin = 7; //按键管脚定义% o% f8 t2 U0 R: p- C$ m
const int ledPin = 13;//LED灯管脚定义
9 H* w7 w2 ^) D- O4 s' Z/**********************************/; p( z' z- J0 s" S; \
void setup()
+ q$ U/ c$ f% H' Y6 r4 r6 _{
' `' `5 @7 n' F- Y/ n+ O' W pinMode(keyPin,INPUT);//设置引脚7为按键输入
- t( ~4 x, h( U pinMode(ledPin,OUTPUT);//设置引脚13为LED输出
3 e, x0 Z( p1 W3 O& I. d6 [: w}
8 g5 r8 P3 M7 L6 a/ a/**********************************/
6 M6 j8 h: l/ u9 A3 \/ O8 uvoid loop()" q, v) ]. j8 t8 S
{
5 U7 y8 z& ~% _& \' \% ], C( b8 K4 @
( f" G2 e9 K; {+ m; k, O4 P4 h boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value$ n! R3 h, {* S& L6 n; X
//检查按键是否按下
; e4 Z2 P r" G if(Value ==HIGH )$ C* L4 D, p0 e2 s& C9 j* o* u2 ~
{
. V7 t) A9 y2 F0 I digitalWrite(ledPin,LOW);: K4 k" q; w' @% D+ v0 U, N/ c
}
, t0 B. p5 N8 M. }! M* x else
: c! j0 |- O% W1 N! ~! w# C {/ i+ p O' N. b1 E
digitalWrite(ledPin,HIGH);8 B1 s5 x( c& X
}
% w Y% v1 \+ g9 @}# R+ M" j I! H, l% _
3 U4 }- P0 k! D3 h; P: I( _9 n8 s
2 e/ u/ ]& r( G! J5 P% _5 D! c3 f8 ?" `3 B! r
实验现象% P, ~3 i6 W4 Z
按下按键,LED灯点亮。放开按键,LED灯熄灭。
* J: }* `: y# G. `5 h% F3 e2 w4 N4 ^( i. U% |
函数介绍
* b/ R0 u6 q# a8 p1 U9 T, GdigitalRead()
+ W. x/ V, N7 \+ D/ |" k5 {; h# p• 描述:读取指定数字引脚的值
9 I) j [, [( j: _& k/ J2 {8 M; }• 函数原型:digitalRead(pin)
* F% b# q' G: y' T- w4 c• 参数:要读取的数字引脚编号. g) x+ \3 C# K
• 返回值:HIGH(1)或LOW(0)
2 {: d0 N6 g2 P4 B4 m# S& T8 f' o1 @
: W% l/ Q* [ {% `; C: r' t# W& o9 B8 ]$ \- j* m
利用simulink读取按键状态,控制输出。 V" J& T# o B1 R8 p6 K
一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.
u& i. e. [7 v$ m
5 u2 J- ^& j( r9 U1 y Q" F* u- d i& _2 d" X# r( I% o
这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下
$ l4 K2 O7 s: ]& | |
|