实验内容:
Arduino
int sensorReading = 0;
int data = 0;
int s = 0;
int a = 0;
int b = 0;
void setup() {Serial.begin(9600);
}
void loop() {int sensorReading = analogRead(A0); %从A0读取光敏电阻的数值if(sensorReading>950){data = HIGH;                    %当数值大于950,将data置1}else{data = LOW;                        %否则将data置0}if(data==1){            %当data置1时(即产生上升沿),用a来记录delay(500);           %消抖动if(data==1){a = 1;}}%当data置0时,a为1时(即产生下降沿),代表经过一个人if(a==1&&data==0){ delay(500);if(a==1&&data==0){ s++;a=0;}}Serial.println(s);       %输出从程序开始时到当前经过的人数
}
Matlab
clc
clear
s = serial('COM5');           %定义串口对象
set(s,'BaudRate',9600);      %设置波特率s
fopen(s);                   %打开串口对象sinterval = 10000;
passo = 1;
t = 1;
y = 0;
while(t<interval)b = str2num(fgetl(s));      %用函数fget(s)从缓冲区读取串口数据。y = [y,b];
t = t+passo;
pause(1);     %每1s进行一次数据读取,因为周期太长实验中没有这一行
end
fclose(s);                     %打开串口对象s
x=0.02:0.01:100;                  %关闭串口对象s
plot(x,y,'*');                 %输出图像
实验改进:
Arduino
int L1 = 0;
int L2 = 0;
int data = 0;
int mata = 0;
int s = 0;
int a = 0;
int b = 0;
void setup() {Serial.begin(9600);
}
void loop() {int L1 = analogRead(A0);      %从A0读取光敏电阻的数值int L2 = analogRead(A5);      %从A5读取光敏电阻的数值if(L1>950&&L2<950){            %当A0被遮住且A5没有被遮住记为进入data = HIGH;}else{data = LOW;}if(data==1){              %当data置1时(即产生上升沿),用a来记录delay(500);if(data==1){a = 1;}}%当data置0时,a为1时(即产生下降沿),代表有一个人进入if(a==1&&data==0){delay(500);if(a==1&&data==0){ s++;a=0;}}if(L2>950&&L1<950){        %当A5被遮住且A0没有被遮住记为进入mata = HIGH;}else{mata = LOW;}if(mata==1){           %当mata置1时(即产生上升沿),用b来记录delay(500);if(mata==1){b = 1;}}%当mata置0时,b为1时(即产生下降沿),代表有一个人离开if(b==1&&mata==0){delay(500);if(b==1&&mata==0){ s--;b=0;}}Serial.println(s);
}Matlab
clc
clear
s = serial('COM5');           %定义串口对象
set(s,'BaudRate',9600);      %设置波特率s
fopen(s);                   %打开串口对象sinterval = 10000;
passo = 1;
t = 1;
y = 0;
while(t<interval)b = str2num(fgetl(s));      %用函数fget(s)从缓冲区读取串口数据。y = [y,b];
t = t+passo;
pause(1);    %每1s进行一次数据读取,因为周期太长实验中没有这一行
end
fclose(s);                     %关闭串口对象s
x=0.02:0.01:100;
plot(x,y,'*');                 %输出图像

