Danke für die schnelle Antwort.
Die Schaltung habe ich aus dem Datenblatt des SAA1064 (http://www.nxp.com/documents/data_sheet/SAA1064_CNV.pdf, Seite 12). Diese habe ich mittlerweile so abgeändert, dass ich die Anoden direkt mit Vcc verbunden habe, um den Multiplexer zu umgehen. Auf dem Kondensator für Cext steht "222".
Der Programmcode für meinen Arduino Duamilanove lautet wie folgt
Code:
#include <Wire.h>
#include <util.h>
const byte BRIGHT_LOW =0x10;
const byte MULTIPLEX =0x07;
const byte TEST_ALL =0x08;
const int numbers[16] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void setup() {
Wire.begin();
// Test der Anzeigen im statischen Modus
Wire.beginTransmission(0x70 >> 1);
Wire.send(0);
Wire.send(BRIGHT_LOW & ~MULTIPLEX | TEST_ALL);
Wire.endTransmission();
delay (1000);
// Löschen der Anzeigen
Wire.beginTransmission(0x70 >> 1);
Wire.send(0);
Wire.send(BRIGHT_LOW & ~MULTIPLEX);
Wire.endTransmission();
}
void loop() {
// Anzeigen der Zahlen von 1000 bis 9999 fuer jeweils 1000 ms
for (int i = 1000; i < 10000; i++) {
Wire.beginTransmission(0x70 >> 1);
Wire.send(1);
Wire.send(numbers[i%10]);
int num = i/10;
Wire.send(numbers[num%10]);
num = i/10;
Wire.send(numbers[num%10]);
num = i/10;
Wire.send(numbers[num%10]);
Wire.endTransmission();
delay (1000);
}
}
Wenn ich nun aus der Zeile "Wire.send(BRIGHT_LOW & ~MULTIPLEX);" in der Funktion "Setup()" die Zeile "Wire.send(BRIGHT_LOW & MULTIPLEX);" mache, dann funktioniert nichts mehr. Es wird nichts angezeigt. Mache ich es wieder rückgängig, dann werden die Zahlen von 00 bis 99 ganz normal angezeigt.
Einen Tipp?
Lesezeichen