TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, s9 U- Z4 S5 n0 P- ?8 ^
matlab与Arduino通讯,按键输入控制LED1 O, B p* C2 T7 o: X; _
- 实验材料
- 实验步骤
- 实验现象
- 函数介绍
- 利用simulink读取按键状态,控制输出。
; b' l; G6 r7 P 4 _% P2 N# [6 g r
实验材料
, ^, Z k7 d" E$ G: m) T9 Z$ _2 N• Uno R3开发板
' E. Y: g0 G, ]• 配套USB数据线1 Y5 R T/ _& v& R; K6 h
• 1个轻触按键' @) L, Y$ {& B2 {/ Z9 w) u
• 用开发板自带的LED(引脚13)0 r+ |& _$ V& Y& Z) M% u6 T8 b
; o: w# C- w0 [
- L8 [: r' U2 o/ Y- `! D" A
/ i; p, i: Z/ E! ~' q
实验步骤9 P0 F" a) H6 \* ?
① 根据原理图搭建电路,实验原理图如下图所示:- G% C/ v3 E6 w! Z$ f. ?& c3 N4 F
; ^# S1 t5 ^& Y4 n
1 i2 T2 E0 q5 X9 `8 _② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。% v3 q$ r+ Z" e% \; q0 g
: W9 x) q0 j3 @3 C" _& Z" y
3 k% Z8 h! a3 }1 N2 y9 Xconst int keyPin = 7; //按键管脚定义) V- i7 E$ X( s6 J* W7 {0 W
const int ledPin = 13;//LED灯管脚定义
1 ~! `! S4 F& a& S/**********************************/" }% l1 S& Y5 U% p+ W3 c, i% o/ N
void setup()
1 I! W: I& m0 s7 B) q) E{
$ q7 D& X; l* e( `# B& \, G$ ?+ ? pinMode(keyPin,INPUT);//设置引脚7为按键输入5 L+ V5 Z' T1 \. m: f5 L) {
pinMode(ledPin,OUTPUT);//设置引脚13为LED输出3 C/ S! |7 T( B1 S' m
}
8 M0 U3 C, I- y c/**********************************/
9 {& V, ^# ^' m2 Y& l& Jvoid loop()! o5 \0 b/ j/ t- f( P+ U9 R+ {+ B
{" g, x3 {1 \2 {9 |: ~( }
$ c& b* h1 O5 g9 M boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value) Q6 N, z' p0 N. w- q. w5 T
//检查按键是否按下9 b& s% j3 b7 H6 s0 F
if(Value ==HIGH )
' `5 {0 e. Q" d) n: L3 Z9 D% q) s! i {
) I, k# I1 e- w0 ^2 O! g) A digitalWrite(ledPin,LOW);4 i! `# k# M' U+ L, w4 m" ^ a
}( g, w& d$ |3 i: T# w2 W
else
( K; r; b [: Y: \1 s! u {& F6 N. f3 b; ~1 O+ A! Z" Y$ j
digitalWrite(ledPin,HIGH);
; c& o$ R& O5 y- \/ i/ `. } }
. w8 x, ^1 e. Q' N% n( H4 H( ^: J}
4 M6 _6 d/ d( P% |2 T$ |. j f
: k% i5 q0 A! z' P: o2 `- t+ q8 O4 Y6 e) V
# Q6 d2 D5 G* r实验现象) P+ Y7 B. O1 _: K* L
按下按键,LED灯点亮。放开按键,LED灯熄灭。
7 |; | Q' N9 d1 w0 b& V- C8 m9 @8 A# } W' O/ a
函数介绍3 P0 G" {- K! L8 G' J
digitalRead()
3 p" t$ a" D+ l• 描述:读取指定数字引脚的值
% t5 l9 i" h* h! \3 C9 O• 函数原型:digitalRead(pin)5 i# P1 Y2 [" w. g# o y8 K1 q
• 参数:要读取的数字引脚编号0 i- i2 X+ Y6 n
• 返回值:HIGH(1)或LOW(0)# Z7 [% A1 `4 E3 j+ f
4 e, N( a) G8 r: H8 [; {# l+ o
; `- g. F4 b' a8 y) E5 W
利用simulink读取按键状态,控制输出。7 J: q' x' F4 E4 l# n" Q
一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.
. r5 I U3 i( R$ l' @( P: |- n
7 q, Z0 ~% W3 _: D& K+ R
& }' p1 `6 Z# v$ _# g; p& s
这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下8 l" G( s9 X6 h# z3 C! q% a
|
|