接线:
Trig接4
Echo接3
WS2812彩灯条接13
#include <Wire.h>
#include <Adafruit_NeoPixel.h>
volatile float juli;
Adafruit_NeoPixel rgb_display_13(8);
float checkdistance_4_3() {
digitalWrite(4, LOW);
delayMicroseconds(2);
digitalWrite(4, HIGH);
delayMicroseconds(10);
digitalWrite(4, LOW);
float distance = pulseIn(3, HIGH) / 58.00;
delay(10);
return distance;
}
void setup(){
rgb_display_13.begin();
rgb_display_13.setPin(13);
Serial.begin(9600);
juli = 0;
pinMode(4, OUTPUT);
pinMode(3, INPUT);
}
void loop(){
Serial.println(checkdistance_4_3());
juli = checkdistance_4_3();
if (juli <= 10 && juli >= 0) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 51,204,0);
rgb_display_13.show();
}
}
if (juli <= 20 && juli >= 10) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 51,51,255);
rgb_display_13.show();
}
}
if (juli <= 30 && juli >= 20) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 51,204,255);
rgb_display_13.show();
}
}
if (juli <= 40 && juli >= 30) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 255,204,0);
rgb_display_13.show();
}
}
if (juli <= 50 && juli >= 40) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 204,51,204);
rgb_display_13.show();
}
}
if (juli <= 60 && juli >= 50) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 255,0,0);
rgb_display_13.show();
}
}
if (juli >= 70) {
for (int i = 1; i <= 8; i = i + (1)) {
rgb_display_13.setPixelColor(i-1, 0,0,0);
rgb_display_13.show();
}
}
delay(50);
}