代码编号:servo_simple_0
[code]
#include <Servo.h> //导入库文件
Servo servo1; //声明舵机变量名为servo
void setup() {
// put your setup code here, to run once:
servo1.attach(6); //指定控制信号连接管脚
servo1.write(0); //让舵机回到初始位置0度
}
void loop() {
// put your main code here, to run repeatedly:
servo1.write(0); //让舵机回到0度位置
servo1.write(180); //让舵机回到180度位置
}
[/code]
=========================================================================
代码编号:servo_simple_1
[code]
#include <Servo.h> //导入库文件
Servo servo1; //声明舵机变量名为servo
void setup() {
// put your setup code here, to run once:
servo1.attach(6); //指定控制信号连接管脚
servo1.write(0); //让舵机回到初始位置0度
}
void loop() {
// put your main code here, to run repeatedly:
servo1.write(0); //让舵机回到0度位置
delay(500); //等待500ms时间
servo1.write(180); //让舵机回到180度位置
delay(500); //等待500ms时间
}
[/code]
=========================================================================
代码编号:servo_lowSpeed
[code]
#include <Servo.h> //导入库文件
Servo servo1; //声明舵机变量名为servo
int tmpTgt = 0; //用来保存下一个目标角度值
int cnt = 0; //段数计数
void setup() {
// put your setup code here, to run once:
servo1.attach(6); //指定控制信号连接管脚
servo1.write(0); //让舵机回到初始位置0度
tmpTgt = 0; //变量值复位为0
cnt = 0; //变量值复位为0
}
void loop() {
// put your main code here, to run repeatedly:
for(cnt = 0; cnt <= 18 ; cnt++){
tmpTgt = cnt * 10;
servo1.write(tmpTgt);
delay(40);
}
for(cnt = 18; cnt >= 0 ; cnt--){
tmpTgt = cnt * 10;
servo1.write(tmpTgt);
delay(40);
}
}
[/code]
===============================================================
代码编号:servo_ultrasonic
[code]
#include <Servo.h> //舵机库
#define servo_control 11 //定义舵机的控制管脚为11号
Servo servo1; //声明舵机变量名为servo1
int stp = 1; //行程的步长值
int ang = 0; //舵机当前角度值
//HC-SR04 pins define
#define trig 8
#define echo 7
unsigned long puls_length ; //记录超声波脉冲宽度的变量,单位是微秒
float distance; //存储超声波测距结果的变量,单位是厘米
float warning_dis = 10; //预设的警告阈值,当测得距离小于该值时向电脑发出警报
void setup() {
// put your setup code here, to run once:
servo1.attach(servo_control); //指定控制信号连接管脚
servo1.write(0); //让舵机回到初始位置0度
pinMode(trig, OUTPUT); //定义超声波传感器的触发信号管脚为输出
pinMode(echo, INPUT); //定义超声波传感器的返回信号管脚为输入
Serial.begin(9600); //定义串口波特率为9600,用于在电脑屏幕上显示实时数据
}
void loop() {
// put your main code here, to run repeatedly:
ang = ang + stp;
servo1.write(ang);
if( (ang == 0)||(ang == 180) ){
stp = (-1)*stp;
}
digitalWrite(trig, LOW);
delay(2);
digitalWrite(trig, HIGH);
delay(2);
digitalWrite(trig, LOW);
unsigned long times = pulseIn(echo, HIGH);
float distance = 0.017*times; //根据得到的脉冲长度计算出障碍物的距离
if(distance <= warning_dis){ //障碍物距离小于阈值
Serial.println("警报,有敌人接近!");
Serial.print("敌人距离:"); //输出敌人距离
Serial.print(distance);
Serial.println("厘米");
Serial.print("敌人所在方位:"); //输出敌人方位
Serial.print(ang);
Serial.println("角度");
delay(1000); //停留一秒钟
}
delay(100);
}
[/code]
==========================================================
代码编号:servo_Mcrsecond
#include <Servo.h> //导入库文件
Servo myservo; //声明舵机变量名为myservo
int i;
void setup()
{
myservo.attach(6); //指定控制信号连接管脚
myservo.writeMicroseconds(1000); //让舵机回到初始位置0度
delay(5000);
}
void loop() {
for (i=1000;i<=2000;i++){
myservo.writeMicroseconds(i);
delay(5);
}
for (i=2000;i>=1000;i--){
myservo.writeMicroseconds(i);
delay(5);
}
}