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

空压机网站开发公司资源搜索

空压机网站开发公司,资源搜索,汝城网站建设公司,小程序开发 上海硬件资源 1.ESP32 开发板 2. LED灯(-接到GND, 通过10K电阻接到PIN4) 3. 触摸按键(接到PIN32,对应触摸通道9) 预期效果: 1. 点动模式:小于1s的触摸,LED交替亮灭 2. 长按模式:大于1s的触摸,…

硬件资源

1.ESP32 开发板

2. LED灯(-接到GND, +通过10K电阻接到PIN4)

3. 触摸按键(接到PIN32,对应触摸通道9)

预期效果:

1. 点动模式:小于1s的触摸,LED交替亮灭

2. 长按模式:大于1s的触摸,LED快速闪烁(100ms)

3. 带防抖

代码如下

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "driver/touch_pad.h" // 添加触摸传感器头文件
#include "esp_log.h"#define BLINK_GPIO 4
#define TOUCH_THRESHOLD 500   // 触摸阈值
#define DEBOUNCE_TIME 50      // 防抖时间,单位ms
#define SHORT_PRESS_TIME 1000 // 短按时间阈值,单位ms// 添加LED控制状态变量
static bool led_state = false;
static bool led_blink_mode = false;// 添加触摸按键读取任务
void task_read_touch(void *pvParameter)
{uint16_t touch_value;TickType_t press_start = 0;bool is_touching = false;uint16_t last_touch_value = TOUCH_THRESHOLD;TickType_t last_change_time = 0;while (1){touch_pad_read(TOUCH_PAD_NUM9, &touch_value);TickType_t current_time = xTaskGetTickCount();// 防抖处理if (abs(touch_value - last_touch_value) > 50 &&(current_time - last_change_time) > pdMS_TO_TICKS(DEBOUNCE_TIME)){// 检测触摸开始if (!is_touching && touch_value < TOUCH_THRESHOLD){is_touching = true;press_start = current_time;last_change_time = current_time;ESP_LOGI("TOUCH", "Touch start, value: %d", touch_value);}// 检测触摸结束else if (is_touching && touch_value >= TOUCH_THRESHOLD){is_touching = false;TickType_t press_duration = current_time - press_start;last_change_time = current_time;// 短按(小于1秒)if (press_duration < pdMS_TO_TICKS(SHORT_PRESS_TIME)){led_state = !led_state;gpio_set_level(BLINK_GPIO, led_state);ESP_LOGI("TOUCH", "Short press detected! LED: %d", led_state);}else{// 长按结束后关闭LEDled_state = false;led_blink_mode = false;gpio_set_level(BLINK_GPIO, 0);ESP_LOGI("TOUCH", "Long press ended, LED off");}}}// 更新上一次的触摸值last_touch_value = touch_value;// 长按检测(超过1秒)并处理LED闪烁if (is_touching && (current_time - press_start) >= pdMS_TO_TICKS(SHORT_PRESS_TIME)){led_state = !led_state;gpio_set_level(BLINK_GPIO, led_state);ESP_LOGI("TOUCH", "Long press - LED blinking: %d", led_state);vTaskDelay(pdMS_TO_TICKS(100));}else{vTaskDelay(pdMS_TO_TICKS(20)); // 提高采样频率}}
}void app_main(void)
{// 配置 GPIOgpio_config_t io_conf_led ={.pin_bit_mask = (1ULL << BLINK_GPIO),.mode = GPIO_MODE_OUTPUT,.pull_up_en = GPIO_PULLUP_DISABLE,.pull_down_en = GPIO_PULLDOWN_DISABLE,.intr_type = GPIO_INTR_DISABLE};gpio_config(&io_conf_led);// 初始化触摸传感器touch_pad_init();touch_pad_set_voltage(TOUCH_HVOLT_2V7, TOUCH_LVOLT_0V5, TOUCH_HVOLT_ATTEN_1V);touch_pad_config(TOUCH_PAD_NUM9, 0); // GPIO15 对应 TOUCH_PAD_NUM9// 等待触摸传感器稳定vTaskDelay(pdMS_TO_TICKS(100));// 创建任务xTaskCreate(&task_read_touch, "read_touch", 2048, NULL, 5, NULL);
}

http://www.dtcms.com/wzjs/121826.html

相关文章:

  • 昆明做网站魄罗科技关键词快速上首页排名
  • 做直播网站需要什么百度seo快速排名优化
  • 德江网站建设兰州seo网站建设
  • 易语言做网站登录器新闻摘抄
  • 海天建设集团公司网站ciliba磁力搜索引擎
  • 珠海十大网站建设公司百度推广首页
  • 有哪些网站可以做按摩广告网络营销师资格证报名
  • 做销售如何在网站上搜集资料软文代发
  • vps主机访问网站电商网站平台搭建
  • 网站建设 引导郑州今天刚刚发生的新闻
  • 响应式网站建设的应用场景百度怎么精准搜关键词
  • 初创业公司做网站小时seo百度关键词点击器
  • 有关网站空间不正确的说法是优化关键词首页排行榜
  • 在国外做外国的成人网站合法吗google海外版
  • 公司展厅设计公司哪家好网站优化排名方法有哪些
  • 宾馆网站制作上海百度seo牛巨微
  • 企业网站建设要求百度seo竞价推广是什么
  • pc网站增加手机站如何打百度人工电话
  • 微网站制作工具有哪些数据分析培训
  • wordpress 数据图片存在哪seo教程自学入门教材
  • 永城做网站模板网站免费
  • 额尔古纳做网站网店推广常用的方法
  • 局域网视频网站开发百度推广关键词和创意
  • 自己做婚恋网站seo的形式有哪些
  • 东莞购物网站建设个人推广网站
  • 广州网站开发设计平台株洲网络推广
  • 专业的上海网站建设公司排名怎样优化网站关键词排名靠前
  • 个人网站域名备案全球最牛的搜索引擎
  • 云主机如何做网站中国十大关键词
  • 免费网站空间和域名课程培训