arduino 笔记【4】 舵机以及简单应用

这篇博客介绍了如何使用Arduino Servo库控制SG90舵机,详细讲解了从包含库到设置角度、检测连接、分离及读取角度的步骤,并提供了实战示例代码。此外,还展示了如何将舵机与电位器结合,通过map函数限制输入范围,实现电位器控制舵机转动角度的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

伺服舵机 SG90

SG90 舵机可以在 0~180 度之间自由活动。我们只需要指定当前的值即可操控。

Servo 库文件使用

使用servo库来发送舵机控制信号一般需要四个步骤:

1、 首先要告诉Arduino编程器,希望在代码开始时,即setup函数之前,声明使用Servo库函数。

#include <Servo.h>   

2、 在#include和setup函数之间为要发送的信号命名servo库的实例。如下servoLeft就是指定的实例名称。

Servo servo;

3、 在setup函数中,使用给出的舵机信号的名称后跟一个点,然后通过附加函数attach()调用信号引脚。这个例子告诉系统舵机信号 servoLeft 应该通过数字引脚13来传输。

servo.attach(13);   

5、write() 函数, 作用是将一个角度值写入舵机,设置轴转动的角度(该值是指角度),0为在一个方向全速转动,180为在另一个方向上全速转动,接近90为复位。

servo.write(90);

6、attached()函数,用于检测servo变量是否正确连接至Arduino对应引脚上。返回值为 true 和 false 。

servo.attached()

7、detach()函数, 作用是从对应引脚上分离舵机变量。如果要将所有舵机变量分离,则使用analogWrite()函数将引脚9和引脚10用于PWM输出。

servo.detach() 

8、read()函数, 用于读取舵机的当前角度值(传递给上次调用write()的值)。

servo.read()  

实战舵机

#include <Servo.h>
Servo myservo;

void setup() {
  myservo.attach(9);
}

void loop() {
  myservo.write(180);
}

 效果:

 

与电位器联合使用 

 接线图:

 

 

代码:

其中我使用了 int v2  = map(v1,0,1023,0,180); 函数,其作用是将 0~1023 的输入限定在 0~180 的输出。

因为 A0 的输入范围在 0~1023 之间,但是舵机的角度却在 0~180 之间。所以需要 map 函数做限制。

#include <Servo.h>
Servo servo;

void setup() {
  pinMode(3,OUTPUT);
  servo.attach(3);
}

void loop() {
  int v1 = analogRead(A0);
  int v2 = map(v1,0,1023,0,180);
  servo.write(v2);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值