const int trigPin = 12;
const int echoPin = 14;
const int ledPin = 13;
long duration;
int distance;
int pins[] = {23, 22, 21, 19, 18, 5, 17};
int data[9][7] = {
{1, 0, 0, 1, 1, 1, 1}, // digit1
{0, 0, 1, 0, 0, 1, 0}, // digit2
{0, 0, 0, 0, 1, 1, 0}, // digit3
{1, 0, 0, 1, 1, 0, 0}, // digit4
{0, 1, 0, 0, 1, 0, 0}, // digit5
{0, 1, 0, 0, 0, 0, 0}, // digit6
{0, 0, 0, 1, 1, 1, 1}, // digit7
{0, 0, 0, 0, 0, 0, 0}, // digit8
{0, 0, 0, 1, 1, 0, 0} // digit9
};
void setup() {
for (int x = 0; x <= 6; x++) {
pinMode(pins[x], OUTPUT);
}
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance=");
Serial.println(distance);
if (distance >= 1 && distance < 10) {
for (int x = 0; x <= 6; x++) {
digitalWrite(pins[x], data[distance-1 ][x]);
}
delay(2000);
}
delay(500);
}