Arduino-舵机控制Servo

以前没有接触过硬件,因为把弄APM2.5不得不去接触arduino板。Arduino是块极易上手的控板,不像单片机,你要花费大量的时间去学习预备知识,它只要你稍微懂点C语言既能上手。对于我这种业余爱好者,不二之选。手头有几个舵机,首次接触arduino就是用它来操作舵机。Arduino有个底层库(Servo类),包含驱动舵机的基本功能:

attach()//连接舵机
write()//角度控制
writeMicroseconds()//参数为pwm值,1000:逆时针旋转180度,1500:到达中点,2000:顺时针旋转180度
read()//读上一次舵机转动角度
attached()//
detach()//断开舵机连接

实例:

器材:arduino板、舵机、杜邦线若干

程序可以在IDE>File>Examples>Servo>Sweep中找到

这里介绍不调用Servo库,写的Servo.write()函数,有些问题,串口输入的值与伺服转动的角度不相同。郁闷中!!!

int value;
int pulsewidth;
int pin=9;
void servowrite(int pin,int value)
{
  digitalWrite(pin,HIGH);
  value=map(value,0,180,700,2300);//舵机的PWM值在700~2300间,这是粗略的PWM数值转换
  digitalWrite(pin,LOW);
}
void setup()
{
 Serial.begin(9600);
 pinMode(pin,OUTPUT);
}
void loop()
{
  if(Serial.available()>0)
  {
    int val=Serial.read();
    value=val-‘0‘;//转换为数字
    value=map(value,0,9,0,180);
    Serial.print("moving servo to");
    Serial.print(value);
    servowrite(pin,value);
   }

}
时间: 2024-11-03 21:43:27

Arduino-舵机控制Servo的相关文章

Arduino舵机控制

普通舵机有3根线:GND(黑).VCC(红).Signal(黄) 红色的是电源正极,黑色的是电源负极,白色的是信号线.有些舵机线是红棕橘三色,分别对应红黑白. #include <Servo.h> Servo myservo; int pos = 90; void setup() { Serial.begin(9600); pinMode(4, OUTPUT); pinMode(5, OUTPUT); myservo.attach(9); } 博客:http://www.cnblogs.com

舵机控制

标准的舵机有三根引线,分别是电源线Vcc.底线GND和控制线. 首先,产生基本的PWM的周期信号,即产生20ms的周期信号:其次,调整脉宽,即单片机调节PWM信号的占空比. 下面是程序设计的流程图  技术参数 尺寸(mm) 重量 线长 4.8V 6V 转动角度 速度 扭力 速度 扭力 A B C D E g oz cm sec/60o kg-cm oz-in sec/60o kg-cm oz-in 60.0 28.0 60.0 69.0 17.0 154 5.43 30.0 0.25 30.0

Arduino 开关控制小灯持续亮之具体思路

Arduino 开关控制小灯持续亮之具体思路 为什么写这篇文章: 我们用开关控制灯的亮灭的时候,希望只需要按一下按键就可以做到灯一直亮着.而在<Arduino魔法书>中--有弹性的按键这一节主要讲了消除抖动函数,但是没有讲这个程序的原理. 书中的代码如下 const int LED = 9; const int BUTTON = 2; boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; vo

Arduino 舵机sg90电位器实现转动方向控制

/* Sweep*/ #include <Servo.h> int potpin = 0;//电位器接到A0 int val; //存储电位器读取的数值 Servo myservo//定义一个舵机 void setup() {  myservo.attach(9);  //连接舵机,舵机信号线接到数字输出9  Serial.begin(9600); //同步时钟9600 } void loop() {  val = analogRead(potpin); //读取模拟值0~1023  //Se

arduino红外控制led(发射与接收)

网上有关红外接收的帖子不少,但是关于使用arduino自制红外发射器的帖子却很少,经过网上搜索和自己摸索,给大家发个有arduino自制红外发射器控制led亮灭的例子.关于本例我使用了两块arduino板,一块用于发射,一块用于接收. 一.红外发射(开发板一) 1 /* 2 * 发射红外线讯号 3 * 注意! 红外线发射器(IR LED)必须接到 pin 3, 不能接其它脚位,头文件已经定义,所以下面不用设置pin3口的状态 4 */ 5 #include <IRremote.h> // 引用

[20个项目学会BBC micro:bit编程] 11-模拟舵机控制实验

--实验编程 程序网址:https://makecode.microbit.org/_4i6UibMT5C5f --实验结果 按A键模拟舵机(划重点)转到150度,按B键模拟舵机转到30度. 注意事项: 1. 三线舵机接线时,橙色线为信号线(通用标识),中间红色线为VCC,需要接到3.3V(划重点,big:bit扩展板上的VCC选择为3.3V即可),但一定不要接到micro:bit自带的3v上(虽然模拟器是这么显示的),而是要用外部供电,micro:bit本身的驱动能力太小了. 2.从供应商那里

使用 Cortana 语音助手和 Arduino 声音控制 RGB Led 灯!

https://www.wandianshenme.com/play/use-cortana-arduino-control-rgb-led-strip/ 原文地址:https://www.cnblogs.com/kekeoutlook/p/8536764.html

arduino (3) 控制sim900A发送短信

狗屎佳世通旗舰店,卖的什么破玩意sim900a芯片,不支持联通卡,还生明模块支持双卡的 之前买的esp8266-07都是内存偷工减料 买的液体浊度传感器给的原理图也不给基本接线. 差评垃圾店,你敢卖就别怪我吐槽.耽误我这么多时间. 1 只能发送英文 #include<SoftwareSerial.h> SoftwareSerial softSerial1(4,5);//软串口RXD4.TXD5,与短信模块通信 int sendMeg(String phonenum,String text)//

如何用 JavaScript 控制 Arduino?

Arduino 运行 C 语言,而主控端运行 JavaScript,一次要编写和维护两种程序.既然浏览器和服务器都用 JavaScript,若 Arduino 也能用 JavaScript 控制,那岂不完美? 这就是 Rick Waldron 设计 Johnny-Five 库文件的原因.Johnny-Five 是1986 年上映的科幻电影"Short Circuit(直译为"短路",译作"霹雳五号")"当中的机器人主角的名字.电影中的机器人原本是