H7-TOOL的LUA小程序教程第14期:任意波形信号发生器,0-20mA输出和微型数控电源(2024-10-11,已更新)
LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。
简介
信号发生器,0-20mA输出和微型数控电源,可以在上位机端设置,也可以显示屏端设置
详细使用说明可以看在线或者离线操作说明手册:H7-TOOL操作说明和客户常见问题汇总贴,含PDF离线版(2024-08-16) - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!
建议优先熟悉下,特别是对应的信号发生器和0-20mA输出引脚。
1、上位机端设置

2、显示屏端设置


LUA函数说明:
1、打开和关闭DAC
函数 dac_on() 打开DAC电源
函数dac_off() 关闭DAC电源
这两个函数都是直接调用即可。由于信号发生器和0-40mA输出都是通过DAC实现的,所以调用这两个函数可以实现信号发生器和0-40mA输出开关。
2、写DAC数值
函数dac_write(参数1)
参数1:范围0-4095,用于写DAC值,因为是12bit DAC,所以范围是0-4095
函数dac_volt2dac(参数1)
参数1:单位mV,支持正负10V,对应的数值范围是-10000到10000,即-10000mV到10000mV,用于电压值换算为DAC值
函数dac_curr2dac(参数1)
参数1:单位uA,支持0-20mA,对应的参数范围是0到20000,即0uA到20000uA,用于电流值换算为DAC值
举例:
这三个函数同样是直接调用即可,这三个函数推荐配合使用,
比如设置电流输出10mA, 那么我们就可以:
local value
dac_on()
value = dac_curr2dac(10000)
dac_write(value)
又比如设置输出电压5V,那么我们就可以:
local value
dac_on()
value = dac_volt2dac(5000)
dac_write(value)
3、写电压和电流
函数dac_volt(参数1)
参数1:写电压值,单位mV,支持正负10V,对应的数值范围是-10000到10000,即-10000mV到10000mV
函数dac_curr(参数1)
参数1:写电流值,单位uA,支持0-20mA,对应的参数范围是0到20000,即0uA到20000uA
举例1:
函数dac_volt等效于dac_volt2dac + dac_write, 比如设置输出电压5V,那么我们就可以:
local value
dac_on()
dac_volt(5000)
函数dac_curr等效于dac_curr2dac + dac_write,比如设置电流输出10mA, 那么我们就可以:
local value
dac_on()
dac_curr(10000)
使用另外一个TOOL的4-20mA输入采集,实际电流效果:

使用台式万用表测量实际值

4、TVCC微型数控电源
函数write_tvcc_dac(参数1)
参数1:用于设置TVCC的DAC值,范围0 -127
函数write_tvcc_volt(参数1)
参数1:用于设置TVCC的电压,单位mV,范围1.2V - 5.0V,即1200mV - 5000mV
举例:
推荐使用函数write_tvcc_volt设置电压值,比如设置输出3.3V,那么就是write_tvcc_volt(3300)
5、信号发生器输出
函数lua_DacWaveStop()
无形参和返回值,直接调用即可,用于停止信号发生器输出。
函数lua_DacWaveStart(参数1, 参数2, 参数3)
参数1:波形数据缓冲
注意这个缓冲是每两个字节组成一个DAC值,值得范围是0-4095, 并且数值是以字符串形式填写才行,为了方便大家使用,需要使用函数dac_volt2dac做转换即可。
参数2:是输出一个波形数据点的速度
参数3:0表示无限输出,1表示输出一次。
举例:
比如周期性输出8个数值的波形,1123mV, 556mV, 2445mV, 5334mV, -3334mV, -5556mV,, 7890mV, 3231mV。
代码实现如下:
-- 定义一个空数组
local Volt = {1123, 556, 2445, 5334, -3334, -5556, 7890, 3231}-- 定义要赋值的数值
local DacValues = ""-- 使用 for 循环将数值赋值给数组的每个成员
for i = 1, #Volt doDacValues = DacValues..dac_volt2dac(Volt[i])
enddac_on()
dac_wave_start(DacValues,10000,0)
print("开始波形输出")

动态效果:

