怎么实现用 按键 让舵机控制器控制的舵机匀速转动 舵机连着arduino, 命令是 #舵机号P位

怎么实现用 按键 让舵机控制器控制的舵机匀速转动 舵机连着arduino, 命令是 #舵机号P位,第1张

绝对匀速的话,舵机弄不了吧,折中的可以试试类似下面这样的代码,调整每次间隔的时间和位移的角度,达到听不出一顿一顿的感觉还是可能的。

for(pos = 0; pos <= 180; pos += 1) // 从0逐渐到180度

{ // 每次增加1度

myservowrite(pos); // 指定当前角度

delay(15); // 等待15毫秒

}

怎么光敏传感器???你是打算让arduino

把光敏传感器是炖了还是吃干抹净?

闲扯少说,光敏传感器,你说的亮度传感器?是不是说测量环境光线的强弱?

如果是说这个,有两种,1个是光敏电阻----你拿它当一个可调电阻用就好(可调电阻还不会用那就没办法了,建议重新入门)如果硅光电池型的,那就就要来个三极管进行放大,然后再去测量。同样,你在网上也能找到相关的玩法。

如果是初入门,建议玩光敏电阻,简单粗暴。

不可以。

乐高轴和arduino舵机并不兼容,因为它们使用的是不同的接口和控制协议。乐高轴是一种用于lego机器人和模型中的专用电机控制器,使用的是lego自己的控制协议,通常需要使用lego提供的软件和硬件组件进行控制。因此arduino舵机不可以连接乐高轴。

arduino舵机则是一种标准的舵机设备,可以通过用户编写的程序进行控制。它使用的是pwm信号来控制舵机的位置和角度。

配置舵机和红外遥控的引脚基本步骤如下:

1、舵机配置:将舵机接口插入Arduino板子中的PWM口,并将舵机电源线接入5V电源,将舵机执行机构连接到安防闸机的开启和关闭机构;编写Arduino程序,控制舵机的位置和角度,并根据需要设定开启和关闭时的角度和位置。

2、红外遥控配置:将红外遥控器的接收器插入Arduino板子的数字引脚口,并将红外遥控器的电源线接入5V电源。下载并安装红外遥控器的库,并初始化红外遥控器的程序。对安防闸机程序进行编辑,将程序配置为能够读取通过红外遥控器传递的编码信号,并根据相应的信号控制机械臂的开启、关闭或停止。

安防闸机通常使用舵机和红外遥控器来实现开启、关闭、停止等功能。配置舵机和红外遥控的引脚需要对硬件和软件进行深入了解,以便进行正确的引脚配置并编写和实现程序功能。

按照上图连线,按照如下代码烧程序。

#define Sin_1 A0    //设置变阻器1路电压采集端口为A0

#define Sin_2 A1    //设置变阻器2路电压采集端口为A1

#define Sin_3 A2    //设置变阻器3路电压采集端口为A2

#define Sin_4 A3    //设置变阻器4路电压采集端口为A3

#define Pout_1 2    //设置舵机PWM信号1路输出端口为D2

#define Pout_2 3    //设置舵机PWM信号2路输出端口为D3

#define Pout_3 4    //设置舵机PWM信号3路输出端口为D4

#define Pout_4 5    //设置舵机PWM信号4路输出端口为D5

int v1, v2, v3, v4; //定义采集模拟电压的存储变量

int p1, p2, p3, p4; //定义PWM输出的脉宽变量

unsigned long T_Start;

void setup()

{

  pinMode(Pout_1, OUTPUT);   //设置舵机接口为输出模式

  pinMode(Pout_2, OUTPUT);   //设置舵机接口为输出模式

  pinMode(Pout_3, OUTPUT);   //设置舵机接口为输出模式

  pinMode(Pout_4, OUTPUT);   //设置舵机接口为输出模式

  p1 = 1500; p2 = 1500; p3 = 1500; p4 = 1500;    //设置初始舵机输出的位置为中立位置

}

void loop()

{

  T_Start = micros();                    //每次循环运行前,先采集当前的时间标志值

  PWM_OUT();                             //输出舵机的控制信号

  Get_Input();                           //采集模拟电压信号并转换为舵机角度对应的脉宽值

  while((micros() - T_Start) <= 20000);    //控制时间,保证每个循环占用20ms,满足驱动舵机的信号周期要求

}

void PWM_OUT()

{

  //由于绝大多数Arduino都不具备使用Servo库同时驱动4个舵机的功能

  //所以,本函数采用高低电平延时方式,产生驱动4路舵机的功能

  digitalWrite(Pout_1, HIGH);

  delayMicroseconds(p1);

  digitalWrite(Pout_1, LOW);

  

  digitalWrite(Pout_2, HIGH);

  delayMicroseconds(p2);

  digitalWrite(Pout_2, LOW);

  

  digitalWrite(Pout_3, HIGH);

  delayMicroseconds(p3);

  digitalWrite(Pout_3, LOW);

  

  digitalWrite(Pout_4, HIGH);

  delayMicroseconds(p4);

  digitalWrite(Pout_4, LOW);

}

