Im trying to create simple Proximity counter which feeds its signal to a Digital Display similar to the one attached... I just want something as basic as possible. without coding.
Now my problem is most of the Displays I see are very tiny ! I want some as large as between 17 to 27 inches.
let me know what it is called so i can search better or point me to a website for further research/urchase
Can also make your own segment with strips of LED. Make them 3, 6, 9, 12 LEDs/segment, double strips if want even, powered from 12V, and turning on each segment with TPIC6B595 shift register to sink up to 150mA/Segment from a 50V source.
That's what I did here, then we had PCBs made up.
This board drives them.
One shift register per digit. Board has a 328P chip on it, program it just like you would an Uno, using an offboard FDTI Basic or clone.
deeplogic:
I just want something ............ without coding.
I want some as large as between 17 to 27 inches.
let me know what it is called
It is called: something well beyond your capabilities.
What you want to do can be done, and may be merely a matter of scale, but you will have to put some effort into it, or go to the gigs forum and pay for somebody else's effort..
Building the hardware will not be hard.
Sending digit information to the shift registers is also not hard.
You can get it done with a little help here.
Here is the hardware design for each 7 segment digit.
The 3 LEDs & resistor represent one element of a non-addressable LED strip.
This will yield about a 5" tall digit. Two elements (6 LEDs) about 9". Four elements 18"?
Coding is easy.
Just add another SPI.transfer() for each digit between the digitalWrite().
Here is some simple code that you can run without a display as a clock.
unsigned long currentMicros;
unsigned long previousMicros;
unsigned long elapsedTime;
// Initial time to start, adjust as needed.
byte hoursTens = 0;
byte hoursOnes = 2;
byte minutesTens = 2;
byte minutesOnes = 8;
byte secondsTens = 3;
byte secondsOnes = 0;
byte oldSecondsOnes;
byte hundredths;
byte tenths;
byte oldTenths;
void setup() {
Serial.begin(115200); // make serial monitor match
Serial.println ("Setup Done");
}
void loop() {
currentMicros = micros();
// how long's it been?
elapsedTime = currentMicros - previousMicros;
if ( elapsedTime >= 100000UL) { // 0.1 second passed? Update the timers
previousMicros = previousMicros + 100000UL;
// hundredths = hundredths + 1; // increment
// if (hundredths >= 10) {
// hundredths = 0; // else rollover and increment next digit
tenths = tenths + 1;
if (tenths >= 10) {
tenths = 0;
secondsOnes = secondsOnes + 1;
if (secondsOnes >= 10) {
secondsOnes = 0;
secondsTens = secondsTens + 1;
if (secondsTens >= 6) {
secondsTens = 0;
minutesOnes = minutesOnes + 1;
if (minutesOnes >= 10) {
minutesOnes = 0;
minutesTens = minutesTens + 1;
if (minutesTens >= 6 ) {
minutesTens = 0;
hoursOnes = hoursOnes + 1;
if ((hoursTens == 2) && (hoursOnes == 4)) {
hoursOnes = 0;
hoursTens = 0;
}// hours total rollover check
if (hoursOnes >= 10) {
hoursOnes = 0;
hoursTens = hoursTens + 1;
} // hoursOnes rollover check
} // minutesTens rollover check
} // minutesOnes rollover check
} // secondsTens rollover check
} // secondsOnes rollover check
} // tenths rollover check
} // hundredths rollover check
// }// hundredths passing check
if (oldTenths != tenths) { // show the elapsed time
oldTenths = tenths;
Serial.print(hoursTens);
Serial.print(hoursOnes);
Serial.print(":");
Serial.print(minutesTens);
Serial.print(minutesOnes);
Serial.print(":");
Serial.print(secondsTens);
Serial.print(secondsOnes);
Serial.print(".");
Serial.println (tenths);
} // end one second check
} // end loop
The Serial.print() section would be replaced with the SPI.transfer code to send to the shift registers & displays.