查看: 398|回复: 10

[未解决] 舵机不听使唤

[复制链接]
发表于 2019-11-21 22:35 | 显示全部楼层 |阅读模式
5金币
本帖最后由 1316222570sjj 于 2019-11-24 06:17 编辑

用按键  来控制,舵机转动角度。   但小弟发现,舵机没有想象中那么好使。 很多时候,按键都按到手抽搐,舵机也还是没有动作,要重启板子,兴许就感应到按键,旋转。
难道这是舵机的通病么,或者小弟的代码一定有毛病呢,哎,谁能帮帮小弟呀。



#include <Servo.h>
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {  
{'D','#','0','*'},
{'C','9','8','7'},
{'B','6','5','4'},
{'A','3','2','1'}
};
byte rowPins[ROWS] = {9,8,7,6};
byte colPins[COLS] = {13,12,11,10};
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
char customKey;

Servo myservo2; //创建一个舵机控制对象
Servo myservo3; //创建一个舵机控制对象

int pos2,pos3 = 0; // 该变量用与存储舵机角度位置
void setup()
{
    Serial.begin(9600);
  myservo2.attach(2); // 该舵机由arduino第2脚控制
   myservo3.attach(3); // 该舵机由arduino第3脚控制

}
void loop()
{


customKey = customKeypad.getKey();


if(customKey=='4' )
{
pos2=pos2+24;

        myservo2.write(pos2); // 指定舵机转向的角度


          delay(5); // 等待5ms让舵机到达指定位置
}
if(customKey=='5' )
{
    pos2=pos2-24;

       myservo2.write(pos2); // 指定舵机转向的角度


          delay(5); // 等待5ms让舵机到达指定位置

}




}

发表于 2019-11-22 10:54 | 显示全部楼层
loop()里第一句前加一句:

customKey = '0';
 楼主| 发表于 2019-11-24 06:16 | 显示全部楼层
上海老王 发表于 2019-11-22 10:54
loop()里第一句前加一句:

customKey = '0';

效果不大
 楼主| 发表于 2019-11-24 07:35 | 显示全部楼层
本帖最后由 1316222570sjj 于 2019-11-24 19:48 编辑
上海老王 发表于 2019-11-22 10:54
loop()里第一句前加一句:

customKey = '0';

小弟是不相信自己,描述的,很清楚。 而相信大神的方法,一定有高见识。
发表于 2019-11-24 20:15 | 显示全部楼层
问题出在键盘上,不是接触不良就是接错了.程序虽然没错但应在pos2=pos2+24; 下加if (pos2 >= 180) pos2 = 180; 在 pos2=pos2-24; 下加if (pos2 <= 0) pos2 = 0;我没有你那样的键盘,是在端口7用短接线分别对端口10和端口11进行短接来试程序的.
 楼主| 发表于 2019-11-24 20:23 | 显示全部楼层
本帖最后由 1316222570sjj 于 2019-11-24 20:26 编辑
lwq1947 发表于 2019-11-24 20:15
问题出在键盘上,不是接触不良就是接错了.程序虽然没错但应在pos2=pos2+24; 下加if (pos2 >= 180) pos2 = 18 ...

大神晚上好,大神也看到上面的代码,是控制一个舵机,按键操作起来,速度其实还可以。现在小弟,碰到的问题是,如控制两个舵机,  就会不灵敏,舵机没反应。大神若不嫌弃,能否赐教呢。
 楼主| 发表于 2019-11-24 20:38 | 显示全部楼层
lwq1947 发表于 2019-11-24 20:15
问题出在键盘上,不是接触不良就是接错了.程序虽然没错但应在pos2=pos2+24; 下加if (pos2 >= 180) pos2 = 18 ...

感谢 大神,费神,测试,小弟,这烂摊子的程序,拜谢了。我一定按照大神的方法,改动一下
发表于 2019-11-24 20:42 | 显示全部楼层
本帖最后由 lwq1947 于 2019-11-24 20:43 编辑

舵机改用外接电源供电.
 楼主| 发表于 2019-11-24 21:02 | 显示全部楼层
lwq1947 发表于 2019-11-24 20:42
舵机改用外接电源供电.

好的了解
发表于 2019-11-27 14:39 | 显示全部楼层
弱弱地问一句:你用的什么板?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
求大佬帮助
求大佬帮助
有没有大佬能帮我把这个转化成c语言的啊,萌新完全看不懂 顺便弱弱的问一句如何将多个
VSCode写Arduino提示无法打开源文件"avr/pgmspace.h"
VSCode写Arduino提示无法
整个程序就这点内容,只是做个测试。 Ctrl+Alt+U的上传是没有问题。但是这里有个错误
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表