当前位置: 首页 > news >正文

感知节点@7@ ESP32+arduino+ 第五个程序FreeRTOS 上 增加一个新任务ADC任务

思路:

  1、提出AI得到初始化+Loop代码

  2、将初始化+Loop代码,修改为任务函数

  3、为此任务函数,创建一个新任务,并执行。

 

  1、提问AI: ESP32 ADC arduino 编程,使用ADC读取输入两路电压信号,范围0-3.3V

给出代码:

// 定义ADC引脚(使用ADC1通道,避免与Wi-Fi/BT冲突)
const int adcPin1 = 34;  // ADC1_CH6 (GPIO34)
const int adcPin2 = 35;  // ADC1_CH7 (GPIO35)void setup() {Serial.begin(115200);analogReadResolution(12);  // 设置12位分辨率// 配置衰减范围为ADC_11db(支持0-3.6V)
  analogSetPinAttenuation(adcPin1, ADC_11db);analogSetPinAttenuation(adcPin2, ADC_11db);
}void loop() {// 同步读取两个通道int rawValue1 = analogRead(adcPin1);int rawValue2 = analogRead(adcPin2);// 转换为电压值float voltage1 = (rawValue1 * 3.3) / 4095.0;float voltage2 = (rawValue2 * 3.3) / 4095.0;// 输出结果Serial.print("ADC1_CH6 (GPIO34): ");Serial.print(rawValue1);Serial.print(" (");Serial.print(voltage1, 2);Serial.println("V)");Serial.print("ADC1_CH7 (GPIO35): ");Serial.print(rawValue2);Serial.print(" (");Serial.print(voltage2, 2);Serial.println("V)");delay(500);  // 采样间隔
}
View Code

 

2、将初始化+Loop代码,修改为任务函数

继续添加消息队列,实现task3与串口通信任务间通信。

// 定义ADC引脚(使用ADC1通道,避免与Wi-Fi/BT冲突)
const int adcPin1 = 34;  // ADC1_CH6 (GPIO34)
const int adcPin2 = 35;  // ADC1_CH7 (GPIO35)
void task3(void *pt){//Serial.begin(115200);analogReadResolution(12);  // 设置12位分辨率// 配置衰减范围为ADC_11db(支持0-3.6V)
  analogSetPinAttenuation(adcPin1, ADC_11db);analogSetPinAttenuation(adcPin2, ADC_11db);while(1){// 同步读取两个通道int rawValue1 = analogRead(adcPin1);int rawValue2 = analogRead(adcPin2);// 转换为电压值float voltage1 = (rawValue1 * 3.3) / 4095.0;float voltage2 = (rawValue2 * 3.3) / 4095.0;// 输出结果// Serial.print("ADC1_CH6 (GPIO34): ");// Serial.print(rawValue1);// Serial.print(" (");// Serial.print(voltage1, 2);// Serial.println("V)");// Serial.print("ADC1_CH7 (GPIO35): ");// Serial.print(rawValue2);// Serial.print(" (");// Serial.print(voltage2, 2);// Serial.println("V)");
  vTaskDelay(500);//delay(500);  
  }
}

  3、为此任务函数,创建一个新任务,并执行。

  if (xTaskCreate(task3,"ADC",1024,NULL,1,NULL) == pdPASS)Serial.println("Task3 Created.");
http://www.hskmm.com/?act=detail&tid=32530

相关文章:

  • 2025年10月切削液厂家 TOP 企业品牌推荐排行榜,全合成切削液,半合成切削液,微乳切削液推荐这十家公司!
  • 普源精电RIGOL DS2202A示波器保存波形到CSV文件过慢解决方法:保存为WFM格式、通过LAN接口使用SCPI+PyVISA控制
  • 动手学深度学习——引言
  • CF1989E Distance to Different
  • AngularJS:构建更智能的Web应用框架
  • 给档案装上“智慧大脑”:文档抽取技术的四大赋能场景
  • P11816QOJ1250 Pionki 轮廓线DP
  • linux系统scatter/gather I/O技术
  • PostgreSQL 为什么不选择 B+ 树索引? - Lafite
  • Joeys shell
  • Redis 集群从部署到可视化管理全流程(超详细实战指南)
  • 什么是BPM流程自动化?从“财务报销”入手,一文读懂企业效率引擎
  • 软件工程学习日志2025.10.16
  • P1072 [NOIP 2009 提高组] Hankson 的趣味题
  • 25w41a快照测评:鹦鹉螺成精了?长矛教你戳穿末影人!
  • Day15-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\classlei
  • Day14
  • window电脑开启hyperV虚拟化功能后导致本地服务端口被占用问题处理方案
  • RAG检索质量差?这5种分块策略帮你解决70%的问题
  • 初识pytorch:网络骨架中的填充之各种层
  • Day5字符型
  • 本地链路地址
  • 体育
  • Meta推出Agent Learning via Early Experience,推动语言代理自主学习新范式
  • Fiddler And LINQ - 特洛伊
  • 计算机视觉在自动化质检中的应用
  • 动态加速中优化失败路径反馈的方法
  • 铜价冲击下,如何“锁住”母排利润?
  • 前端快速开发工具推荐与实战 让开发速度提升 3 倍的完整工具链
  • js代码、js文件混淆、加密