Hab gestern wieder ein Teil aus einer kaputten APC USV gefunden. Die Anzeige Batterie und Leistung mit Aus/Ein Knopf. Hab mir gedacht ob man das nicht für den Arduino brauchen könnte zum herumspielen.
Es ist ein ganz interessantes Board - hat 16 LEDs in verschiedenen Farben, zwei Taster. Die LED´s werden über eine serielles 16Bit register welches auch als LED Treiber verwendet werden kann angesteuert (MIB5026CD).
Die Schaltung ist recht einfach da sie praktisch nur aus dem 5026CD besteht ..
Hab ein kleines Test Programm geschrieben. Das Timinig ist recht simple .. die Daten werden über den CLK rein geschoben am Schluss geht LE high und schiebt die Daten auf die Ausgänge. ( MIB5026CD Datenblatt )
Zählt einfach durch die Geschwindigkeit wird über einen Schieberegler definiert ... Bin noch am überlegen was man mit dem Teil machen kann .. aber zB ein Würfelspiel könnte man machen mit den 6 LEDs in der Mitte.
Muss mal schauen ob ich noch so ein paar alte USVen finde ...
Bin im Moment voll auf der Suche nach recycle-baren Dingen. Hab zuletzt einige 16x2 Displays gefunden .. mal sehen was man da machen kann.
Es ist ein ganz interessantes Board - hat 16 LEDs in verschiedenen Farben, zwei Taster. Die LED´s werden über eine serielles 16Bit register welches auch als LED Treiber verwendet werden kann angesteuert (MIB5026CD).
Die Schaltung ist recht einfach da sie praktisch nur aus dem 5026CD besteht ..
Hab ein kleines Test Programm geschrieben. Das Timinig ist recht simple .. die Daten werden über den CLK rein geschoben am Schluss geht LE high und schiebt die Daten auf die Ausgänge. ( MIB5026CD Datenblatt )
/*
ACP Display
LED treiber chip MIB5026CD -> 16 Ausgänge
pin 1 = LE
pin 2 = SW2
pin 3 = SW3
pin 4 = CLK
pin 5 = SDI
pin 6 = +5V
pin 7 = GND
pin 8 = <leer>
*/
const int analogInPin = A0;
const int le_pin = 7;
const int clk_pin = 6;
const int sdi_pin = 5;
int speed = 50;
// the setup routine runs once when you press reset:
void setup() {
// init Serial port
Serial.begin(9600);
// initialize the digital pin as an output.
pinMode(le_pin, OUTPUT);
pinMode(clk_pin, OUTPUT);
pinMode(sdi_pin, OUTPUT);
}
void flashdisplay()
{
write2display(0x0);
for(int i=0; i < 5; i++)
{
write2display(0xffff);
delay(400);
write2display(0x0);
delay(600);
}
}
void write2display (int value)
{
int i = 0;
long m = 32768;
int d = 3;
while(i < 16)
{
digitalWrite(sdi_pin, LOW);
if(value & m)
digitalWrite(sdi_pin, HIGH);
delayMicroseconds(d);
digitalWrite(clk_pin, HIGH);
delayMicroseconds(d);
digitalWrite(sdi_pin, LOW);
delayMicroseconds(d);
digitalWrite(clk_pin, LOW);
m >>= 1;
i++;
}
delayMicroseconds(d);
digitalWrite(le_pin, HIGH);
delayMicroseconds(2*d);
digitalWrite(le_pin, LOW);
}
// the loop routine runs over and over again forever:
void loop()
{
flashdisplay();
int counter = 0;
while (counter < 65535)
{
speed = analogRead(analogInPin) + 1;
delay(2);
write2display(counter);
counter++;
delay(speed);
}
}
Zählt einfach durch die Geschwindigkeit wird über einen Schieberegler definiert ... Bin noch am überlegen was man mit dem Teil machen kann .. aber zB ein Würfelspiel könnte man machen mit den 6 LEDs in der Mitte.
Muss mal schauen ob ich noch so ein paar alte USVen finde ...
Bin im Moment voll auf der Suche nach recycle-baren Dingen. Hab zuletzt einige 16x2 Displays gefunden .. mal sehen was man da machen kann.