系统所需硬件
- Arduino或者Genuino开发板
- LED
- 220欧电阻
电路连接方式
1.搭建电路时,将电阻的一端连接到Arduino的13引脚。将LED的长腿的一端(正极引脚,称为阳极)连接到电阻的另一端。将LED的短腿(负极引脚,称为阴极)连接到Arduino的GND,如下面的示意图和原理图所示。
原理图
代码
1.在主循环中,使用以下代码点亮LED:
digitalWrite(13, HIGH);
2.这将向13引脚输出5V电压。在LED的引脚间产生电压差,并将其点亮。然后可以使用以下代码将LED熄灭:
digitalWrite(13, LOW);
3.实现代码:
#include "Maxbotix.h" // Library for Sonar Sensor
Maxbotix rangeSensorPW(8, Maxbotix::PW, Maxbotix::LV); // Initializing Sensor Input at Digital Pin 8
int transistor = A2; // Initialzing Analog Output to Transistor at A2
void setup()
{
pinMode(transistor, OUTPUT); // Sets the Analog A2 as an output
Serial.begin(9600); // Starts the Serial Monitor
}
void loop()
{
Serial.println(" ");
Serial.print("Distance: "); // Prints Distance on the Screen
Serial.print(rangeSensorPW.getRange()); // Receives the Distance in Cm
Serial.print(" cm"); // Prints Cm
if ( (rangeSensorPW.getRange()) < 48) { // If Distance is less than 48 Cm
Serial.println("Transistor On"); // Then the transitor turns on
analogWrite(transistor, 255); // Sends out 5V on Output A2
delay(2000); // Leaves it on for 2 seconds, you can change it depending on how long you want the light on
} //if
else { // Else If distance is greater than 48 cm
analogWrite(transistor, 0); // Turns off the Transistor
Serial.println("Transistor Off"); // Prints Transistor Off
}
delay(100); // Wait 100 ms
} // loop