认识Arduino 的SG90舵机模块
编写程序驱动SG90舵机模块转动
制作自动喂食器
Arduino UNO

Arduino IDE开发环境

Arduino SG90舵机模块
基础
舵机,也叫做伺服马达,内部控制系统是具有闭环控制系统的机电结构。
舵机由以下部件组成:
SG90舵机模块的的原理主要是由核心闭环控制系统发出PWM(脉冲宽度调制)信号给舵机,然后信号在电路板上得到IC处理之后计算出转动的角度, 根据设定的角度驱动无核心马达转动,通过减速齿轮给摆臂以动力,在此同时电位器返回当前的位置信号,判断是否已经到达设定位置。
SG90舵机模块的特性如下:
连接Arudino UNO与SG90舵机模块
SG90舵机模块出厂时配有三条不同颜色的接线已连接在舵机控制电路上,分别是:
棕色 : 接地线
红色 : 接电源正极线
橙色 : 模块信号输出引脚
| Arduino UNO | SG90舵机模块 |
|---|---|
| GND | 棕色接线 |
| 5V | 红色接线 |
| D10 | 橙色接线 |
编程驱动SG90舵机模块转动
引入SG90舵机模块库文件
#include
实例化一个舵机对象
Servo myservo;
定义变量
#define PIN_SERVO 10
setup()初始化
void setup() {
Serial.begin(9600); //使用9600速率进行串口通讯
}
loop()主体函数
void loop()
{
myservo.write(0);
delay(1000);
myservo.write(80);
delay(1000);
myservo.write(160);
delay(1000);
myservo.write(80);
delay(1000);
myservo.write(0);
delay(1000);
}
连接Arduino UNO至电脑
编译并上传程序至Arduino UNO

测试效果:
DIY装饲料的容器
找一个曲奇罐子或者其他罐子,最好是呈圆柱状的
然后在罐子的一边开一个小口子,面积不用太大,如下图大小即可
将罐子的底部与舵机的舵片粘在一起固定好
根据罐子开口的位置,修改程序
#include
#define PIN_SERVO 10
const int buttonPin = 2;
int buttonState = 0;
int lastButtonState = 0;
Servo myservo;
void setup()
{
pinMode(buttonPin, INPUT);
myservo.attach(PIN_SERVO);
}
void loop()
{
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if(buttonState == HIGH){
myservo.write(0);
delay(1000);
myservo.write(160);
delay(1000);
myservo.write(0);
delay(1000);
}
}
lastButtonState = buttonState;
}
并上传程序测试效果