Arduino
仁泉之子
无简述
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LDC1612电感涡流芯片测试评估软硬件
使用时需要先把线圈放在喷嘴附近, 在喷嘴上方2mm左右的位置, 然后移动热床, 将热床放在距离喷嘴1mm左右位置, 将此时的读数作为触发阈值, 也就是接近开关的功能, 当传感器读数大于触发阈值时就触发输出限位, 当使用喷嘴限位时, 在读数大于触发阈值且数据持续上升时, 直到数据不再增加或略微减小时, 就认为喷嘴接触了热床, 此时触发输出限位。模式控制就是可以通过一个IO来控制模块当前是使用喷嘴触发还是使用无接触触发, 这样可以实现在在网床和调平时使用无接触限位, 在Z归零时使用喷嘴限位。原创 2025-09-16 14:39:10 · 405 阅读 · 0 评论 -
stc32单片机实现串口2M波特率满带宽传输
单片机高速串口通信 串口无阻塞数据收发 满带宽通信原创 2025-04-21 17:30:06 · 454 阅读 · 0 评论 -
C51实现串口1环形FIFO无阻塞数据发送和接收 并解析自定义协议
串口的发送和接收数据,采用查询法, 会阻塞代码的运行, 效率比较低, 采用环形FIFO来缓冲发送和接收的数据, 再配合中断自动发送和接收, 效率会提升极大, 能把波特率带宽跑满。原创 2023-12-25 11:15:11 · 1375 阅读 · 4 评论 -
stc单片机实现定时器0高效率获取开机的微秒数及实现多任务执行无阻塞延时
stc单片机实现定时器0高效率获取开机的微秒数及实现多任务执行无阻塞延时, 类js定时器, 使用简单, 无心智负担原创 2023-12-19 10:59:32 · 879 阅读 · 0 评论 -
arduino实现一个无阻塞延时库JSTime
受javascript的 setTimeout 和 setInterval启发 实现的延时定时器先上一段使用代码看看如何使用:#include "cxg_JSTime.h"#include <Arduino.h>static JSTime jsTime;void setup() { Serial.begin(115200); //每隔1s执行一次 jsTime.setInterval( []() { Serial.print("set原创 2020-10-24 22:54:14 · 3371 阅读 · 2 评论 -
锂电池串联放电并联充电自动转换电路
直接通过5v充电器给串联锂电池组充电可以大大提高充电器的利用率, 毕竟现在手机充电器都有, 再去买个专用的锂电池平衡充电器又感觉没啥必要,一般给串联锂电池组充电的方案就是通过升压模块将5v升压后再充电,感觉有弊端:1. 一般没有平衡充电功能,造成过冲,可能有损电池2.升压型充电发热量巨大,连热熔胶都能融化,而且充电电流也不大, 充电太慢了.我就琢磨着实现一个锂电池组放电时候是串联放电的, 而充电时是并联充电的模块, 经过改进实现了这个小模块, 用了一阶段, 感觉还可以,没啥大问题.这是两节电池的原创 2022-01-17 19:35:06 · 17095 阅读 · 17 评论 -
arduino实现一个自定义通信协议解析库
在做遥控小车时, 手柄会发送一串二进制数据到小车上, 免不了进行自定义协议的解析, 有时仅仅发送三个字节解析起来却比较麻烦, 而且可靠性也不行。为了不需要每次都进行晦涩的复杂的协议解析,这个库就此诞生了。该库支持arduino uno, stm32, esp32为了实现简单协议定义为:(帧头)+实际数据+数据长度(一个字节)+(帧尾)该库的作用是实现从一串杂乱无章的字节数组中找出符合自定义通信协议包裹的 ”实际数据“部分取出来。demo:#include <Arduino.h>#i.原创 2021-02-26 16:21:42 · 3237 阅读 · 7 评论 -
arduino实现一个缓动动画库CxgAnimate
在javascript里有一些动画库,在c和单片机领域内没见过谁做个呼吸灯效果能抽象出,这个过程其实是一个动画。受js动画库animejs启发https://www.animejs.cn/documentation/#gridStaggering, 开发了这个缓动动画库。缓动动画曲线参考自https://www.xuanfengge.com/easeing/easeing/一切缓慢改变的动画过程,如呼吸灯渐变,舵机缓慢移动,oled屏幕字符移动等都可以使用动画的思想去实现。该库仅提供开拓思路的作用。动画原创 2021-01-29 20:47:19 · 681 阅读 · 0 评论 -
arduino实现类似javascript的事件总线EventBus
我也不知道我写的这个库在arduino编程中有什么用,显得多此一举。不过事件总线模式在javascript中还是非常有用的。demo:#include <Arduino.h>#include "cxg_EventBus.h"//支持arduino uno, stm32, esp32CxgEventBus eventBus;void setup() { Serial.begin(115200); eventBus.on( "test1", [](vo.原创 2021-01-25 22:53:26 · 317 阅读 · 1 评论 -
arduino封装了一个无线串口模块LC12S的操作库
前一段时间接触到一个比较好用的2.4G无线串口通信模块LC12S,在淘宝上仅四五块钱,收发一体,比较好用.我照着技术文档封装了这个设置操作的库demo代码:#include <Arduino.h>//依赖我的JSTime库#include "cxg_JSTime.h"#include "cxg_lc12s.h"//该库支持esp32, stm32, arduino uno等//注意该模块仅支持3.3v,5v肯定会烧毁, 用在arduino un...原创 2021-01-23 18:16:04 · 1256 阅读 · 1 评论 -
arduino实现一个按键检测库
参照OneButton库, 我实现了一个自己的按键检测库, 实现了按键的按下,抬起,长按,双击功能, 代码简洁明了。目前只在esp32上测试过,在stm32, arduino uno上应该也没问题. demo代码:#include <Arduino.h>#include "cxg_Btn.h"static int btn1_pin = 39;static CxgBtn btn1(btn1_pin, false);void setup() { Serial.begi.原创 2021-01-22 20:03:45 · 2729 阅读 · 1 评论 -
arduino实现一个简单的NEC红外遥控解码库
最近闲着写了一个arduino上的红外遥控解析代码库,该库代码清晰易懂,调试方便,在stm32f103c8t6, esp32, arduino uno上测试通过。cxg_IRremote.h/*NEC红外遥控编码 *不使用额外的定时来进行时间测量, 仅使用1个支持外部中断的即可。 *原理, 利用上升沿中断记录两次上升沿时间间隔来判断 *引导码, 重复码, 数字1和数字0 */#ifndef CXG_IRremote_H#define CXG_IRremote_H#include..原创 2021-01-16 15:34:06 · 2114 阅读 · 2 评论 -
PlatformIO编译arduino提示gbk编码错误
用vscode上的PlatformIO开发arduino,最近总是显示报错,UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 706: illegal multibyte sequence经过一番验证,是代码中写的中文注释引起的问题,但是死活找不出是哪个注释写的不对引起的。虽然我的文件编码是utf-8,但是python在读取时采用的是gbk编码读取的,于是就导致了这个注释也能影响编译的诡异bug。于是点.原创 2020-09-30 11:54:12 · 1043 阅读 · 0 评论 -
在vscode中开发arduino编译巨慢解决办法
每次在vscode中, 编译Arduino花费的时间巨长,等的好烦,仔细一看每次在Arduino 输出控制台上会出现一个警告[Warning] Output path is not specified. Unable to reuse previously compiled files. Upload could be slow. See README.只需在.vscode ->...原创 2019-05-27 09:20:19 · 18894 阅读 · 9 评论
分享