Arduino NOC的探测器第二版

本次设想:通过声波探测距离当距离小于120CM时,点亮矩阵,矩阵当做LED板使用

具体矩阵的玩法

↑看这个。

直接贴出完整版代码

/*
* ErJiQwQ Ei LAB NOC 1.0
* NOC 探测器
*/
int leds[8] = {4,5}; //点阵屏正极引脚
int gnds[8] = {6,7}; //点阵屏负极引脚
const int TrigPin =8;//声波探测Trig
const int EchoPin =9;//声波探测Echo
float cm;
void setup(){
Serial.begin(9600);
for (int i = 0; i < 8; i++)
{
pinMode(leds[i], OUTPUT);
pinMode(gnds[i], OUTPUT);
digitalWrite(gnds[i], HIGH); //负极引脚拉高,熄灭所有LED
}
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void ledopen()
{
for (int i = 0; i < 8; i++)//将点阵屏正极拉高,负极拉低,开启显示
{
digitalWrite(leds[i], HIGH);
digitalWrite(gnds[i], LOW);
}
}
void ledclean()
{
for (int i = 0; i < 8; i++)//将点阵屏正极ladies,负极拉高,关断显示
{
digitalWrite(leds[i], LOW);
digitalWrite(gnds[i], HIGH);
}
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH) / 58; //将回波时间换算成cm
cm = (int(cm * 100)) / 100; //保留两位小数
Serial.print(cm);
Serial.print(” cm “);
Serial.println();
delay(10);
if(cm<=120)
{
ledopen(); //全部打开
delay(5000);
}
else
{
ledclean(); //全部打开
}
}

↑最后的实物图 看热闹 走线看得我头疼,继续去写作业。