EasyManua.ls Logo

Keyestudio ESP32 - Page 151

Keyestudio ESP32
344 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
ESP32 Starter Kit
(continued from previous page)
float checkdistance() { //Acquire distance
// preserve a short low level to ensure a clear high pulse:
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
// Trigger the sensor by a high pulse of 10um or longer
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// Read the signal from the sensor: a high level pulse
//Duration is detected from the point sending "ping" command to the time receiving
˓echo signal (unit: um).
float distance = pulseIn(EchoPin, HIGH) / 58.00; //Convert into distance
delay(10);
return distance;
}
LedControl lc = LedControl(DIN, CLK, CS, 4);
byte data_val[4][8] = {
{ 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00 },
{ 0x00, 0x00, 0x04, 0x05, 0x05, 0x04, 0x00, 0x00 },
{ 0x00, 0x10, 0x14, 0x15, 0x15, 0x14, 0x10, 0x00 },
{ 0x40, 0x50, 0x54, 0x55, 0x55, 0x54, 0x50, 0x40 },
};
void setup() {
lc.shutdown(0, false); //MAX72XX is in power-saving mode at startup
lc.setIntensity(0, 8); //Set the brightness to its maximum value
lc.clearDisplay(0); //Clear display
pinMode(TrigPin, OUTPUT); //Set Trig pin to output
pinMode(EchoPin, INPUT); //Set Echo pin to input
Serial.begin(9600);
}
void loop() {
distance = checkdistance();
Serial.println(distance);
if (distance < 15) {
temp = 0;
} else if (distance < 30 && distance > 15) {
temp = 1;
} else if (distance < 40 && distance > 30) {
temp = 2;
} else if (distance > 50) {
temp = 3;
}
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, data_val[temp][i]);
}
}
8.5. Arduino Project 147

Table of Contents