void Get_Input()

{

  v1 = analogRead(Sin_1);   //采集变阻器模拟电压

  p1 = map(v1,0,1023,500,2500);  //使用map函数,将采集的10位精度的电压的值域(0-1023),转换为舵机的脉宽数值(500-2500)

  

  v2 = analogRead(Sin_2);   //采集变阻器模拟电压

  p2 = map(v2,0,1023,500,2500); 

  

  v3 = analogRead(Sin_3);   //采集变阻器模拟电压

  p3 = map(v3,0,1023,500,2500); 

  

  v4 = analogRead(Sin_4);   //采集变阻器模拟电压

  p4 = map(v4,0,1023,500,2500); 

}

准备实验需要用到的硬件,如图所示:

Arduino 控制舵机

2

如下图所示进行硬件的连接,此步我们先不连接任何其他元件,只需将Arduino UNO控制器连接到电脑

Arduino 控制舵机

如下图所示,我们先不使用电位计控制,只是使用程序来控制一个舵机,将下列程序复制到Arduino IDE中或者可以直接在最后一步中提供的百度网盘地址中直接下载代码和 Fritzing 电路图

#include <Servoh>

Servo myservo;

int pos = 0;

void setup()

{

myservoattach(9);

}

void loop()

{

for(pos = 0; pos <= 180; pos += 1)

{

myservowrite(pos);

delay(15);

}

for(pos = 180; pos>=0; pos-=1)

{

myservowrite(pos);

delay(15);

}

}

Arduino 控制舵机

如图所示,选择正确的板卡型号和端口,将程序上传到控制器中。

Arduino 控制舵机

Arduino 控制舵机

如图所示,程序上传无误的情况下 Arduino IDE 软件会显示如下结果,在上传过程中,Arduino 控制器板载的 TX RX 灯会频闪

Arduino 控制舵机

如下图所示,使用舵盘连接螺丝,连接舵盘和舵机

Arduino 控制舵机

按照下图中的电路,进行实验硬件的连接

注意:舵机线一种是:红、黑、黄(红色连接 Vcc、黑色连接 GND、**连接信号 S)

还有较为常见的一种是:棕、红、橙(棕色连接 GND、红色连接 Vcc、橙色连接信号 S)

Arduino 控制舵机

实验效果如图所示,舵机会自动从 -90 度转动到 90 度,再从 90 度转动到 -90 度。注意当 Arduino UNO 控制器连接到电脑供电时,舵机会自动归回中间位置

Arduino 控制舵机

代码回顾:

(1)#include<Servoh> 载入 Servoh 库文件

(2)Servo myservo; 建立一个舵机对象,名称为 myservo

(3)myservoattach(9); 将引脚 9 上的舵机与舵机对象连接起来

attach 函数连接一个舵机对象到指定的引脚上,attch 函数可以有 1 或 3 个参数。如果使用 3 个函数,第一个参数表示引脚,第二个参数表示最小角度(0度)的脉冲宽度,单位是微秒(默认是 544),第三个参数表示最大角度(180度)的脉冲宽度,单位是微秒(默认是2400)。通常情况下,只需要设置舵机引脚,忽略第二和第三个参数。

(4)myservowrite(pos); 写角度到舵机

代码位置如下图所示:

Arduino 控制舵机

硬件回顾:

舵机:包括一个直流点击,一套装在电机和输出轴之间的齿轮系统,一个位置传感结构和一个控制电路。位置传感机构检测舵机的位置并提供给控制系统,控制系统使用电机控制舵机臂运动到指定位置。有很多不同尺寸、速度、精度的舵机,功率越大、精度越高的舵机相对价位也比较高。使用汽车、机器人、飞机时,舵机是很常用的一种方式。通过PWM信号实现舵机位置的控制,一般来说脉宽在 500 微秒到 2500 微秒之间,舵机从 -90 到 90 度。下图所示为舵机的内部结构图

Arduino 控制舵机

下图分别为(1)舵机控制原理(2)舵机扭矩计算方法(3)输入脉冲宽度与舵机角度对应关系图,供大家参考

Arduino 控制舵机

Arduino 控制舵机

Arduino 控制舵机

以上就是关于怎么实现用 按键 让舵机控制器控制的舵机匀速转动 舵机连着arduino, 命令是 #舵机号P位全部的内容,包括:怎么实现用 按键 让舵机控制器控制的舵机匀速转动 舵机连着arduino, 命令是 #舵机号P位、如何在arduino中,使用压力传感器控制舵机旋转、arduino舵机可以连接乐高轴吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9647791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存