找回密码
 注册
关于网站域名变更的通知
查看: 569|回复: 1
打印 上一主题 下一主题

matlab与Arduino通讯,按键输入控制LED(两种方式)

[复制链接]
  • TA的每日心情

    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-2-24 10:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    ' a3 l) g2 T) S( G4 a: ^
    matlab与Arduino通讯,按键输入控制LED% C( v8 W. n( L0 }- a
    • 实验材料
    • 实验步骤
    • 实验现象
    • 函数介绍
    • 利用simulink读取按键状态,控制输出。
      / W7 m& c, Q* `, f8 }
    + P! Y$ e2 R) R. w3 s  L7 u
    实验材料
    6 W% e  ?6 h( s1 }- T, `7 {3 |9 O& @• Uno R3开发板
    4 Z) g! c7 k0 s4 r! p* u% W8 I• 配套USB数据线
    " W2 F5 S$ _& O4 e+ L• 1个轻触按键: k) Y: i1 Q* e9 T2 h- Z) W) F8 \
    • 用开发板自带的LED(引脚13); Y3 V: e3 Y: ^' V+ P
    . ~; D$ g9 w, f- n

    / ^" Y6 \% p: m- H* @/ U" N1 P
    / @5 y5 o6 o; ?/ K3 w+ M. G实验步骤( v/ u9 g* \/ ?8 T% D2 H
    ① 根据原理图搭建电路,实验原理图如下图所示:: D" g' R/ l- G% R) e" _4 [) j7 t! N

    " J/ E! [5 {* e7 _/ ?4 n- Q
    5 w  U2 Z' x, e- e4 n# j7 L② 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。  V8 {5 i: X* |( e3 i, `
    - Y( M* u8 ?8 \8 Z) U6 w

    * e/ _) \) C2 Pconst int keyPin = 7; //按键管脚定义8 ~, w) W; r; G+ L. |0 Z" K+ P2 E
    const int ledPin = 13;//LED灯管脚定义
      I- V, O3 s& w/**********************************/5 c/ s( \% D7 @% B6 h. r
    void setup()
    2 N" c3 \- S! N. Q! B) b1 z/ s3 s{
    % l7 t$ Z- V% P* \# H$ B, K! A/ x  pinMode(keyPin,INPUT);//设置引脚7为按键输入
    0 q0 z+ Y6 y- N$ B# ?2 W) z  pinMode(ledPin,OUTPUT);//设置引脚13为LED输出
    5 J; h  X6 R" L: P}
    & P* W/ N% l# k2 {( B: n/**********************************/1 a4 t* W/ b% e. O6 |
    void loop()& p' ]; K" C$ W8 P. n
    {1 v" [- I$ w9 J
      
    * \. Y5 `* k/ U  boolean Value=digitalRead(keyPin);//读按键的状态赋值给Value( F2 J; E& K0 m$ W( e+ B
      //检查按键是否按下
    ' A) a$ M6 h0 i* g( {/ ?' I  if(Value ==HIGH )
    2 r! d- O" j6 |3 ?  l1 ~3 M  {% I$ I& x  }8 y2 a
        digitalWrite(ledPin,LOW);
    ; x; s9 y' }1 `  Q  }
    * |  }& H1 W$ P7 @' `  else5 I( G  o: s( G
      {1 B% K7 b, m4 E/ J1 T
        digitalWrite(ledPin,HIGH);& b' C5 S! U; j( }* ]: r* ^
      }
    $ f/ L( I1 {# w0 I6 e" l2 y# x; W/ @: t}3 K6 A9 j) X/ r

    % Q8 O! M% U) `9 Q) t3 h$ r5 H+ Z* S  G0 d: L& g8 l( r; `, ?* m
    9 L4 k& {/ [* c, W, H6 q( f! F  W
    实验现象& A2 ]" V8 O9 g7 m& s3 c9 D+ d
    按下按键,LED灯点亮。放开按键,LED灯熄灭。
    2 d* J' c' w0 l# j0 r- w
      e% F5 @7 L' C9 F4 I% n1 {函数介绍
    7 _7 b. v2 v$ i% l2 Q; RdigitalRead()
    1 Z4 o! c# @0 Q0 m• 描述:读取指定数字引脚的值; j* t' \7 _3 M4 Q" `
    • 函数原型:digitalRead(pin)
      C; m; M: V* q- p• 参数:要读取的数字引脚编号: L2 L0 a7 I" }3 k; z
    • 返回值:HIGH(1)或LOW(0)
    9 }9 W% B2 x; z, T! p+ L& s+ {& d) _+ a# T
    / e) c5 ]( f5 b3 u; K: X
    利用simulink读取按键状态,控制输出。+ o4 l- K$ k" I$ u9 q$ z) d. k
    一如既往的简单,利用硬件支持包中的模块组建如下模型,一个数字量的读,一个数字的写,输入直接给输出,但simulink默认是低电平有效,需要加一个取反模块。环境的配置及部署方式请参见: 我的博客MATLAB与Arduino通讯,点亮双色LED.
    ) W. M4 h" |# }+ y% ^+ Q9 Z 8 S6 K# _/ v) ?* q* a, g
    9 a3 \5 s' B! }% \2 @' ^/ G- \2 p
    这里就部位大家展现图形化编程的程序了,有兴趣的朋友,自己变一下' _8 Z9 l, U" @3 E9 c

    该用户从未签到

    2#
    发表于 2021-2-24 11:10 | 只看该作者
    matlab与Arduino通讯,按键输入控制LED
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 03:26 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表