7.1 简介

学习对舵机的控制。

7.2 Servo

舵机的控制信号是脉冲位置调制(PPM)信号,是一种宽度可调的周期性方波脉冲信号,周期一般为20ms,当方波的脉冲宽度改变时,舵机转轴的角度发生变化,角度变化与脉冲宽度的变化成正比。一般舵机的输出轴转角与输入信号的脉冲宽度之间的关系表示。
在这里插入图片描述

7.3 原理图

proteus仿真里面添加舵机,在元器件搜索栏中输入“servo”,并添加至元器件选择栏中。
在这里插入图片描述
并将舵机中间的管脚接至数字口9脚,也就是ATmega328P的12管脚,同时上管脚接至+5V,下管脚接至地端,修改后的Proteus仿真图
在这里插入图片描述

7.4 代码

#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
  }
}

7.5 仿真

在这里插入图片描述

7.6 文献

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