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

【嵌入式原理设计】实验五:远程控制翻盖设计

目录

一、实验目的 

二、实验环境

三、实验内容        

四、实验记录及处理

五、实验小结

六、成果文件提取链接

一、实验目的 

        熟悉和掌握舵机及串口控制方式

二、实验环境

        Win10+ESP32实验开发板

三、实验内容        

        1、熟悉舵机的控制方式;

        2、用串口发送指令,让舵机旋转到指定的角度(自行设计控制指令和旋转角度)

        3、(选做)编写程序,可以切换手动和自动运行两种方式:自动模式下,舵机来回摆动;手动模式下,舵机按指令转动。

四、实验记录及处理

  1. 器件连接

设备名称

设备管脚

ESP32管脚

舵机

G16

G16

  1. 实物连接图(拍照,控制图片大小,能看清即可)及程序运行结果描述

输入1时,进入手动模式时,显示可以输入A-F任意一个字母对应相应度数。

       当输入A时,舵机转动到30度。

 部分代码如下,完整代码请查看网盘

void setup() {
  Serial.begin(115200);
  ledcSetup(channel, freq, resolution);
  ledcAttachPin(servopin, channel);
  Serial.println("servu=o_seral_simple ready" ) ;
}
void loop() {
  if(menu_1>=1){
    menu();
    menu_1=menu_1-1;
  }
  if (Serial.available() > 0) {
    user_input = Serial.read() - '0'; // 读取用户输入并转换为数字
    while(Serial.available() > 0) Serial.read(); // 清空缓冲区
    flag = user_input; // 根据输入设置flag
    model_choose(flag); // 根据flag执行相应模式
  }
}
//自动模式
void model_automatic() {
  Serial.println("自动模式: 舵机会在0-180度之间往复");
  for (int d = 0; d <= 180; d += 10) {
    ledcWrite(channel, calculatePWM(d));
    delay(1000);
  }
  for (int d = 180; d >= 0; d -= 10) {
    ledcWrite(channel, calculatePWM(d));
    delay(1000);
  }
  Serial.println("自动模式运行结束");
}
//用户输入选择
void model_user_choose() {
  Serial.println("手动模式: 请输入A-F中的其中一个字母");
  while(Serial.available() == 0) {} // 等待用户输入
  val = Serial.read();
  while(Serial.available() > 0) Serial.read(); // 清空缓冲区
  int angle = 0;
  switch (val) {
    case 'A': angle = 30; break;
    case 'B': angle = 60; break;
    case 'C': angle = 90; break;
    case 'D': angle = 120; break;
    case 'E': angle = 150; break;
    case 'F': angle = 0; break;
    
    default: Serial.println("无效输入"); return;
  }
  ledcWrite(channel, calculatePWM(angle));
  Serial.printf("舵机转动到 %d 度\n", angle);
}

五、实验小结

PWM(脉宽调制)控制:利用ledcSetup()和ledcAttachPin()函数,在特定的通道上配置并激活PWM,以精确调控舵机的旋转角度。PWM信号的周期设定为20毫秒,其中高电平占比决定了180度舵机从0°至180°的旋转范围。

循环控制:在自动操作模式下,通过for循环机制,实现舵机在0°至180°区间内的连续往复运动。

延时操作:采用delay()函数,在舵机的每次移动指令间插入暂停时段,以确保动作间的平稳过渡。

六、成果文件提取链接

链接: https://pan.baidu.com/s/14AjaJ6nyJAsIDe5WP5vfFQ?pwd=jiis 提取码: jiis

相关文章:

  • 1998-2022年各地级市第一产业占GDP比重数据/(全市)
  • 某住宅小区地下车库安科瑞的新能源汽车充电桩的配电设计与应用方案
  • 从实测看声网:用技术重构直播,为电商创业赋能
  • PhotoShop学习01
  • 自定义mybatis拦截器,在springboot项目中不起作用的解决方法
  • 计算机毕业设计SpringBoot+Vue.js电影评论网站系统(源码+文档+PPT+讲解)
  • python学习四
  • 玻璃非球面加工:倚光科技助力高精度光学元件制造
  • 跟着AI学vue第十二章
  • IIC基础知识(集成电路总线)
  • 自动化办公|xlwings与pandas交互
  • 《从Kokoro看开源语音模型的“无限可能”》:此文为AI自动生成
  • ros1 noetic 程序编译总是报节点程序找不到问题
  • 国高材服务:新能源汽车连接器电气腐蚀性能评价
  • C++ Primer 再探迭代器
  • DeepEP:开源通信库的高效专家并行计算解决方案
  • Deepseek的缺陷
  • 在docker中运行R容器,并在Windows下的vscode中使用该R
  • win11本地部署deepseek大模型(安装ollama+docker+open-webui)最终实现自己的项目可通过API调用投喂数据后的模型
  • kiln微调大模型-使用deepseek R1去训练一个你的具备推理能力的chatGPT 4o
  • 深圳拟出让3宗居住用地,共计用地面积6.77公顷
  • 【社论】公平有序竞争,外卖行业才能多赢
  • 马上评|让查重回归促进学术规范的本意
  • 巴方:印度上周导弹袭击造成至少40名平民死亡
  • 广东早熟荔枝“抢滩”上海,向长三角消费者喊话:包甜,管够
  • 75万买299元路由器后续:重庆市纪委、财政局、教委联合调查