查看: 4858|回复: 14

[未解决] 如何写程序让舵机固定角度啊,为啥他老是自动转回去啊

[复制链接]

该用户从未签到

发表于 2019-5-5 21:59 | 显示全部楼层 |阅读模式
想让舵机只转一次,就是固定到某一个角度不要立马转回去。如何实现呢 ?以下是我的程序
#include <Servo.h>    // 声明调用Servo.h库
#include <dht11.h>
#define DHT11PIN 5
dht11 DHT11;
Servo myservo; // 创建一个舵机对象
int pos=0;        // 变量pos用来存储舵机位置
int i=0;
void setup()
{
myservo.attach(9);  // 将引脚9上的舵机与声明的舵机对象连接起来
Serial.begin(9600);
}
void loop() {
delay(1000);
  int chk = DHT11.read(DHT11PIN);
  Serial.print("当前湿度: ");//湿度
  Serial.print(DHT11.humidity);
  Serial.println(" %RH ");
  Serial.print("当前温度: ");//温度
  Serial.print(DHT11.temperature);
  Serial.println(" ℃ ");
  Serial.println("  ");
if(DHT11.temperature>=25)
  {
     //for(pos = 0; pos < 180; pos+= 1)  // 舵机从0°转到180°,每次增加1°
         
      myservo.write(180);           // 给舵机写入角度   
      delay(15);   // 延时15ms让舵机转到指定位置
     
     
  }
    if(DHT11.temperature<=20){
       //for(pos = 180; pos>=0; pos-=1)    // 舵机从180°转回到0°,每次减小1°                        
       myservo.write(0);        // 写角度到舵机   
       delay(15);                 // 延时15ms让舵机转到指定位置
      
}

  }


该用户从未签到

 楼主| 发表于 2019-5-5 22:00 | 显示全部楼层
求帮助 这舵机神经病一样 而且我程序里写的转180度怎么实际感觉他只转了90度 (如果算着来回过程是180度)
  • TA的每日心情
    奋斗
    2020-7-29 12:04
  • 签到天数: 748 天

    [LV.9]以坛为家II

    发表于 2019-5-5 22:26 | 显示全部楼层
    你把延时弄长一点,它还没来的及转到180度就要转回0度去了

    该用户从未签到

     楼主| 发表于 2019-5-5 22:31 | 显示全部楼层
    xmile 发表于 2019-5-5 22:26
    你把延时弄长一点,它还没来的及转到180度就要转回0度去了

    不行啊 我在后面加延时也不行啊 是不是我修改的不对呢 能方便在我代码后面给我示范一下吗

    该用户从未签到

     楼主| 发表于 2019-5-5 22:33 | 显示全部楼层
    a732483741 发表于 2019-5-5 22:31
    不行啊 我在后面加延时也不行啊 是不是我修改的不对呢 能方便在我代码后面给我示范一下吗 ...

    不行啊  把延时修改大点不对啊  
  • TA的每日心情
    奋斗
    2020-7-29 12:04
  • 签到天数: 748 天

    [LV.9]以坛为家II

    发表于 2019-5-5 22:37 | 显示全部楼层
    #include <Servo.h>    // 声明调用Servo.h库
    #include <dht11.h>
    #define DHT11PIN 5
    dht11 DHT11;
    Servo myservo; // 创建一个舵机对象
    int pos=0;        // 变量pos用来存储舵机位置
    int i=0;
    void setup()
    {
    myservo.attach(9);  // 将引脚9上的舵机与声明的舵机对象连接起来
    Serial.begin(9600);
    }
    void loop() {
    delay(1000);
      int chk = DHT11.read(DHT11PIN);
      Serial.print("当前湿度: ");//湿度
      Serial.print(DHT11.humidity);
      Serial.println(" %RH ");
      Serial.print("当前温度: ");//温度
      Serial.print(DHT11.temperature);
      Serial.println(" ℃ ");
      Serial.println("  ");
    if(DHT11.temperature>=25)
      {
         //for(pos = 0; pos < 180; pos+= 1)  // 舵机从0°转到180°,每次增加1°
             
          myservo.write(180);           // 给舵机写入角度   
          delay(150);   // 延时15ms让舵机转到指定位置
         
         
      }
        if(DHT11.temperature<=20){
           //for(pos = 180; pos>=0; pos-=1)    // 舵机从180°转回到0°,每次减小1°                        
           myservo.write(0);        // 写角度到舵机   
           delay(150);                 // 延时15ms让舵机转到指定位置
          
    }

      }

    该用户从未签到

     楼主| 发表于 2019-5-6 10:02 | 显示全部楼层
    xmile 发表于 2019-5-5 22:37
    #include     // 声明调用Servo.h库
    #include
    #define DHT11PIN 5

    不好使啊  这么加行啊 解决不了
  • TA的每日心情
    郁闷
    2020-3-26 11:36
  • 签到天数: 64 天

    [LV.6]常住居民II

    发表于 2019-5-6 10:43 | 显示全部楼层
    本帖最后由 jpolo 于 2019-5-6 10:46 编辑

    if(DHT11.temperature>=25)
      {
         for(pos = 0; pos < 180; pos+= 1) { // 舵机从0°转到180°,每次增加1° ----------//加括号
             
          myservo.write(180);           // 给舵机写入角度   ----------//是不是应该写成 myservo.write(pos);
          delay(15);   // 延时15ms让舵机转到指定位置
         }
         
      }
        if(DHT11.temperature<=20){
           for(pos = 180; pos>=0; pos-=1) {  // 舵机从180°转回到0°,每次减小1°     ----------//加括号                  
           myservo.write(0);        // 写角度到舵机    ----------//是不是应该写成 myservo.write(pos);
           delay(15);                 // 延时15ms让舵机转到指定位置
           }
    }

      }

    该用户从未签到

     楼主| 发表于 2019-5-6 11:27 | 显示全部楼层
    jpolo 发表于 2019-5-6 10:43
    if(DHT11.temperature>=25)
      {
         for(pos = 0; pos < 180; pos+= 1) { // 舵机从0°转到180°,每次增 ...

    写POS或者角度都可以 但是都不能解决这个自动摆回去问题
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    2.4寸触屏T12焊台 Arduino开源自制
    2.4寸触屏T12焊台 Arduino
    基本功能已经完善 1.触摸调节温度、2.虚拟键盘、3.调节pid参数、4.烙铁的休眠设置、5.
    【吐槽】给 M5Stack 新产品 Unit-Hall 的几点意见
    【吐槽】给 M5Stack 新产
    今年早些时候测评过 M5Stack 的 Color Unit,对这个产品的精细设计很是满意。 偶然间
    支持 原生USB 的ESP32 :ESP32 S2
    支持 原生USB 的ESP32 :E
    当我们谈论 ESP32 支持USB时,谈论的并不是最常见的ESP32而是乐鑫信息科技(上海)股份
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表