arduino
傳感器拼接
超聲波+蜂鳴器+舵機+外部電源
舵機接線:
正極接Vin(以接外部電源的情況下)
負極接GND
剩下一條接7號引腳
超聲波接線:
Vcc接5V
Tcig接2號引腳
Echo接3號引腳
GND 接GND
有源蜂鳴器接線:
正極接8號引腳
負極接GND
代碼:
// 超聲波傳感器測距+蜂鳴器報警(buzzer)+舵機(sterring gear)
//注意需加外部電源接Vin
#include<Servo.h>
Servo myservo; //定義Servo對象來控制
const int TrigPin = 2; //trig引腳接2
const int EchoPin = 3; //echo引腳接3
const int buzzer = 8; //蜂鳴器引腳接8
const int gear = 7; //舵機接口
float cm;
void setup()
{
Serial.begin(9600); //串口波特率
pinMode(TrigPin,OUTPUT); //定義trig爲輸出
pinMode(EchoPin,INPUT); //定義echo爲輸入
pinMode(buzzer,OUTPUT);
pinMode(gear,INPUT);
myservo.attach(gear);
}
void loop()
{
digitalWrite(buzzer,LOW);
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10); //通過高低電平發射一個短時間脈衝
digitalWrite(TrigPin,LOW);
cm = pulseIn(EchoPin,HIGH)/58; //將回波時間換算成cm
cm = (int(cm * 100))/100; //保留兩位小數
myservo.write(0);
if(cm<=10) //當距離小於10cm,工作
{
digitalWrite(buzzer,HIGH);
myservo.write(180);
}
Serial.print(cm);
Serial.print("cm");
Serial.println(); //串口輸出
delay(500);
}