Arduino招财猫(超声波传感器+舵机)

该项目利用Arduino主控板结合SG90舵机和超声波传感器,实现人靠近时招财猫摆动手臂、无人时静止的功能。超声波传感器通过发送和接收超声波判断距离,舵机根据信号调整角度。电路中,超声波传感器的Trig和Echo引脚分别连接到Arduino的输入和输出,舵机的PWM信号线连接到数字接口。程序编写完成后,当检测到人靠近,舵机驱动招财猫摆动,远离则停止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目目标:

当人靠近时,招财猫摆动手臂,当附近没人时,招财猫静止。

准备材料:

1.arduino主控板

2.SG90舵机1个

3.超声波传感器1个

电路搭建:

 超声波传感器 :

Trig:输入引脚

Echo:输出引脚

常用的超声波传感器由压电晶片组成,既可以发射超声波,也可以接收超声波。小功率超声探头多作探测作用。它有许多不同的结构,可分直探头(纵波)、斜探头(横波)、表面波探头(表面波)、兰姆波探头(兰姆波)、双探头(一个探头发射、一个探头接收)等。

超声波传感器主要由如下四个部分构成:

### 使用Arduino控制超声波传感器驱动舵机转动 超声波传感器能够检测物体的距离并将此信息传递给Arduino,而Arduino则可以根据所获得的数据来决定如何操作舵机。下面是一个简单的例子说明这一过程。 #### 硬件连接 - 将超声波传感器的VCC和GND分别接到Arduino的5V电源和接地端子上。 - 把超声波传感器的Trig引脚连到Arduino的一个数字I/O口(比如D2),Echo引脚也连到另一个数字I/O口(例如D3)[^3]。 - 对于舵机而言,其信号线应当接入支持PWM功能的引脚之一;这里假设使用的是D9作为舵机控制引脚[^2]。 #### 示例代码 ```cpp #include <Servo.h> // 定义变量存储触发与回响引脚编号以及最小最大测距范围 const int trigPin = 2; const int echoPin = 3; long duration; // 存储往返时间 int distance; // 记录实际距离(cm) Servo myServo; // 创建servo对象实例化myServo void setup() { pinMode(trigPin, OUTPUT); // 设置trigPin为输出模式 pinMode(echoPin, INPUT); // 设置echoPin为输入模式 Serial.begin(9600); myServo.attach(9); // 绑定舵机至指定引脚(D9) } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // 获取脉冲宽度 distance= duration * 0.034 / 2; // 计算目标距离 if (distance >= 2 && distance <= 400) { // 当有效范围内有障碍物时调整角度 Serial.print("Distance: "); Serial.println(distance); int angle = map(distance, 2, 400, 0, 180); // 映射距离值到对应的角度区间内 myServo.write(angle); // 向舵机发出指令改变位置 } } ``` 这段程序实现了当超声波传感器探测到一定范围内的物体时,会依据该物体离传感器之间的距离映射成一个介于0度~180度之间变化的角度,并让舵机按照这个新的设定角旋转相应的位置[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值