7segment SCT2024 - ARDUINO IOT

Direkt zum Seiteninhalt

7segment SCT2024

ARDUINO
SCT2024 16x LED Treiber
Der SCT2024  ist ein 16 Fach Current LED Driver mit eine Konstant Stromquelle,
somit können die LEDs ohne Vorwiderstand betrieben werden.
 
Damit man sich mit dem Chip vertraut machen kann, habe ich mal ein Demo Board erstellt.

StarChips

				
				//5xSCT2024
				int Clock_Pin = 9;
				int Latch_Pin = 10;
				int Data_Pin = 7;
				int OE_Pin = 8;//LOW = Output enable (Display On)
				byte Zahl[10] =  {237,12,181,61,92,121,249,13,253,125};
				byte Zahl_komma[10] =  {239,14,183,63,94,123,251,15,255,127};
				byte Zeichen[10] =  {1,0,1,1,0,1,1,1};
				byte D_z1=0 ;
				byte D_z2=0 ;
				byte D_z3=0 ;
				byte D_z4=0 ;
				byte D_z5=0 ;
				byte D_z6=0 ;
				byte D_z7=0 ;
				byte D_z8=0 ;
				byte D_z9=0 ;
				byte D_z10=0 ;
				long wert =0;
				word data=0;
				
				void setup() {
				pinMode(OE_Pin, OUTPUT);
				  digitalWrite(OE_Pin,LOW);
				pinMode(Latch_Pin, OUTPUT);
				 digitalWrite(Latch_Pin, LOW);
				pinMode(Clock_Pin, OUTPUT);
				 digitalWrite(Clock_Pin, LOW);
				pinMode(Data_Pin, OUTPUT);
				Serial.begin(9600);
				}
				
				void loop() {
				data++;
				wert=data;
				
				
				
				
				Print_DISPLAY();
				delay(1000);
				}
				
				
				void Print_DISPLAY() {
				  //6-stellige Zahl in Ziffern zerlegen
				D_z1= wert% 10;
				wert=(wert-D_z1)/10;
				D_z2= wert% 10;
				wert=(wert-D_z2)/10;
				D_z3= wert% 10;
				wert=(wert-D_z3)/10;
				D_z4= wert% 10;
				wert=(wert-D_z4)/10;
				D_z5= wert% 10;
				wert=(wert-D_z5)/10;
				D_z6= wert% 10;
				wert=(wert-D_z6)/10;
				
				//7segment x 10 Zeichen Seriell ausgeben 
				  digitalWrite(Latch_Pin, LOW); 
				  for (int i=0; i<8; i++) {//  Zeichen 000000000x
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[D_z1], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 00000000x0
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[D_z2], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 0000000x00
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[D_z3], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 000000x000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[D_z4], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 00000x0000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[D_z5], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 0000x00000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[D_z6], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 000x000000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[10], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 00x0000000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[0], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen 0x00000000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl[0], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				  for (int i=0; i<8; i++) {//  Zeichen x000000000
				   digitalWrite(Clock_Pin, LOW);
				   digitalWrite(Data_Pin,(bitRead(Zahl_komma[D_z1], i)));
				   digitalWrite(Clock_Pin, HIGH);
				 }
				digitalWrite(Latch_Pin, HIGH);
				delay(5);
				digitalWrite(Latch_Pin, LOW);
				}
				 
				
				

Bernhard K.
Zurück zum Seiteninhalt