找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1729|回复: 3
打印 上一主题 下一主题
收起左侧

ps2手柄arduino nano控制舵机,修改delay时间为什么会导致程序混乱?

[复制链接]
跳转到指定楼层
楼主
ID:683191 发表于 2020-1-13 12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. #include <Servo.h>
  2. #include "PS2X_lib.h"

  3. Servo servo_2;
  4. Servo servo_3;
  5. Servo servo_4;
  6. Servo servo_5;
  7. Servo servo_6;
  8. Servo servo_7;
  9. Servo servo_8;
  10. Servo servo_9;

  11. void niutou1() {
  12.   servo_2.write(30);
  13.   delay(0);
  14.   servo_3.write(120);
  15.   delay(0);
  16.   servo_4.write(120);
  17.   delay(0);
  18.   servo_5.write(30);
  19.   delay(100);
  20.   servo_2.write(60);
  21.   delay(0);
  22.   servo_3.write(150);
  23.   delay(0);
  24.   servo_4.write(150);
  25.   delay(0);
  26.   servo_5.write(60);
  27.   delay(100);
  28. }

  29. void niutou() {
  30.   servo_2.write(45);
  31.   delay(50);
  32.   servo_3.write(135);
  33.   delay(50);
  34.   servo_4.write(135);
  35.   delay(50);
  36.   servo_5.write(45);
  37.   delay(50);
  38.   servo_6.write(160);
  39.   delay(0);
  40.   servo_7.write(160);
  41.   delay(0);
  42.   servo_8.write(150);
  43.   delay(0);
  44.   servo_9.write(150);
  45.   delay(50);
  46.   servo_6.write(110);
  47.   delay(0);
  48.   servo_7.write(110);
  49.   delay(0);
  50.   for (int j = 1; j <= <font color="#000000">5</font>; j = j + (1)) {
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:282850 发表于 2020-1-13 14:27 | 只看该作者
SERVO本来是受时间控制的,20ms中占高电平的时长驱动SERVO到相应角度,这个某占空比的脉冲一般是定时器作用下产生的PWM。另外不是一个脉冲SERVO就能旋转到位,一般考虑几个脉冲重复发送过去。不正确的delay估计会造成定时器溢出中断。
回复

使用道具 举报

板凳
ID:275826 发表于 2020-1-13 17:43 | 只看该作者
因为都使用了定时器0
回复

使用道具 举报

地板
ID:124627 发表于 2020-1-17 09:55 | 只看该作者
tyrl800 发表于 2020-1-13 17:43
因为都使用了定时器0

你错了,舵机库是用定时器1,延时函数用的是定时器0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表