查看“舵机使用”的源代码
←
舵机使用
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==概述== 舵机不像普通电机那样只会转圈圈,它可以根据你的指令转至0-180°之间的任意角停下来。 也叫伺服电机, 主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。 ===工作原理=== 由控制器发出讯号给舵机,经由电路板上的 芯片判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,藉由检测电阻值便可知转动的角度。 ===使用的注意事项=== 舵机转角在0~180°,当高电平脉冲大于2.5ms,,一般没有自我保护的舵机,都会使转角超出正常的范围,使内部直流电机处于堵转状态,一两分钟就会使舵机发烫,甚至烧坏舵机。使用时,尽量让舵机在45°到135°之间转动,这范围内舵机转角也更精准。 ==舵机转接板== *标准的伺服电机有三条控制线。分别为:电源(VDD)、地(GND)及控制信号线,一般对应红线为电源,灰线为地,橙线为控制信号线。舵机转接板中标有GND,VDD,1/2。按照对应关系接线即可。 *一个舵机转接板可以接2个舵机,在Hub中,一个底座有两个信号线(GND,VCC,信号0,信号1),信号0对应的就是舵机转接板上上面的排针(1/2处),信号1是下面的排针(1/2处)。 [[File:servo-line.jpg|center|400px]] ==规格== ===舵机=== *电器规格 **工作电压:4.8-6V *技术参数 **扭力:1.6kg-cm/4.8V,1.8kg-cm/6.0V **速度:0.11sec/60°4.8V, 0.10sec/60° 6.0V *尺寸 **大小:22.4mm*12.5mm*22.8mm *接口 **电源(VCC),地(GND),信号(in) ===舵机转接板=== *一个舵机转接板可接两个舵机 *接口 **地(GND),电源(VDD),信号(1/2) ==开发== ===设备=== {|class="wikitable" |- |模块||数量||功能 |- |[[mCookie-CoreUSB/zh]]||1||核心板 |- |[[mCookie-Hub/zh]]||1||传感器转接板 |- |[[Microduino-Servo Connector/zh]]||1||舵机连接板 |} *其他硬件设备 **舵机 **USB数据连接线 一根 [[File:module-light.jpg|600px|center]] ===准备=== *Setup 1:将Microduino-Servo Connector和舵机连接,接到上一排排针上。 [[file:mCookie-Servo Connector-sensor.JPG|600px|center]] *Setup 2:将Microduino-Servo Connector和Hub的模拟口IIC接起来。 [[file:mCookie-Servo Connector-hub.JPG|600px|center]] *Setup 3:将所有设备连接在一起。通过USB数据线将接入电脑。 [[file:mCookie-servo-pc.JPG|600px|center]] ===实验一:驱动舵机 === *打开Arduino IDE,将下列代码复制到IDE中。 <source lang="cpp"> #include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created #define servo_pin SDA int pos = 0; // variable to store the servo position void setup() { myservo.attach(servo_pin); // attaches the servo on pin SDA 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 } } </source> *编译完成后在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号,然后直接下载程序。 [[file:upload.JPG|600px|center]] *下载完毕你可以看到舵机按角度循环转动。 ===程序调试=== *采用Arduino自带的Servo驱动库,调用Servo.h文件 *在setup函数里面定义驱动舵机引脚:“myservo.attach(servo_pin);” *通过“myservo.write(pos);”来控制舵机转到指定角度 *采用for循环来实现角度自动变化,for循环值是从0-180,用户可以更改对应值看看结果有啥变化。 *采用delay函数来控制舵机转的速度,户可以更改对应值看看结果有啥变化。 ===实验一:驱动舵机 === *打开Arduino IDE,将下列代码复制到IDE中。 <source lang="cpp"> #include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created #define servo_pin SDA String inString = ""; int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); myservo.attach(servo_pin); // attaches the servo on pin 9 to the servo object while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } } void loop() { while (Serial.available() > 0) { inString += char(Serial.read()); delay(2); } if (inString.length() > 0) { myservo.write(inString.toInt()); Serial.println(inString.toInt()); } inString = ""; } </source> *编译完成后在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号,然后直接下载程序。 [[file:upload.JPG|600px|center]] *下载完毕,打开串口监视器,在串口输入框中输入任意角度(0-180),点击发送。 [[file:serial-.JPG|600px|center]] *结果,可以通过串口精确控制舵机角度。 ===程序调试=== *串口接收发送的数据,将接收到的数据转换成字符串 <source lang="cpp"> while (Serial.available() > 0) { inString += char(Serial.read()); delay(2); } </source> *当有数据输入,控制舵机 <source lang="cpp"> if (inString.length() > 0) { myservo.write(inString.toInt()); Serial.println(inString.toInt()); } </source> *因为字符数据一直是累加的,所以每接收一次需要对数据清空数据。” inString = "";” ==应用== * ==视频== |}
返回至
舵机使用
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息