TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# p$ `3 b: L, V$ x4 s. H$ hmatlab与Arduino通讯,按键输入控制LED
- H4 z+ N4 }! t+ Q- 实验材料
- 实验步骤
- 实验现象
- 函数介绍
- 利用simulink读取按键状态,控制输出。* K/ c! x( C4 b* a4 h0 ?
Z5 q% A; |2 Y/ a1 x# D
实验材料4 f8 ^0 c1 F# b" l. s- \
• Uno R3开发板
0 x& B3 l3 h1 } T• 配套USB数据线
# \( l; ]8 ~2 ]; `! h$ T4 d• 1个轻触按键
+ u2 b" w) H6 H• 用开发板自带的LED(引脚13)
2 E! }8 w" S+ L* I, a5 k# W+ f( w: K
5 G. d! w% Z) x; F7 x6 q* `# q% Y! B, l0 P( n3 {, T
8 v1 Y4 E6 l8 A B" g- B+ z
实验步骤
3 T5 ?4 U3 s$ [1 N① 根据原理图搭建电路,实验原理图如下图所示:3 I6 E! ]6 p& g( z$ b0 L
! u& h* N: z, d$ V( L7 U4 n. j6 \: t$ x1 y8 @
② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。( y9 T) v7 ?5 ]" B! [1 j
1 z8 K" n5 X2 q4 [& j: i* ^( ?1 P$ _$ P7 t3 \: N
const int keyPin = 7; //按键管脚定义# H% L# _: f) a
const int ledPin = 13;//LED灯管脚定义$ z& ], C9 z% h8 V
/**********************************/
% ?0 C' l7 F+ Cvoid setup()
9 h+ X% i4 j) i: X3 Z{* M n. |: w+ w, q2 r' B$ l" ^& x
pinMode(keyPin,INPUT);//设置引脚7为按键输入4 W6 T! p# f) O) w0 t% w7 E- F7 ?
pinMode(ledPin,OUTPUT);//设置引脚13为LED输出
* f- }: o4 L! Q6 r1 b}- x- q2 M3 B0 _
/**********************************/0 C8 K" z( D! e: O( Q& p& { |
void loop()- I5 g, v, V6 B
{5 x+ N; i# d* g" }4 M( i$ x% Q2 Z a/ G
3 k) z- R1 E( a. k9 @ boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value0 a2 w$ S; C" h, [6 p4 K. z" U: E
//检查按键是否按下2 n% a: E3 R- A
if(Value ==HIGH )+ E4 d3 p1 a1 C+ A$ B! H! [2 g
{
* r. |+ O: n9 \. I3 R digitalWrite(ledPin,LOW);
. j& A* B# s4 I; T' [' w }
+ M& S, Y: R6 b* l else" \6 `* `0 A% e% Y) h
{$ j1 I/ b3 K" ^ [* y. t. T8 u
digitalWrite(ledPin,HIGH);7 Z& k8 W- _ z/ G5 {/ @
}
" V9 a! \; d4 {. q9 N}; O4 l- i' n2 f" S* i5 ?4 i
4 S: R2 w+ \. c p: h0 V6 A+ ~
3 |' a3 C6 h7 p1 v
! B3 X7 \6 I& z4 g实验现象0 o' s6 T0 }: v
按下按键,LED灯点亮。放开按键,LED灯熄灭。
5 R# a1 G' b: Z& ?2 z. L4 _
4 t2 H3 s! Z5 O; ]3 U6 T P函数介绍, \- v0 K5 L6 H2 m3 K
digitalRead()
0 G+ _; e% G1 G) H• 描述:读取指定数字引脚的值0 p+ Q; y8 U0 E9 p
• 函数原型:digitalRead(pin)
( h: x, _4 C! `' Y9 W9 W• 参数:要读取的数字引脚编号
4 x' Y5 J! W w: @/ ]• 返回值:HIGH(1)或LOW(0)
0 Z3 q5 k% A3 f$ z' R: {) k% v$ ? r! Q1 O
4 v. w# L6 \5 d' c6 \; H
利用simulink读取按键状态,控制输出。7 k1 S: N4 t5 U0 _6 n
一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.
. `8 ~( U2 w4 ?, T
: b7 P# }: S4 R" f e" Q
9 q1 r& F9 {3 G, L( g* u这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下
5 f, ? O' F. X |
|