What Will I Learn?
认识Arduino 的SG90舵机模块
编写程序驱动SG90舵机模块转动
制作自动喂食器
Requirements
Arduino UNO
Arduino IDE开发环境
Arduino SG90舵机模块
Difficulty
基础
Tutorial Contents
一、认识Arduino 的SG90舵机模块及应用
舵机,也叫做伺服马达,内部控制系统是具有闭环控制系统的机电结构。
舵机由以下部件组成:
- 外壳
- 电路板
- 无核心马达
- 齿轮
- 位置检测器
SG90舵机模块的的原理主要是由核心闭环控制系统发出PWM(脉冲宽度调制)信号给舵机,然后信号在电路板上得到IC处理之后计算出转动的角度, 根据设定的角度驱动无核心马达转动,通过减速齿轮给摆臂以动力,在此同时电位器返回当前的位置信号,判断是否已经到达设定位置。
SG90舵机模块的特性如下:
- 只能旋转180度
- 尺寸:22.3 X 11.8 X 26.3 mm
- 操作速度:0.12秒/60度(4.8V);0.1秒/60度(6.0V)(无负载条件下)
- 扭矩大小:1.3kg·cm(4.8V);1.5kg·cm(6.0V)
- 操作温度:-30~+60°C
- 正常工作电压:4.8V~6V
二、编写程序驱动SG90舵机模块转动
连接Arudino UNO与SG90舵机模块
SG90舵机模块出厂时配有三条不同颜色的接线已连接在舵机控制电路上,分别是:
棕色 : 接地线
红色 : 接电源正极线
橙色 : 模块信号输出引脚
Arduino UNO | SG90舵机模块 |
---|---|
GND | 棕色接线 |
5V | 红色接线 |
D10 | 橙色接线 |
编程驱动SG90舵机模块转动
引入SG90舵机模块库文件
#include<Servo.h>
实例化一个舵机对象
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 <Servo.h> #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; }
并上传程序测试效果
Curriculum
- Arduino中文教程----认识LM35模块并制作实时温度计
- Arduino中文教程----认识DHT11温湿度传感器并制作温度报警器
- Arduino中文教程----认识光线传感器并制作光控LED
- Arduino中文教程----实现指令控制电灯开关
- Arduino中文教程---认识Arduino的串口并编写程序操作串口
- Arduino中文教程---认识HC-SR501模块并制作人体感应LED
- Arduino中文教程---认识模拟输入并制作声控电灯
- Arduino中文教程---DIY一个按钮电灯
- Arduino中文教程---初识Arduino并点亮第一个LED
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @cha0s0000 I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit