查看: 922|回复: 10

[未解决] 舵机不听使唤

[复制链接]
  • TA的每日心情
    奋斗
    2019-12-11 10:06
  • 签到天数: 110 天

    [LV.6]常住居民II

    发表于 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让舵机到达指定位置

    }




    }

  • TA的每日心情
    开心
    2020-7-2 00:04
  • 签到天数: 1178 天

    [LV.10]以坛为家III

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

    customKey = '0';
  • TA的每日心情
    奋斗
    2019-12-11 10:06
  • 签到天数: 110 天

    [LV.6]常住居民II

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

    customKey = '0';

    效果不大
  • TA的每日心情
    奋斗
    2019-12-11 10:06
  • 签到天数: 110 天

    [LV.6]常住居民II

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

    customKey = '0';

    小弟是不相信自己,描述的,很清楚。 而相信大神的方法,一定有高见识。
  • TA的每日心情
    开心
    2020-7-2 05:15
  • 签到天数: 606 天

    [LV.9]以坛为家II

    发表于 2019-11-24 20:15 | 显示全部楼层
    问题出在键盘上,不是接触不良就是接错了.程序虽然没错但应在pos2=pos2+24; 下加if (pos2 >= 180) pos2 = 180; 在 pos2=pos2-24; 下加if (pos2 <= 0) pos2 = 0;我没有你那样的键盘,是在端口7用短接线分别对端口10和端口11进行短接来试程序的.
  • TA的每日心情
    奋斗
    2019-12-11 10:06
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 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 ...

    大神晚上好,大神也看到上面的代码,是控制一个舵机,按键操作起来,速度其实还可以。现在小弟,碰到的问题是,如控制两个舵机,  就会不灵敏,舵机没反应。大神若不嫌弃,能否赐教呢。
  • TA的每日心情
    奋斗
    2019-12-11 10:06
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2019-11-24 20:38 | 显示全部楼层
    lwq1947 发表于 2019-11-24 20:15
    问题出在键盘上,不是接触不良就是接错了.程序虽然没错但应在pos2=pos2+24; 下加if (pos2 >= 180) pos2 = 18 ...

    感谢 大神,费神,测试,小弟,这烂摊子的程序,拜谢了。我一定按照大神的方法,改动一下
  • TA的每日心情
    开心
    2020-7-2 05:15
  • 签到天数: 606 天

    [LV.9]以坛为家II

    发表于 2019-11-24 20:42 | 显示全部楼层
    本帖最后由 lwq1947 于 2019-11-24 20:43 编辑

    舵机改用外接电源供电.
  • TA的每日心情
    奋斗
    2019-12-11 10:06
  • 签到天数: 110 天

    [LV.6]常住居民II

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

    好的了解
  • TA的每日心情
    开心
    2020-7-2 00:04
  • 签到天数: 1178 天

    [LV.10]以坛为家III

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

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    Arduino如何输出ASCii 的控制字符串ENQ为05H
    Arduino如何输出ASCii 的
    程序段 void loop() { Serial.print("ENQ1234"); } Arduino会转换成ASCii码发送
    点阵时钟 验证报错 求大神帮个忙
    点阵时钟 验证报错 求大神
    智慧食堂,让吃饭有着不一样的体验!
    智慧食堂,让吃饭有着不一
    以后凭脸吃饭啦!不在乎颜值、不管是谁,小编告诉你:只要“脸”就可以! “吃饭5分
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表