This my first post on this forum,hoping to have knowledge from Expert people!
4 Digits CA Display.
Successfully tested on small 4 digit CA Display.When tried to use 12V, 4 Inch high Display facing challenges.
As 2 Nos. 74HC595 used with small Segments which is not possible to directly used with 4 inch due to HIGH Current (Each segment @20mA).
As far as Hardware concern to switch Digit supply HIGH SIDE switching NPN and PNP transistor Combination with 4K7 resistor is used.
As Output of 595 is not capable to drive 12V hence tried with ULN2803.
ULN invert Signals hence code does not work properly showing jumble digits.Moreover had to declare COMMON_CATHODE (though we have Common Anode)
Cpuld someone please tell me what I might be doing wrong because it is not working correctly.
Please suggest What all changes to be done in codes and hardware when we use Huge display.
Following code is used with Small 4 Digits 7 Segment working smoothly.
/*
// https://github.com/MiguelPynto/ShiftDisplay/blob/master/examples/Weather/Weather.ino
ShiftDisplay example by MiguelPynto
Simulate a weather station, showing info such as temperature and condition
https://miguelpynto.github.io/ShiftDisplay/
*/
#include <ShiftDisplay.h>
const int LATCH_PIN = 6;
const int CLOCK_PIN = 7;
const int DATA_PIN = 5;
const DisplayType DISPLAY_TYPE = COMMON_ANODE;
const int DISPLAY_SIZE = 4;
ShiftDisplay display(LATCH_PIN, CLOCK_PIN, DATA_PIN, DISPLAY_TYPE, DISPLAY_SIZE);
float getTemperature() {
delay(1000); // simulate processing
return 21.36;
}
String getCondition() {
delay(1000); // simulate processing
return "Sunny";
}
void setup() {
}
void loop() {
float temp = getTemperature();
String condition = getCondition();
condition = " " + condition; // prefix with spaces
// for 4 seconds, show temperature with one decimal, aligned to center of display
display.set(temp, 1, ALIGN_CENTER);
display.show(4000);
// show condition with marquee effect
while (condition.length() > 0) {
display.set(condition, ALIGN_LEFT);
display.show(500);
condition.remove(0,1);
}
}
Are you sure you have CA display's (positive side is connected together)? They must connect (with resistor in each line) to ground to work. There is the ULN2003 or ULN2803 perfect for. Link to display's or display datasheet.
For CC display, they must drive from 12V to your display with a resistor in each line. In that case you can use the MIC2981, high side driver pin compatible with UDN2981.
Why not program the outputs yourself? Inverting the output is then in no time made. Isn't there a setting in the library to invert? Using an inverter IC is another possibility.
Thanks for promt response.
surely,its CA display.
Tried to change code in .cpp file but not succeed,am not expert in code. I think thats why .cpp code didnt suppoert after chages
@rezox
You may follow the scheme of Fig-1 to drive high power CA 7-segmnet multiplex display unit using ULN2803 buffers. Because of two inverters, the topology is compatible with SevSeg.h Library.
Yes. You will definitely get help here. Decide the complete solution first. Since the displays are individual, a non-multiplexing solution with 4 X TPIC6B595 chips (as already suggested) will give brighter results and easier to code. 4 shift registers in a chain consume a total of 3 Arduino pins.
Thank You for kind support,its university project to display 4 Digit on CA display.Good idea to go with non-multiplexing solution with 4 X TPIC6B595 chips.
No...............Componts which I am supposed to complete given project, Max7219 is not clubed...because MAX7219 task is given to another group of students
When I used small 7 Segment CA, code was working perfectly.(without using ULN2803).
For Huge Segment high current issue ULN2803 are used means Digit Supply and Cathode Pins Supply inverted.
So can I replace my Segment with Common Cathode Segment instead of CA.
Please suggest.
Something you can try, tell the library that you have a common cathode display, that might invert all the signals from the shift registers and allow you to use the ULN2803 without any other modifications.