自制开源的串口数据采集卡,可作为LabVIEW数据采集卡和其他语言调用
MakerHub开源硬件系列文章之一:数据采集卡-数字输出
作者:everddm,微信公众号:MakerHub
这是一个开源的硬件+对应的开源软件+应用示例,可以商用,转载请注明出处
LOGO左边是LabVIEW,右边是一个小螺丝刀,我自己画的,还蛮好看的。
文章目录
- MakerHub开源硬件系列文章之一:数据采集卡-数字输出
- 前言
- 一、MakerHub开源硬件是什么?
- 二、使用步骤
- 1.PCB板
- 2.Atmega328P的源程序
- 3.LabVIEW上位机程序
- 总结
前言
MakerHub开源系列之一,主要是一个以Atmega328P为主要核心芯片的串口采集卡。
一、有开源的PCB文件
二、有Atmega328P的源码
三、有对应的LabVIEW程序
四、其他语言也可用,只要是可读串口的都可用
一、MakerHub开源硬件是什么?
MakerHub开源硬件是一种超低成本的LabVIEW开源开发硬件,主要作为数据采集卡来使用,用以替代官方高成本的USB6008等和CDAQ系列。
二、使用步骤
1.PCB板
PCB板可以直接在以下链接下载,目前只支持GitHub,后期会同步到CSDN和码云。
目前还只是beta版本,V0.9,慢慢完善中。。。
下载了直接去加工就好了,也可以做定制化的修改。
如果您有更好的主意,也欢迎在帖子下面留言,我可能会吸收进开源系列中哦。
目前某创、某配加工双层板子,打样5块板都免费。
这里也有我已经做好焊好的,目前纯手工做的,有需要可以选择。
https://item.taobao.com/item.htm?spm=a230r.1.14.16.11a67867DsRguH&id=651706509793&ns=1&abbucket=19#detail
2.Atmega328P的源程序
其实Atmega328P就是Arduino Nano的主控:
所以需要安装Aruino IDE,这个IDE是我学习编程以来,除了谭志强C语言之外,安装最简单的IDE,所以请电脑屏幕前的你不要慌,官网下载之后双击就完事了。至于下面的程序如何烧进芯片,网上大把大把的教程。
这是源代码(GitHub跟这个一样,但是之后可能也许大概会更新):
/*by MakerHub,微信公众号也是:MakerHubwww.LabVIEWMakerHub.cnGithub地址:码云地址:用来将数字和模拟IO口发送给串口,可以用LabVIEW调用;14个Digital Input或者Output,或者可以自由设定;还有ADC和PWM可以用;*/
String SerialOrder = "";
bool stringComplete = false;
int i =0;void setup() {Serial.begin(9600);
// Serial1.begin(9600);//inputString.reserve(200);pinMode(0, OUTPUT);pinMode(1, OUTPUT);pinMode(2, OUTPUT);pinMode(3, OUTPUT);pinMode(4, OUTPUT);pinMode(5, OUTPUT);pinMode(6, OUTPUT);pinMode(7, OUTPUT);pinMode(8, OUTPUT);pinMode(9, OUTPUT);pinMode(10, OUTPUT);pinMode(11, OUTPUT);pinMode(12, OUTPUT);pinMode(13, OUTPUT);pinMode(LED_BUILTIN, OUTPUT);SerialOrder.reserve(200);}void loop() {if (stringComplete) {// Serial.println(SerialOrder); (char)Serial.read();if(SerialOrder.substring(0, 4) == "A33A" && SerialOrder.substring(31,35) == "A99A"){//PIN0if (SerialOrder.substring(4, 5) == "1") {digitalWrite(0, HIGH);digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(0, LOW);}//PIN1if (SerialOrder.substring(6, 7) == "1") {digitalWrite(1, HIGH);} else { digitalWrite(1, LOW);}//PIN2if (SerialOrder.substring(8, 9) == "1") {digitalWrite(2, HIGH);} else { digitalWrite(2, LOW);}//PIN3if (SerialOrder.substring(10, 11) == "1") {digitalWrite(3, HIGH);} else { digitalWrite(3, LOW);}//PIN4if (SerialOrder.substring(12, 13) == "1") {digitalWrite(4, HIGH);} else { digitalWrite(4, LOW);}//PIN5if (SerialOrder.substring(14, 15) == "1") {digitalWrite(5, HIGH);} else { digitalWrite(5, LOW);} //PIN6if (SerialOrder.substring(16, 17) == "1") {digitalWrite(6, HIGH);} else { digitalWrite(6, LOW);} //PIN7if (SerialOrder.substring(18, 19) == "1") {digitalWrite(7, HIGH);} else { digitalWrite(7, LOW);} //PIN8if (SerialOrder.substring(20, 21) == "1") {digitalWrite(8, HIGH);} else { digitalWrite(8, LOW);} //PIN9if (SerialOrder.substring(22, 23) == "1") {digitalWrite(9, HIGH);} else { digitalWrite(9, LOW);} //PIN10if (SerialOrder.substring(24, 25) == "1") {digitalWrite(10, HIGH);} else { digitalWrite(10, LOW);} //PIN11if (SerialOrder.substring(26, 27) == "1") {digitalWrite(11, HIGH);} else { digitalWrite(11, LOW);} //PIN12if (SerialOrder.substring(28, 29) == "1") {digitalWrite(12, HIGH);} else { digitalWrite(12, LOW);} //PIN13if (SerialOrder.substring(30, 31) == "1") {digitalWrite(13, HIGH);} else { digitalWrite(13, LOW);} }stringComplete = false;SerialOrder="";}
// Serial.println(SerialOrder);i+=1;if(i>1000){i=0;}if(fmod(i,12)==5){// 读取A6引脚的模拟信号:(范围0 - 1023)转为(0 - 5V):int sensorValueA6 = analogRead(A6);int sensorValueA7 = analogRead(A7);// 输出Serial.println("A55A"+String(sensorValueA6)+"-"+String(sensorValueA7)+"A66A");
// Serial.println(i); }delay(10);}void serialEvent() {while (Serial.available()) {// get the new byte:char inChar = (char)Serial.read();// add it to the inputString:SerialOrder += inChar;// if the incoming character is a newline, set a flag so the main loop can// do something about it:if (inChar == '\n') {stringComplete = true;}}
}
3.LabVIEW上位机程序
其实就是读串口处理串口数据:
LabVIEW是用2014版本写的,我觉得现在基本上所有的人都比2014版本新,可以保证大家不用找人保存低版本。
总结
以上就是今天要讲的内容,以后会陆续更新模拟信号输入输出采集板,估计还会有基础的高速多路热电偶采集板等等等等。
自制开源的串口数据采集卡,可作为LabVIEW数据采集卡和其他语言调用相关推荐
- LabVIEW数据采集卡
CSDN话题挑战赛第2期 参赛话题:学习笔记 博客写作背景----项目中解决的问题 最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用lab ...
- 浏览器(2):自制Chromium内核浏览器,自动统计CSDN社区打卡记录
自研.掌握核心科技?这我可不敢吹,我老老实实说我用了个Chromium内核组件. 为了统计一些数据,一条条复制粘贴肯定是够累的.用爬虫吧,自己还不精通,而且现在好多数据都需要登录才能请求,或者有些需要 ...
- labview GSM上位机监控系统~温度监控,液位监控,粉尘浓度监控,远程遥控~串口通讯~短信远程功能~数据采集,数据存储,报表输出~
labview GSM上位机监控系统温度监控,液位监控,粉尘浓度监控,远程遥控串口通讯短信远程功能数据采集,数据存储,报表输出~ _:5444669332416953labview十年工控
- 自制开源的安卓浏览器
开源的安卓浏览器 自制开源的安卓浏览器 一,Via浏览器,总分:21 二,Ninja浏览器,总分:28 三,168浏览器,总分:29 自制开源的安卓浏览器 当今各种广告和自媒体无聊信息充斥网络,大量的 ...
- 全三轨磁条卡读卡器|阅读机|刷卡器MRS100串口通信协议 Communication Protocol
全三轨磁条卡读卡器|阅读机|刷卡器MRS100串口通信协议 Communication Protocol 1.Command Command name Command code Comm ...
- 【开源的串口可视化工具——Serial Studio】
[开源的串口可视化工具--Serial Studio] 1. Serial Studio前言 2. Serial Studio特点 3. Serial Studio下载安装 4. Serial Stu ...
- 虚拟串口服务器 源代码,进行ARM开发调试用的开源虚拟串口软件(有源代码)
好用的开源虚拟串口软件,有源代码,超值.安装方法见压缩包内的ReadMe.txt. ComEmulDrv serial port bridge driver ===================== ...
- 开源虚拟串口创建工具分享
直接上链接 三合一串口调试工具.rar-制造文档类资源-CSDN下载 一直从事上位机开发的工作,需要电脑和下位机进行串口通讯,每次看到别人写的串口调试 助手,心想自己也写一个通用的,到目前为止我见过的 ...
- 单片机读tf卡c语言程序,单片机读写SD卡,MMC卡,MiniSD,TF卡,MicroSD卡
图一 一:系统构成: 1:89C51单片机(ISP 单片机,可不用编程器) 2:128x64LCD 3: 带SD ,MiniSD ,MicroSD(TFSD)卡座 送32MByte SD卡 4:支持红 ...
最新文章
- vc+如何添加右键弹出菜单
- 你拖后腿了吗?工信部发布前 11 月软件行业经济报告
- 如果不能调试存储过程
- python读文件路径-在Python中按路径读取数据文件的几种方式
- 水杯测试----误人子弟啊!
- 转载:vs配置opencv教程
- GIS实战应用案例100篇(一)-GEE主成分分析(含代码)
- 在FIREBUG控制台中输入 jQuery() 返回 []
- git本地安装配置与基础概念
- 平安产险项目记录(二)
- linux监控指定用户操作,Linux 用户行为轨迹监控
- 共享美食:煲仔饭、香蕉粥和胡萝卜饼
- Android开发笔记(一百二十三)下拉刷新布局SwipeRefreshLayout
- 正则表达式匹配第一个单个字符
- Win10教育版变为企业版
- 台式计算机怎么设置自动锁屏,台式机win7怎么设置自动锁屏
- 前端晋升答辩-性能优化篇范式
- 医疗CT断层图像DICOM标准和工业CT断层图像DICONDE标准
- Adobe Illustrator CS5 快捷键大全
- 阿里高级测开:软件测试(功能、接口、性能、自动化)详解
热门文章
- 如何使用iOS9中的Core Spotlight框架
- 命名数据网络(NDN)与TCP/IP网络
- 卡塔尔世界杯︱足球游戏的打开方式
- 中学教学能用上python吗_AI双师教学、用Python绘图 未来的中小学可能这样上课
- 苹果MFI认证apple: OTS,TDMA,OTA认证费用及申请基本流程
- ajax读取xlsx文件,从Ajax中的服务器响应获取Excel文件(.xlsx)
- Python调用驱动级按键--DD虚拟键盘
- 考研复试英语口语对话超实用(一)
- windows2008 r2,安装扫描仪驱动
- 201801002_电力系统调频