舵机控制-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1535|回复: 26

[未解决] 舵机控制

[复制链接]
发表于 2021-12-8 09:19 来自手机 | 显示全部楼层 |阅读模式
求帮忙看看 有没有问题 ,还有那个舵机角度控制怎么写进去
image.jpg
发表于 2021-12-8 11:20 | 显示全部楼层
参考以下两个示例:
#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}



#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}
 楼主| 发表于 2021-12-8 12:14 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-8 11:20
参考以下两个示例:
#include


这个是电位器的,我想通过一个按键控制两个舵机不同的角度 ,求求了
发表于 2021-12-8 18:34 | 显示全部楼层
dayu1 发表于 2021-12-8 12:14
这个是电位器的,我想通过一个按键控制两个舵机不同的角度 ,求求了

若用按键控制的话一个舵机就需要两个按键,一个用来增加舵机角度一个用来减小.
发表于 2021-12-8 19:11 | 显示全部楼层
dayu1 发表于 2021-12-8 12:14
这个是电位器的,我想通过一个按键控制两个舵机不同的角度 ,求求了

#include <Servo.h>

Servo myservo;  

int pos= 0;  

void setup() {
  myservo.attach(9);
   pinMode(7,INPUT_PULLUP);
   pinMode(8,INPUT_PULLUP);
}

void loop() {
  if((digitalRead(8)==LOW)&&(pos <= 180))  pos += 1;
  if((digitalRead(7)==LOW)&&(pos >= 0))  pos -= 1;
  myservo.write(pos);                  
  delay(15);                           
}
 楼主| 发表于 2021-12-9 13:30 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-8 19:11
#include

Servo myservo;  

这个是7,8接舵机 9是按键吗
 楼主| 发表于 2021-12-9 13:56 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-8 19:11
#include

Servo myservo;  

两台舵机怎么控制 这个控制一台
发表于 2021-12-9 14:43 | 显示全部楼层
本帖最后由 lwq1947 于 2021-12-9 14:44 编辑
dayu1 发表于 2021-12-9 13:56
两台舵机怎么控制 这个控制一台


#include <Servo.h>

Servo myservo1;  
Servo myservo2;
int pos1= 0;  
int pos2= 0;
void setup() {
  myservo1.attach(9);
  myservo2.attach(6);
   pinMode(7,INPUT_PULLUP);
   pinMode(8,INPUT_PULLUP);
   pinMode(4,INPUT_PULLUP);
   pinMode(5,INPUT_PULLUP);
}

void loop() {
  if((digitalRead(8)==LOW)&&(pos1 <= 180))  pos1 += 1;
  if((digitalRead(7)==LOW)&&(pos1 >= 0))  pos1 -= 1;
  myservo1.write(pos1);                  
  delay(15);                           
  if((digitalRead(8)==LOW)&&(pos2 <= 180))  pos2 += 1;
  if((digitalRead(7)==LOW)&&(pos2 >= 0))  pos2 -= 1;
  myservo2.write(pos2);                  
  delay(15);                           
}
 楼主| 发表于 2021-12-9 14:58 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-9 14:43
#include

Servo myservo1;  

那个舵机速度 怎么调, 非常感谢!!
发表于 2021-12-9 20:00 | 显示全部楼层
dayu1 发表于 2021-12-9 14:58
那个舵机速度 怎么调, 非常感谢!!

改变 delay(15); 中的数值,越大越慢.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 18:41 , Processed in 0.208060 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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