建筑兔零基础Arduino自学记录77|模拟输入值控制舵机角度-11

  舵机又称伺服电机是用来控制模型方向的方向舵。它可以把所有接收到的电信号转换成电动机轴上的角位移或角速度输出。

  mini舵机是常见的SG90伺服电机。它的最大转动角度为180度,有3条控制线,分别是电源线、地线和信号线。5V电压供电

要注意的是舵机橙色线只能连接在数字口9或10上

  • 将控制板的5V连接舵机的红色线
  • 棕色线连接控制板GND
  • 橙色线连接9脚

我们来尝试怎么运行舵机,输入代码

#include <Servo.h>
Servo myservo;

int pin = A0;
int val;

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

void loop(){
       val = analogRead(pin);
       val = map(val, 0, 1023, 0, 179);
       myservo.write(val);
       delay(15);
}

进行连线

 开始运行则开始摆动

 解读代码

// 引入 Servo 库,该库提供了控制舵机的相关功能
#include <Servo.h>

// 创建一个舵机对象,名为 myservo,后续将使用这个对象来控制舵机
Servo myservo;

//舵机控制信号将从模拟引脚 A0 读取
int pin = A0;
//val用于存储从模拟引脚读取到的值
int val;

// 初始化操作
void setup() {
    // 将舵机连接到数字引脚 9
    myservo.attach(9);
}

//loop() 循环函数
void loop() {
    // 从 A0 读值,存储到变量 val 中
    // analogRead() 函数返回的值范围是 0 到 1023
    val = analogRead(pin);
    //  map() 进行映射转换
    // 原始范围是 0 到 1023,将其映射到舵机角度范围 0 到 179 度
    // 这样就可以将模拟输入的值转换为舵机的角度值
    val = map(val, 0, 1023, 0, 179);
    // 向舵机发送控制信号,让舵机转动到指定的角度
    // 这个角度值由变量 val 决定
    myservo.write(val);
    // 延时 15 毫秒,给舵机足够的时间转动到指定的角度
    // 避免舵机转动过快或出现抖动现象
    delay(15);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值