TA的每日心情 | 衰 2019-11-19 15:32 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- ~/ m5 C2 u5 y$ [matlab与Arduino通讯,按键输入控制LED
2 E# `7 j. k% `/ N. I/ B- 实验材料
- 实验步骤
- 实验现象
- 函数介绍
- 利用simulink读取按键状态,控制输出。- P8 N1 v, h: L7 t! [- g. N
5 @& W9 z% c1 U: D2 ]8 D
实验材料/ K( Y5 ?. H8 z* n3 K: r% b$ q- g
• Uno R3开发板5 y- L# D, z- R3 J: D
• 配套USB数据线- S: k! E6 a9 [% Q2 }2 g( f( Y" K' Q
• 1个轻触按键2 C8 p# I% w" H3 g8 c, D
• 用开发板自带的LED(引脚13)
* T( \" g2 l. @" ]9 D9 H) d
; G9 \, [) V; L$ O0 R% f. G
+ Q& f) m( v7 _) B6 p; Q
2 @* b: \: Z. s实验步骤
t3 K+ t$ m. ^ h' M: }' c① 根据原理图搭建电路,实验原理图如下图所示:
1 z! t4 }, x+ I. |' m3 f g, O
: r/ s9 N r! A$ H
* k. E- R s) P2 z! v* |. M② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
' G1 t; v. |$ O4 q
# E ^: ^6 V. U4 w1 B3 I+ F' C! T" ~- p' \* |" Y( m/ a
const int keyPin = 7; //按键管脚定义! Q& t3 S# c9 _- \4 s$ W% V5 l
const int ledPin = 13;//LED灯管脚定义5 L9 v( [8 n5 @8 B1 O' T* F
/**********************************/. y, L2 b, i6 c* _6 {- H
void setup()
) i( _3 X" S7 j# l" f{
8 i, O i5 U$ q k/ z pinMode(keyPin,INPUT);//设置引脚7为按键输入
, s/ L2 k+ m3 [ {1 x pinMode(ledPin,OUTPUT);//设置引脚13为LED输出5 k* {# N( U7 O6 s& m" V
}* ^' Z% |7 z; Z9 M4 D2 E
/**********************************/
, K' h; i1 f% C; W% {void loop()
: ] H( Q3 W7 L) E k0 s. A{
% H" a( N& @) | v( T$ } , m6 _: m( @( P& ?% o3 r
boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value6 [5 t8 D& M8 u
//检查按键是否按下
* y$ D& O$ Q, Z$ `* M# w if(Value ==HIGH )2 r1 h) F& A9 O: H p# m
{6 d, Q- k. B& b d
digitalWrite(ledPin,LOW);& {$ \% `+ {+ P# L. J% \2 I$ [ k
}
/ U: ~1 l8 q; R+ `8 O* i else
; l/ e* q$ o2 A% G {' |. X# A7 y' `7 j( z+ ?9 j
digitalWrite(ledPin,HIGH);" O# y& y; ^4 e6 R
}
' {# Q# l; W- H" c' j& a}
' z- r) V0 `% d" F! O& [1 ~6 H: N. P m# d% ^" J$ G
1 L& \1 U- C1 e6 I) o! ~( g5 k% m
+ G- P- z# ]/ d2 w; F. W- G: x
实验现象
5 Y/ f+ o( J8 ]* C1 F按下按键,LED灯点亮。放开按键,LED灯熄灭。
% g4 W& v) l! G: @$ d! d
. T* h" `( k' @# u8 |函数介绍* `8 d* |& E5 o+ n9 [7 `& M" z
digitalRead()
" z8 }2 b' d Q) t3 h• 描述:读取指定数字引脚的值
7 _* ^0 i" k l! Y! n& F• 函数原型:digitalRead(pin)9 C( _ K! q/ Q; u$ N7 o: B, Q' ]3 H
• 参数:要读取的数字引脚编号$ P2 O' \! G; L! H6 |
• 返回值:HIGH(1)或LOW(0)
$ B4 y1 K# A6 j8 Y4 r; }+ m9 Z* P
) |0 }% T0 U- r2 v+ s! ~利用simulink读取按键状态,控制输出。9 ]' F2 z6 m$ {; O# N# b4 ~
一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.& l% C4 t( X( q/ y+ r, j9 q, g7 ~! T9 \
' u# r0 ?3 Y8 Q, T- ^+ U
3 n4 S; L% r% X. v6 L& {# P
这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下8 h2 Y, o7 R3 q% z) R9 D* w7 S- y
|
|