/* 7 Seg Pin Setup for 4 Dig 16 Pin YoungSun Display
https://www.instructables.com/Arduino-Ultrasonic-Distance-Meter-With-7-Segment-D/
Pin Display Arduino
D1 1 13
D2 2 12
D3 6 11
D4 8 10
a 14 2
b 16 3
c 13 4
d 3 5
e 5 6
f 11 7
g 15 8
*/
/*
*** IMPORTANT BE SURE TO ADD SevSeg.h LIBRARY TO THE LSIT OF INCLUDED LIBRARIES IN THE ARDUINO IDE ***
*/
#include "SevSeg.h" // library for 4 dig 7 seg display <<< ADD LIBRARY
SevSeg sevseg; // initiate display
// set ultrasonic pins to global variables
int trigPin = A1;
int echoPin = A0;
int cm; // variable to be read by the display
int interval;
void setup(){
Serial.begin(9600);
pinMode(trigPin,OUTPUT); //set pin to output
pinMode(echoPin, INPUT); //set pin to input
// setup display parameters
byte numDigits = 4; // number of digits on the display
byte digitPins[] = {13,12,11,10}; //array for the pins at the arduino for the digits D1- D4
byte segmentPins[] = {2,3,4,5,6,7,8}; // array for the pins at the arduino for each the lettered displaya pins a -g
boolean resistorsOnSegments = true; // true if resistors are being used
boolean updateWithDelaysIn = true; // delays used
byte hardwareConfig = COMMON_ANODE; // display type (Common Anode or Common Cathode, check datasheet of display)
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(99);
}
void loop() {
digitalWrite(trigPin, LOW); // send short signal on the trigpin
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); // send signal for 10ms
delayMicroseconds(10);
digitalWrite(trigPin, LOW); // turn off signal after 10ms
interval = pulseIn(echoPin, HIGH); // read signal from trigpin
// determine distance by using the time from the trig and echo pins // divide interval by 2 then divide again by 29 cm = (interval/2) / 29;
// print to serial monitor
Serial.print(cm);
Serial.print("cm");
Serial.println();
//print to 7 segment display sevseg.setNumber(cm); // print the value of cm to the display sevseg.refreshDisplay();
}