LCD- Display Ansteuerung

Hallo Leute,

Ich habe ein LCD 7-Segment Display mit 4 Digits. Dieses Display: http://www.mouser.com/ds/2/244/LCD-S401M16KR-81359.pdf

Nun meine Frage. Ich möchte es mit dem Arduino UNO ansteuern! Nun habe ich schon einiges ausprobiert, und schaffe es nicht alle Zahlen "schön" darzustellen. Da man ein Segment alleine nicht ansteuern kann. Hat jemand Erfahrung mit so einem Display?? Und was ist eine 1/4- Duty und 1/3 bias?? Ich glaube diese Begriffe könnten mir weiterhelfen, allerdings finde ich nichts passendes dazu.

Bitte um Hilfe tom

Was hast du bereits versucht? Code? Stichwort "Multiplexing", damit erschlägt dich Google.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige

Alternativ MAX7219/21 besorgen, der übernimmt das Multiplexing für einen selber.

int com0 = 1;
int com1 = 2;
int com2 = 3;
int com3 = 4;
int Pin5 = 5;
int Pin6 = 6;
int Pin7 = 7;
int Pin8 = 8;
int Pin9 = 9;
int Pin10 = 10;
int Pin11 = 11;
int Pin12 = 12;

void setup() 
{                
  
  pinMode(Pin5, OUTPUT); 
  pinMode(Pin6, OUTPUT);
  pinMode(Pin7, OUTPUT); 
  pinMode(Pin8, OUTPUT); 
  pinMode(Pin9, OUTPUT); 
  pinMode(Pin10, OUTPUT); 
  pinMode(Pin11, OUTPUT); 
  pinMode(Pin12, OUTPUT);  
  pinMode(com0, OUTPUT); 
  pinMode(com1, OUTPUT);
  pinMode(com2, OUTPUT);
  pinMode(com3, OUTPUT);  
  
}

void loop()
{

//zahl 0 an dig4
  
  digitalWrite(Pin12,HIGH);
  digitalWrite(com0,HIGH);
  digitalWrite(com1,LOW);
  digitalWrite(com2,LOW);
  digitalWrite(com3,LOW);
  delay(5);
  
  
  /*digitalWrite(Pin12,LOW);
  digitalWrite(com1,HIGH);
  digitalWrite(com2,HIGH);
  digitalWrite(com3,HIGH);
  */
  digitalWrite(com2,HIGH);
  digitalWrite(Pin11,HIGH);
  digitalWrite(com0,LOW);
  digitalWrite(com1,LOW);
  digitalWrite(com3,LOW);
  delay(5);
  
  digitalWrite(Pin12,HIGH);
  digitalWrite(Pin11,LOW);
  digitalWrite(com0,HIGH);
  digitalWrite(com1,HIGH);
  digitalWrite(com3,HIGH);
  
  digitalWrite(Pin12,LOW);
  digitalWrite(com1,HIGH);
  digitalWrite(com2,HIGH);
  digitalWrite(com3,HIGH);
  delay(1);

  /*digitalWrite(Pin12,LOW );
  digitalWrite(com1,LOW);
  digitalWrite(com2,LOW);
  digitalWrite(com0,LOW);
  digitalWrite(com3,LOW);
  digitalWrite(Pin11,LOW);
  */
  
  
}

Das wäre mal mein erster Entwurf für die Zahl0 an 4 Stelle. Dann seh ich zwar klar eine 0, allerdings sind an den Anderen Digits auch 7 LEICHT angestuert, also so grau. Das will ich aber nicht. Geht das überhaupt dass ich die anderen wegbekomme und nur die 0 stehen bleibt?

Die Beschriftung bzw Variablendefenition kannste so in die Tonne werfen. Das kann man so überhaupt nicht richtig lesen.

Sinnvoller wäre es, jeden Digit Pin als com, wie bereits hier vorhanden ist, zu bescheiben. Die 7 oder 8 Segmente sollten dann aber irgendwas von a - g und dp heißen.

Des weiteren passt dein Sketch nicht zur Beschreibung.

Block 1 soll den Punkt anzeigen.

Ein rohes LCD ohne speziellen LCD Controller anzusteuern ist [u]keine gute Idee[/u]. Das geht auf dauer kaputt wenn man es mit Gleichpannung ansteuert. Entweder du benutzt einen Mikrocontroller, der einen LCD Treiber drin hat (gibt es leider keine Arduino-kompatiblen soweit ich weiß) oder du besorgst dir einen LCD Controller (z.B. HT1621 oder HT2123) die sind speziell für solche Anwendungen ausgelegt und sehr einfach anzusteuern. Ich würde dir aber raten, ein neues LC Display zukaufen, das schon einen Controller integriert hat oder LED display zu benutzen.

Gruß, Marv

Hallo Marv,

es handelt sich soweit das aussieht doch lediglich um 7-Segmentanzeigen (4 Digits). Nicht um ein LCD.

Mike60: laut Datenblatt arbeitet das teil mit 3 Volt

Und zwar 3 V AC, das ist Wechselspannung, so wies üblich ist für ein rohes LCD.

sschultewolter: es handelt sich soweit das aussieht doch lediglich um 7-Segmentanzeigen (4 Digits). Nicht um ein LCD.

Doch, das ist ein LCD. Steht auch im Datenblatt und im Threadtitel. 7-Segmentanzeigen gibt es nicht nur aus LEDs! Diese rohen LCDs sind aber für Anfänger höchst ungeeignet, weil sie spezielle Hardware brauchen die die mit den 3 V AC ansteuern.

Hab mal nach dem Artikel gegooglet. Jetzt weiß ich auch was das sein sollte :)

Die 3V AC habe ich beachtet. Allerdings so weit ich weiß macht das dem Display nichts, mit 5V zu betreiben. Und das AC Signal bekomme ich durch ständiges wechseln von Vcc und GND, dass damit die Lebensdauer des Displays verlängern soll.

Ein anderes Display oder ein Displaytreiber zu kaufen geht nicht, da ich dies alles in ein Gehäuse packen möchte und das ist nicht groß. So kleiner Treiber findet man nirgends die icht benötigen würde.

Grundsätzlich habe ich es geschafft alle vier Stellen anzusteuern, allerdings bekomme ich es nicht richtig hin, dass die anderen Digits mit angesteuert werden. Also wenn ich zB: an vierter Stelle einen 1 Anzeigen möchte sieht man leider auch die anderen Segmente leicht. Dafür wäre nun glaube ich die 1/4 Duty Ansteuerung, da weiß ich aber nicht wie das funktioniert?!

Hat jemand Erfahrung mit so einer Ansteuerung 1/4 Duty 1/3 Bias??

lg Tom