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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: dayu1

[未解决] 舵机控制

[复制链接]
 楼主| 发表于 2021-12-12 10:24 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-12 09:07
打下第一个开关就转到90度打下第二个开关就回到0度
再打下第一个开关就100度打下第二个开关就0度


是一个开关有两个闭合点,第一次打下去打回来为一次,再打过去打回来为第二次
image.jpg
发表于 2021-12-12 10:36 | 显示全部楼层
PWM,占空比决定了角度;如果是使用输出一个定位之后最好等一下,等转到位再发下一命令,不然会卡顿的
发表于 2021-12-12 10:38 | 显示全部楼层
lwq1947 发表于 2021-12-11 19:11
开关是按键吗?你总变来变去说不清楚.

这孩子就不知道开关有好多种,他不明白转换开关和按键的区别,自锁开关,复位开关,他更不清楚,所以说你理解不了一个新手的痛苦
发表于 2021-12-12 13:14 | 显示全部楼层
这个程序能满足你的要求,开关1只用一付触头接端口7,开关2也用一付触头接端口8,
#include <Servo.h>

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

void loop() {
  if(digitalRead(7)==LOW)
  { myservo.write(90);
  delay(500);
  }
  else {
  myservo.write(0);
  if(digitalRead(8)==LOW)
  { myservo.write(100);
  delay(500);
  }
  else  myservo.write(0);
  }                                       
}
 楼主| 发表于 2021-12-12 13:37 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-12 13:14
这个程序能满足你的要求,开关1只用一付触头接端口7,开关2也用一付触头接端口8,
#include


可以➕联系方式吗 这里沟通好麻烦
 楼主| 发表于 2021-12-12 13:38 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-11 14:22
第一次按下开关 90度,第二次按下60度,第三次按下开关 90度,第四次按下60度....(开关需短按).
#include  ...

可以加QQ联系吗 这里沟通有点说不清楚
发表于 2021-12-12 13:42 | 显示全部楼层
dayu1 发表于 2021-12-12 13:38
可以加QQ联系吗 这里沟通有点说不清楚

手机13661328794
发表于 2021-12-13 21:11 | 显示全部楼层
dayu1 发表于 2021-12-12 13:38
可以加QQ联系吗 这里沟通有点说不清楚

按你要求的程序如下:
#include <Servo.h>

Servo myservo;  
int k= 0;
int i= 0;  

void abc(){
  if(k==0){
    k=1;
    i++;  
    if(i>1)i=0;
  }
  }
void setup() {
  attachInterrupt(0, abc, FALLING );
  myservo.attach(9);
  pinMode(2,INPUT_PULLUP);
   myservo.write(0);
}

void loop() {
  if((digitalRead(2)==LOW)&&(i==0)) {
  myservo.write(180);
  delay(1000);
  }
   if((digitalRead(2)==HIGH)&&(i==0)) {
  myservo.write(0);
  delay(1000);
   
  }
  
  if((digitalRead(2)==LOW)&&(i==1)) {
  myservo.write(90);
  delay(1000);
  myservo.write(0);
  delay(1000);
  myservo.write(180);
  delay(1000);
  }
   if((digitalRead(2)==HIGH)&&(i==1)) {
  myservo.write(0);
  delay(1000);
   
  }
  k=0;                                      
}
发表于 2021-12-15 20:11 | 显示全部楼层
dayu1 发表于 2021-12-12 13:38
可以加QQ联系吗 这里沟通有点说不清楚

i的值为1,2,3.分别为三次双舵机动作.
#include <Servo.h>
Servo myservo1;  
Servo myservo2;  
int k= 0;
int i= 0;  

void abc(){
  if(k==0){
    k=1;
    i++;  
    if(i>3)i=1;
  }
  }
void setup() {
   Serial.begin(9600);
  attachInterrupt(0, abc, FALLING );
  myservo1.attach(9);
  myservo2.attach(6);
  pinMode(2,INPUT_PULLUP);
  myservo1.write(0);
  myservo2.write(0);
}

void loop() {
if((digitalRead(2)==LOW)&&(i==1)) {        
  myservo2.write(60);  
  myservo1.write(180);
  delay(1000);
  myservo1.write(0);
  myservo2.write(0);
  delay(1000);
  }
  if((digitalRead(2)==LOW)&&(i==2)) {
  myservo2.write(60);  
  myservo1.write(90);
  delay(1000);
  myservo1.write(0);
  delay(1000);
  myservo1.write(180);
  delay(1000);
  myservo1.write(0);
  myservo2.write(0);
  }
  if((digitalRead(2)==LOW)&&(i==3)) {
  myservo2.write(60);  
  myservo1.write(70);
  delay(1000);
  myservo1.write(0);
  delay(1000);
  myservo1.write(120);
  delay(1000);
  myservo1.write(50);
  delay(1000);
  myservo1.write(180);
  delay(1000);
  myservo1.write(0);
  myservo2.write(0);
  }
  k=0;                                      
}
 楼主| 发表于 2021-12-16 09:19 来自手机 | 显示全部楼层
lwq1947 发表于 2021-12-15 20:11
i的值为1,2,3.分别为三次双舵机动作.
#include
Servo myservo1;  

已清楚如何控制 非常感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 18:44 , Processed in 0.081039 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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