Arduino与Matlab的串口通讯:通过光敏电阻进行人数统计,以及改进:人物方向的判断并进行加减。相关推荐

  1. MATLAB实现串口通讯的详细步骤

    由于MATLAB中提供了仪表仪器通信的功能,所以MATLAB可以用来实现串口通信. 1.要实现串口通信,第一步必须要创建一个串口对象,MATLAB中提供了serial函数来创建一个串口对象.具体用法为 ...

  2. Matlab使用串口通讯

    (1)Matlab 串口通讯官网资料,里面很详尽的介绍了MATLAB中串口相关函数 https://cn.mathworks.com/help/instrument/serial-port-inter ...

  3. LYL程序员小白的理解之简单易懂的Arduino的串口通讯

    简单易懂的Arduino的串口通讯 自白 启动串口通讯 判断串口接收数据的语句 实践 一个三位数整数 三个三位数整数 自白 我是一名大四应届生,第一次写这个博客,可能很多地方写的不是那么好,也有可能有 ...

  4. Matlab通过串口与下位机通讯

    最近用Matlab通过串口与STM32单片机通讯.Matlab在2019b版本以后,要用serialport串口函数集替换掉原有的serial串口函数集.Matlab的serialport串口工具说明 ...

  5. (3)arduino完成两个HC-05蓝牙模块间的配对,实现简单的无线串口通讯

    (3)arduino完成两个HC-05蓝牙模块间的配对,实现简单的无线串口通讯 一.准备工作 二.蓝牙配置 1.从模块配置 (1)接线 (2)进入AT模式 (3)打开串口进行配置 2.主模块配置 (1 ...

  6. Arduino 串口通讯参考笔记 - Serial 类库及相关函数介绍

    @TOArduino 串口通讯参考笔记 - Serial 类库及相关函数介绍 C 声明: 本ID发布的所有文章及随笔均为原创,可随意转载,单转载文章必须注明作者 saner686 及包含原文出处地址 ...

  7. Arduino UNO + Proteus串口通讯仿真实验

    Arduino UNO + Proteus串口通讯仿真实验 准备工作 需要借助虚拟串口软件(Virtual Serial Port Driver),创建2个虚拟串口 具体软件下载和教程:http:// ...

  8. Arduino:串口通讯

    一.硬件串口 在PC机上最常见的串行通讯协议是RS-232串行协议,而各种微控制器(单片机)上采用的是TTL串行协议,两者电平不同,需要经过相应电平转换才能进行相互通讯. Arduino Uno R3 ...

  9. mpu6050 arduino串口 通讯在ros下的可视化实验

    瞎忙好几天,草草做个总结,贴上混乱代码一堆 涉及内容如下 dmp iic  mpu6050的通讯 获取加速度 角速度 二者结合求出角姿势 四元数,发送到计算机. 串口协议编写解析 ros发布位姿里程数 ...

最新文章

  1. spring获取上下文的方式
  2. java项目的逻辑结构
  3. C语言指针(个人的认识)
  4. (十)装饰器模式详解(与IO不解的情缘)
  5. 了解这些设计原则,助你打造最佳用户体验
  6. 日志插件 log4net 的使用
  7. Semantic-UI的React实现(二):CSS类构造模块
  8. PL/SQL之JOB用法 (定时跑数据)
  9. 你真的了解JAVA的形参和实参吗?
  10. 使用Div自动换行一事
  11. 弦图(Chordal Graph)学习小记
  12. Idea 破解版下载指南
  13. Linux常用命令精讲
  14. error:R3InjectorError(AppModule)[HttpClient -> HttpClient -> HttpClient]:
  15. OpenJDK源码赏析之四(jli_util中的工具函数)
  16. 百度离线地图APIV2.0
  17. 男人哭了,是因为他真的爱了
  18. unity GetComponent使用
  19. 1.1到底什么是云计算
  20. 正态分布的前世今生 (上)

热门文章

  1. InDesign 教程如何制作明信片?
  2. 求助-强化学习基础-K-摇臂老虎机Python
  3. C++:从入门到放弃[3]计算
  4. 谁痛苦谁改变 落到谷底时,唯一的出口就是向上
  5. 信息发布类网站后台界面设计一点思考(整体布局)
  6. php 解析mpp 格式文件
  7. 单细胞测序流程(九)单细胞的GO圈图
  8. java递归获取树结构的指定层级、指定层级之上(向上递归(包含父集所有、爷爷集所有...)(父集单独、爷爷集单独...))、指定层级之下所有的(子集、孙子集...)和list集合转Tree树结构
  9. 房贷等额本金和等额本息有什么区别,为何很多人傻傻分不清?
  10. COVID-19席卷全球,看看GIS建模可视化能做些什么