用Arduino和超声波传感器控制舵机制作招财猫
项目目标:
当人靠近时,招财猫摆动手臂,当附近没人时,招财猫静止。
准备材料:
1.arduino主控板
2.SG90舵机1个
3.超声波传感器1个
电路搭建:
超声波传感器 :
Trig:输入引脚
Echo:输出引脚
常用的超声波传感器由压电晶片组成,既可以发射超声波,也可以接收超声波。小功率超声探头多作探测作用。它有许多不同的结构,可分直探头(纵波)、斜探头(横波)、表面波探头(表面波)、兰姆波探头(兰姆波)、双探头(一个探头发射、一个探头接收)等。
超声波传感器主要由如下四个部分构成:
发送器:通过振子(一般为陶瓷制品,直径约为15 mm)振动产生超声波并向空中幅射。
接收器:振子接收到超声波时,根据超声波发生相应的机械振动,并将其转换为电能量,作为接收器的输出。
控制部分:通过用集成电路控制发送器的超声波发送,并判断接收器是否接收到信号(超声波),以及已接收信号的大小。
电源部分:超声波传感器通常采用电压为DC12V ± 10 % 或 24V ± 10 %外部直流电源供电,经内部稳压电路供给传感器工作。
SG90舵机:
(PWM)信号线–数字接口
sg90舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC 判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。适用于那些需要角度不断变化并可以保持的控制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。一般舵机旋转的角度范围是0 度到180 度。
9克小舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。常见于航模,飞机模型,遥控机器人及机械部件当中。在使用中,舵机的配件通常包含一个能把舵机固定到基座上的支架以及可以套在驱动轴上的舵盘,通过舵盘上的孔可以连接其它物体构成传动模型。小舵机自带的3线接口可以通过RJ25适配器与主板相连。
技术规格
工作电压:4.8V到6V DC
工作电流:80到100mA
待机电流:5mA
极限角度: 210°±5%
扭力: 1.3到1.7kg/cm
工作温度:-10℃到60℃
湿度范围:60%±10%
转速: 0.09到0.10 sec/60°(4.8V)
信号周期:20 ms
信号高电平时间范围:1000到2000 us/周期
尺寸: 32.3 x 12.3 x 30.6 mm (长x宽x高)
程序编写:
#include <Servo.h>
volatile int delay2;
Servo servo_3;
float checkdistance_7_6() {
digitalWrite(7, LOW);
delayMicroseconds(2);
digitalWrite(7, HIGH);
delayMicroseconds(10);
digitalWrite(7, LOW);
float distance = pulseIn(6, HIGH) / 58.00;
delay(10);
return distance;
}
void setup(){
delay2 = 10;
pinMode(7, OUTPUT);
pinMode(6, INPUT);
servo_3.attach(3);
}
void loop(){
if (checkdistance_7_6() < 10) {
for (int i = 0; i <= 180; i = i + (5)) {
servo_3.write(i);
delay(delay2);
}
for (int i = 180; i >= 0; i = i + (-5)) {
servo_3.write(i);
delay(delay2);
}
}
}