相关文章:
H7-TOOL的LUA小程序教程第14期:任意波形信号发生器,0-20mA输出和微型数控电源(2024-10-11,已更新)
LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用ÿ…...
Redis面试篇3
1、Redis的数据类型,以及每种数据类型的使用场景? 常见的几种数据类型和使用场景如下: 字符串(String):字符串类型是Redis最基本的数据结构,一个键最大能存储512MB。 使用场景:适用于计数器、分布式锁、缓…...
集成方案 | 借助 Microsoft Copilot for Sales 与 Docusign,加速销售流程!
加速协议信息提取,随时优化邮件内容~ 在当今信息爆炸的时代,销售人员掌握着丰富的数据资源。他们能够通过 CRM 平台、电子邮件、合同库以及其他多种记录系统,随时检索特定个人或组织的关键信息。这些数据对于销售沟通至关重要。然而&#x…...
k8s 1.28.2 集群部署 MinIO 分布式集群
文章目录 [toc]MinIO 介绍MinIO 生产硬件要求MinIO 存储要求MinIO 内存要求MinIO 网络要求MinIO 部署架构分布式 MinIO复制的 MinIO 部署 MinIO创建目录节点打标签创建 namespace创建 pv创建 MinIO配置 ingress问题记录通过代理服务器访问 MinIO 的 Object Browser 界面一直显示…...
HAL库常用的函数:
目录 HAL库: 1.GPIO常用函数: 1.HAL_GPIO_ReadPin( ) 2.HAL_GPIO_WritePin( ) 3.HAL_GPIO_TogglePin( ) 4.HAL_GPIO_EXTI_IRQHandler( ) 5.HAL_GPIO_EXTI_Callback( ) 2.UART常用函数: 1.HAL_U…...
如何捕捉行情爆发的前兆
在金融市场的激烈角逐中,每一次行情的爆发都是投资者获取丰厚回报的关键时刻。然而,如何识别并把握这些时刻,却是一门需要深厚金融专业知识和敏锐洞察力的艺术。今天,我们就来深入探讨行情爆发的初期信号,揭示那些能够…...
【万字长文】Word2Vec计算详解(一)CBOW模型
【万字长文】Word2Vec计算详解(一)CBOW模型 写在前面 本文用于记录本人学习NLP过程中,学习Word2Vec部分时的详细过程,本文与本人写的其他文章一样,旨在给出Word2Vec模型中的详细计算过程,包括每个模块的计…...
React Native源码学习
核心组件 基础组件:View、Text、Image、TextInput、ScrollView(性能没有FlatList好,因为它会一次性把子元素渲染出来)、StyleSheet交互组件:button列表视图:FlatList(优先渲染屏幕上可见的元素&…...
【计网】从零开始认识https协议 --- 保证安全的网络通信
在每个死胡同的尽头, 都有另一个维度的天空, 在无路可走时迫使你腾空而起, 那就是奇迹。 --- 廖一梅 --- 从零开始认识https协议 1 什么是https协议2 https通信方案2.1 只使用对称加密2.2 只使用非对称加密2.3 双方都使用非对称加密2.4 …...
Ubuntu安装 MySQL【亲测有效】
在Ubuntu上安装MySQL数据库的步骤通常包括更新软件包列表、安装MySQL服务器、启动并配置MySQL服务等。以下是一个详细的安装指南: 一、更新软件包列表 首先,打开终端并输入以下命令来更新Ubuntu的软件包列表: sudo apt update二、安装MySQ…...
Unity 从零开始搭建一套简单易用的UGUI小框架 扩展与优化篇(完结)
一个通用的UGUI小框架就算是写完了,下面是一步步的思考与优化过程 Unity 从零开始搭建一套简单易用的UGUI小框架 基础分析篇-CSDN博客 Unity 从零开始搭建一套简单易用的UGUI小框架 功能撰写与优化篇-CSDN博客 从使用者的角度来整理一下可能会发出的疑问 0. Panel…...
MySQL多表操作--外键约束多表关系
外键约束介绍 Mysql外键约束(foreign key)是表的一个特殊字段,常与主键约束一起使用。外键约束是一种用于维护两个表之间数据一致性的方法。它确保引用表中的每个值都存在于主表中的某个列中。外键约束通常用于实现数据库的参照完整性。对于两…...
【python入门到精通专题】8.装饰器
装饰器是python语言中的语法糖,可以通过装饰器对函数的功能进行拓展。 为什么需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye()两个函数。 def say_hello():print("hello!")def say_goodbye():print("hello!") # 此处应打印go…...
Halcon Blob分析提取小光斑
文章目录 算子complement 返回一个区域的补集select_region_point 选择包含指定像素的所有区域intensity 计算灰度值的均值和偏差 案例 算子 complement 返回一个区域的补集 complement(Region : RegionComplement : : )Region (输入对象):这指的是输入的一个或多…...
Lua
1.声明一个变量 只要赋值一个变量,就相当于新建了一个变量,默认全局变量,加一个local前缀之后,这个变量就变成了局部变量 a1//全局变量 local b2//局部变量2.nil类型 在Lua里没有被声明过的变量都是nil,nil是一种类…...
模型 总观效应
系列文章 分享 模型,了解更多👉 模型_思维模型目录。超越自我,洞见生命之渺小。 1 总观效应的呈现和应用 1.1 回首创业路,星辰大海的启示 陈浩是一名连续创业者,他的创业历程充满了起伏和挑战。在经历了几次失败后&a…...
【HarmonyOS NEXT】实现页面水印功能
关键词:鸿蒙、水印、Watermark、页面、触摸问题 注:本期文章同样适用 OpenHarmony 的开发 在app开发过程中时常会出现敏感信息页面,为保护信息安全和及时的数据追踪,通常会采用给页面加水印的形式,那么本期文章会介绍…...
selenium自动化测试之Junit
1. 常用的注解 将junit的索引添加到pom文件: <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId&…...
【氮化镓】基于氮化镓的互补逻辑集成电路[Nature Electronics]
【摘要】本文介绍了一种基于氮化镓(GaN)的互补金属氧化物半导体(CMOS)逻辑集成电路,该电路利用氧等离子体处理技术实现了增强型n沟道和p沟道GaN场效应晶体管的单片集成。研究者们展示了包括反相器、与非门、或非门和传输门在内的基本逻辑门,以及多级逻辑电路,如锁存器和…...
Linux之如何找回 root 密码?
1、启动系统,进入开界面,在界面中按“e"进入编辑界面 2、进入编辑界面,使用键盘上的上下键把光标往下移动,找到以”Linux16“开通内容所在的行数,在行的最后面输入:init/bin/sh 3、输入完成后&…...
Veil-Evasion项目演进与替代方案:从Veil-Evasion到Veil 3.0的迁移指南
Veil-Evasion项目演进与替代方案:从Veil-Evasion到Veil 3.0的迁移指南 【免费下载链接】Veil-Evasion Veil Evasion is no longer supported, use Veil 3.0! 项目地址: https://gitcode.com/gh_mirrors/ve/Veil-Evasion 🚨 重要通知:V…...
【稀缺首发】Midjourney等距视角工业设计协议(ISO/IEC 21827-2024兼容版):含12类建筑/机械/游戏资产等距规范库,仅限前500名开发者领取
更多请点击: https://intelliparadigm.com 第一章:等距视角工业设计协议的范式演进与ISO/IEC 21827-2024兼容性解析 等距视角工业设计协议(Isometric Industrial Design Protocol, IIDP)已从早期的CAD渲染辅助规范,逐…...
2026届学术党必备的降重复率神器实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能技术飞速发展着,学术研究和论文创作领域迎来了深刻变革,维普…...
从绿光到算法:深入解析PPG信号检测的核心技术与实践挑战
1. 绿光背后的秘密:为什么PPG传感器偏爱这种颜色 你可能已经注意到,市面上大多数智能手表的心率监测功能都会发出幽幽的绿光。这可不是为了好看——绿光在PPG(光电容积脉搏波)技术中扮演着关键角色。让我用一个简单的比喻来解释&…...
Beyond Compare密钥生成终极指南:三步解锁专业版完整功能
Beyond Compare密钥生成终极指南:三步解锁专业版完整功能 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare试用期结束而烦恼?想要永久解锁这款强大的…...
自建个人数字图书馆:基于Go+Vue+SQLite的Alexandria部署与优化指南
1. 项目概述:一个现代数字图书馆的诞生如果你和我一样,是个重度数字内容爱好者,硬盘里塞满了从各种渠道收集的电子书、论文、技术文档、漫画,甚至是整理好的网页存档,那你一定体会过那种“找东西”的痛苦。文件散落在不…...
终极解决方案:让苹果触控板在Windows上获得原生级精准触控体验
终极解决方案:让苹果触控板在Windows上获得原生级精准触控体验 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-tou…...
Live Server 5分钟快速上手:打造高效前端实时预览环境
Live Server 5分钟快速上手:打造高效前端实时预览环境 【免费下载链接】vscode-live-server Launch a development local Server with live reload feature for static & dynamic pages. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-live-server …...
【M1 Mac实战】MATLAB R2021b 安装与优化全攻略
1. M1 Mac安装MATLAB R2021b前的准备工作 第一次在M1芯片的Mac上安装MATLAB R2021b时,我遇到了不少坑。这里分享下必须做好的几项准备工作,能帮你节省至少2小时的折腾时间。 首先确认你的系统版本。实测在macOS Monterey(12.0)到V…...
3个步骤让你的外文漫画秒变中文:BallonsTranslator零门槛入门指南
3个步骤让你的外文漫画秒变中文:BallonsTranslator零门槛入门指南 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地…...
