MATLAB+Arduino利用板上的按键控制板上Led灯

news2025/3/25 20:50:29

几年不使用,之前的知识都忘掉了。需要逐步捡起来。

1 熟悉按键的使用

2熟悉灯的控制

1 电路

我们将通过 MATLAB 的 Arduino 支持包与 Arduino 板通信,读取按键状态并控制 LED 灯的亮灭。

  1. 按键:连接到 Arduino 的数字引脚(例如 D2),另一端接地。(arduino UNO板子上自带了两个按键,通过杜邦线将KEY-L连接到D2

  2. LED:连接到 Arduino 的数字引脚(例如 D13,Arduino Uno 自带 LED),另一端通过限流电阻接地。(uno板自带

2 功能

使用 MATLAB 和 Arduino 实现按键控制 LED 灯的程序。

3 代码

app中查找arduino资源管理器

查看com口,方便编码用(如果是matlab2022版本及以上,且只有一个arduino板挂在电脑上,可省略com口,matlab可以自己查到)

编码: 按键为低电平。

arduinoObj = arduino("COM5", "Uno")
%Configure specified Arduino pins.
configurePin(arduinoObj, "D13", "DigitalOutput");
configurePin(arduinoObj, "D2", "Pullup"); %必须上拉,否则按键无法正确识别


% main code
disp('按下按键控制 LED 灯(按 Ctrl+C 退出)...');
while true
    % 读取按键状态
    buttonState = readDigitalPin(arduinoObj, 'D2');

    % 控制 LED 灯
    if buttonState == 0 % 按键按下(假设按键按下为低电平)
        writeDigitalPin(arduinoObj, 'D13', 1); % 点亮 LED
        disp('LED 灯亮');
    else
        writeDigitalPin(arduinoObj, 'D13', 0); % 熄灭 LED
        disp('LED 灯灭');
    end

    pause(0.5); % 稍微延迟,避免过于频繁读取
end

% 清理
% clear a;
disp('程序结束');
%Clean Up
%Clear variables that are not needed.
clear arduinoObj

4 结果

按键和LED关联功能实现。按键一定要用上拉功能。

5 通过按键判断是否停止程序

手动结束while true 会让arduino产生的通信信息无法清除,为此把arduino板自带的KEY_R按键使用,用它来控制程序启停

KEY_R键必须按下,然后再按KEY——L键 ,程序才能一致执行;否则就会直接退出while循环。

Create an Arduino Connection
Create an Arduino connection using the specified device and connection parameters.
arduinoObj = arduino("COM5", "Uno")

Configure Arduino Pins
Configure specified Arduino pins.
configurePin(arduinoObj, "D13", "DigitalOutput");
configurePin(arduinoObj, "D2", "Pullup");
configurePin(arduinoObj, "D3", "Pullup");

Read and Write data
Read data from and write data to Arduino pins configured above.

disp('按下按键控制 LED 灯(按 Ctrl+C 退出)...');
stopState = readDigitalPin(arduinoObj, 'D3')% 这是反向的?
buttonState = readDigitalPin(arduinoObj, 'D2')
while stopState~=0 %必须一致按着KEY R,才能才能一致循环
    % 读取按键状态
    buttonState = readDigitalPin(arduinoObj, 'D2');
    stopState = readDigitalPin(arduinoObj, 'D3');
    % 控制 LED 灯
    if buttonState == 0 % 按键按下(假设按键按下为低电平)
        writeDigitalPin(arduinoObj, 'D13', 1); % 点亮 LED
        disp('LED 灯亮');
    else
        writeDigitalPin(arduinoObj, 'D13', 0); % 熄灭 LED
%         disp('LED 灯灭');
    end

    pause(0.5); % 稍微延迟,避免过于频繁读取
end

% 清理
% clear a;
disp('程序结束');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2320884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cocos Creator Shader入门实战(五):材质的了解、使用和动态构建

引擎:3.8.5 您好,我是鹤九日! 回顾 前面的几篇文章,讲述的主要是Cocos引擎对Shader使用的一些固定规则,这里汇总下: 一、Shader实现基础是OpenGL ES可编程渲染管线,开发者只需关注顶点着色器和…

vue设置自定义logo跟标题

准备 Logo 图片 将自定义的 Logo 图片(如 logo.png)放置在项目的 public文件夹下。 使用环境变量设置 Logo 和标题(可选) 创建或修改 .env 文件 在项目根目录下创建或修改 .env 文件,添加以下内容: VITE_A…

尝试在软考65天前开始成为软件设计师-计算机网络

OSI/RM 七层模型 层次名功能主要协议7应用层实现具体应用功能 FTP(文件传输)、HTTP、Telnet、 POP3(邮件)SMTP(邮件) ------- DHCP、TFTP(小文件)、 SNMP、 DNS(域名) 6表示层数据格式,加密,压缩.....5会话层建立,管理&终止对话4传输层端到端连接TCP,UDP3网络层分组传输&a…

VMware主机换到高配电脑,高版本系统的问题

原来主机是i3 ,windows7系统,vmware 14.0,虚机系统是ubuntu 14.04。目标新机是i7 14700KF,windows11系统。原以为安装虚拟机,将磁盘文件,虚拟机配置文件拷贝过去可以直接用。 新目标主机先安装了vmware 15,运行原理虚机&#xff0…

【Linux内核系列】:动静态库详解

🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 有些鸟儿是注定是关不住的,因为它们的每一片羽翼都沾满了自由的光辉 ★★★ 本文前置知识: 编译与链接的过程…

windows环境下NER Python项目环境配置(内含真的从头安的perl配置)

注意 本文是基于完整项目的环境配置,即本身可运行项目你拿来用 其中有一些其他问题,知道的忽略即可 导入pycharm基本包怎么下就不说了(这个都问?给你一拳o(`ω*)o) 看perl跳转第5条 1.predict报错多个设备…

IDEA批量替换项目下所有文件中的特定内容

文章目录 1. 问题引入2. 批量替换项目下所有文件中的特定内容2.1 右键项目的根目录,点击在文件中替换2.2 输入要替换的内容 3. 解决替换一整行文本后出现空行的问题4. 增加筛选条件提高匹配的精确度 更多 IDEA 的使用技巧可以查看 IDEA 专栏: IDEA 1. 问…

【蓝桥杯】4535勇闯魔堡(多源BFS + 二分)

思路 k有一个范围(0到怪物攻击的最大值),求满足要求的k的最小值。很明显的二分套路。 关键是check函数怎么写,我们需要找到一条从第一行到最后一行的路径,每一次可以从上下左右四个方向前进,那么我么可以用…

HTML图像标签的详细介绍

1. 常用图像格式 格式特点适用场景JPEG有损压缩,文件小,不支持透明适合照片、复杂图像PNG无损压缩,支持透明(Alpha通道)适合图标、需要透明背景的图片GIF支持动画,最多256色简单动画、低色彩图标WebP谷歌开…

Chapter 4-15. Troubleshooting Congestion in Fibre Channel Fabrics

show zone member: Shows the name of the zone to which a device belongs to. This command can be used to find the victims of a culprit device or vice versa. 显示设备所属的区域名称。该命令可用于查找罪魁祸首设备的受害者,反之亦然。 show zone active: Shows the…

QT三 自定义控件

一 自定义控件 现在的需求是这样: 假设我们要在QWidget 上做定制,这个定制包括了关于 一些事件处理,意味着要重写QWidget的一些代码,这是不实际的,因此我们需要自己写一个MyWidget继承QWidget,然后再MyWi…

在 ASP .NET Core 9.0 中使用 Scalar 创建漂亮的 API 文档

示例代码:https://download.csdn.net/download/hefeng_aspnet/90407900 Scalar 是一款可帮助我们为 API 创建精美文档的工具。与感觉有些过时的默认 Swagger 文档不同,Scalar 为 API 文档提供了全新而现代的 UI。其简洁的设计让开发人员可以轻松找到测试…

用于 RGB-D 显著目标检测的点感知交互和 CNN 诱导的细化网络(问题)

摘要 问题一:但在对自模态和跨模态的全局长距离依赖关系进行建模方面仍显不足。什么意思? 自模态(Intra-modal)全局依赖:在同一模态内,长距离像素之间的信息交互对于理解全局背景很重要,但 CN…

python3 -m http.sever 8080加载不了解决办法

解决方法很多,本文设置各种处理方法,逻辑上需要根据你的自身情况选择 我会告诉你遇到这种问题怎么做,根据具体症状处理 如需转载,标记出处 背景: 1。如图 2.。域名访问不了 http://www.meiduo.site:8080/register.ht…

Oracle数据库性能优化全攻略:十大关键方向深度解析与实践指南

文章目录 一、SQL查询优化二、索引优化三、内存管理四、I/O优化五、分区表与分区索引六、并行处理七、统计信息管理八、锁与并发控制九、数据库参数调优十、应用设计优化结论 在当今数据驱动的时代,数据库的性能优化成为了确保企业应用高效运行的关键。Oracle作为业…

windows清除电脑开机密码,可保留原本的系统和资料,不重装系统

前言 很久的一台电脑没有使用了,开机密码忘了,进不去系统 方法 1.将一个闲置u盘设置成pe盘(注意,这个操作会清空原来u盘的数据,需要在配置前将重要数据转移走,数据无价,别因为配置这个丢了重…

【深度学习】【目标检测】【Ultralytics-YOLO系列】Windows11下YOLOV3人脸检测

【深度学习】【目标检测】【Ultralytics-YOLO系列】Windows11下YOLOV3人脸检测 文章目录 【深度学习】【目标检测】【Ultralytics-YOLO系列】Windows11下YOLOV3人脸检测前言YOLOV3模型运行环境搭建YOLOV3模型运行数据集准备YOLOV3运行模型训练模型验证模型推理导出onnx模型 总结…

html5-qrcode前端打开摄像头扫描二维码功能

实现的效果如图所示,全屏打开并且扫描到二维码后弹窗提醒,主要就是使用html5-qrcode这个依赖库,html5-qrcode开源地址:GitHub - mebjas/html5-qrcode: A cross platform HTML5 QR code reader. See end to end implementation at:…

ui_auto_study(持续更新)

通过where python来找到python解释器的安装目录 如果不适配,谷歌浏览器插件可以在这个地址下载对应的驱动 谷歌浏览器驱动下载地址 下载对应的驱动版本,替换原驱动 替换后,可以执行成功 div代表标签 .开头的代表类# 使用class定位元素 …

【nodejs】爬虫路漫漫,关于nodejs的基操

一.下载安装nodejs 官网地址:Node.js — 在任何地方运行 JavaScript 二.下载安装vscode代码编辑器 官网地址:Download Visual Studio Code - Mac, Linux, Windows 三.修改本地脚本策略 1,windowsi 打开电脑设置 2,输入powersh…