Forum: Mikrocontroller und Digitale Elektronik Pollin Tian Ma A2C00050374


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von google (Gast)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Wie bereits in Beitrag "Pollin TIAN MA A2C00096100 LCD Modul" versprochen, 
anbei nun die Pinbelegung für das bei Pollin erhältliche Tian Ma 
A2C00050374 LC-Glas, jedoch ohne Gewähr für die Richtigkeit.

Das Display hat 30 Anschlüsse, 4 Backplanes und 22 Segmentanschlüsse. 4 
Segmentanschlüsse sind nicht belegt, obwohl verdrahtet.

Das "CITROEN" ist ein eigenes Segment und kann ausgeschaltet bleiben. 
Eine Aussteuerungsanzeige ist mit etwas Softwareaufwand möglich. 
(Bereits mit Arduino angetestet)

Ansteuerung z.B. hier:
http://www.dieelektronikerseite.de/Lections/LCD-An...

und hier: http://awawa.hariko.com/avr_lcd_drive_en.html

Bezeichnungskonventionen wie üblich bei Siebensegmentanzeigen, COM meint
die backplane, 1_1 meint den ersten Teilstrich zwischen Skala 0 und 1, 
2_5 meint den fünften Teilstrich zwischen 4 und 5, usw.

Beitrag "LCD ohne Kennzeichnung, 2x9 Pin, Pollin Sortiment"
Beitrag "LCD ohne Kennzeichnung, 1x23 Pin, Pollin Sortiment"
Beitrag "Pollin Display Sortiment 2x 25 Pin LC-Glas"
Beitrag "LCD ohne Kennzeichnung, 1x22 Pin, Pollin-Sortiment"

von google (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei ein Video von einer simulierten Aussteuerungsanzeige, auf die 
Schnelle zusammengehackt in Arduino. Die Zwischenstriche fehlen, weil 
die Arduino-"Bibliothek" (siehe Kommentar im Source) die 
read-modify-write Funktion des benutzten LCD-Controllers HT1621B nicht 
unterstützt, d. h., es wird pro Segmentanschluss immer nur das zuletzt 
aktive Segment angezeigt, die vorherigen werden nach dem Setzen jeweils 
wieder durch das nächste Setzen "leer" überschrieben. Daher rühren auch 
die ungleichen Abstände im oberen Bereich, weil dort die anderen Zeichen 
dazukommen und die senkrechten Striche nicht mehr gleichmäßig im 
Speicher des HT1621B verteilt sind.

Wenn man read-modify-write benutzt, ergibt das jedoch einen schönen, 
sich kontinuierlich bewegenden Balken.
1
/*
2
 Based on Arduino Library for 8-Chars HT1621 LCD-Displays
3
 
4
 2013-11-03: V1.0 - Initial Version
5
 
6
 Copyright 2013 PLAY-ZONE GmbH | http://www.play-zone.ch | info@play-zone.ch
7
*/
8
9
#include <LCDHT1621_7Seg_4Com.h>
10
11
12
// erstes Halbbyte Speicheradresse des HT1621B
13
// 2. Halbbyte Position innerhalb der Speicherstelle
14
// -> nur für einen Schnelltest, für die Nutzung des 
15
// Gesamtbereiches ist diese Kodierung ungeeignet
16
17
static const char flow[] = {
18
19
0x18, 0x14, 0x12, 0x11, 0x21, 0x22, 0x24, 0x28, 0x38, 0x34, /* 0 bis 1 */
20
0x32, 0x31, 0x41, 0x42, 0x44, 0x48, 0x68, 0x64, 0x62, 0x61, /* 1 bis 2 */
21
0x71, 0x72, 0x74, 0x78, 0x88, 0x84, 0x82, 0x94, 0x98, 0xd4, /* 2 bis 3 */
22
0xd2, 0xd1, 0xe1, 0xe2, 0xe4, 0xe8, 0x00, 0x00, 0x00, 0x00, /* 3 bis 4 */
23
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* leer */
24
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  /* leer */
25
  
26
};
27
      
28
29
30
31
// CS on Pin A2
32
// WR on Pin A3
33
// DATA on Pin A4
34
// BACKLIGHT (+) on Pin A5
35
LCDHT1621 lcd(A2,A3,A4,A5);  
36
37
void setup() {
38
  // Init the LCD
39
  lcd.init();
40
  randomSeed(analogRead(0));
41
}
42
43
void loop() {
44
  
45
  for (byte i = 0; i < random(15, 60); i++) {
46
    
47
    lcd.setOneSegment((flow[i]&0xf0)>>4,(flow[i]&0x0f)<<4); 
48
    delay(5);
49
     }
50
  delay(30);
51
  lcd.allOff();
52
}

Die gewählte Kodierung ist ungeeignet, weil sie nur 15 Speicherstellen 
adressieren kann, der HT1621B aber 32, das Display immerhin auch 22 mit 
Symbolen belegte Segmentanschlüsse hat und demzufolge auch mindestens 22 
Speicherstellen benutzen muss.

von google (Gast)


Bewertung
0 lesenswert
nicht lesenswert
kleine Verschlimmbesserung der Kodierung, (auf Basis meines 
Anschlussplanes, siehe obiges PDF) um den ganzen Bereich zu nutzen:
1
static const int16_t flow[] = {
2
3
0x0108, 0x0104, 0x0102, 0x0101, 0x0201, 0x0202, 0x0204, 0x0208, 0x0308, 0x0304, /* 0 bis 1 */
4
0x0302, 0x0301, 0x0401, 0x0402, 0x0404, 0x0408, 0x0608, 0x0604, 0x0602, 0x0601, /* 1 bis 2 */
5
0x0701, 0x0702, 0x0704, 0x0708, 0x0808, 0x0804, 0x0802, 0x0904, 0x0908, 0x0d04, /* 2 bis 3 */
6
0x0d02, 0x0d01, 0x0e01, 0x0e02, 0x0e04, 0x0e08, 0x1108, 0x1104, 0x1102, 0x1101, /* 3 bis 4 */
7
0x1201, 0x1202, 0x1204, 0x1308, 0x1304, 0x1302, 0x1301, 0x1401, 0x1402, 0x1404, /* 4 bis 5 */
8
0x1508, 0x1504, 0x1502, 0x1501, 0x1601, 0x1602, 0x1604, 0x1704, 0x1702, 0x1701  /* 5 bis 6 */
9
  
10
};

In der loop anpassen:
1
lcd.setOneSegment((flow[i]&0xff00)>>8,(flow[i]&0x000f)<<4);

Jetzt fehlt nur noch read-modify-write in der lib.

von google (Gast)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Read-Modify-Write ist implementiert, jetzt sieht es gut aus. :-)

In der Kodierung war noch ein Zählfehler, (bis mehr als 10 zählen ist 
manchmal schwierig) so ist es richtig:
1
static const int16_t flow[] = {
2
3
0x0108, 0x0104, 0x0102, 0x0101, 0x0201, 0x0202, 0x0204, 0x0208, 0x0308, 0x0304, /* 0 bis 1 */
4
0x0302, 0x0301, 0x0401, 0x0402, 0x0404, 0x0408, 0x0608, 0x0604, 0x0602, 0x0601, /* 1 bis 2 */
5
0x0701, 0x0702, 0x0704, 0x0708, 0x0808, 0x0804, 0x0802, 0x0904, 0x0908, 0x0d04, /* 2 bis 3 */
6
0x0d02, 0x0d01, 0x0e01, 0x0e02, 0x0e04, 0x0e08, 0x1008, 0x1004, 0x1002, 0x1001, /* 3 bis 4 */
7
0x1101, 0x1102, 0x1104, 0x1208, 0x1204, 0x1202, 0x1201, 0x1301, 0x1302, 0x1304, /* 4 bis 5 */
8
0x1408, 0x1404, 0x1402, 0x1401, 0x1501, 0x1502, 0x1504, 0x1604, 0x1602, 0x1601  /* 5 bis 6 */
9
  
10
};

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
google schrieb:
> Pinbelegung.pdf

Vielen Dank für die Mühe, die du dir damals schon mit dem Display 
gemacht hast. Da es mittlerweile nur noch 5ct kostet, habe ich mir auch 
mal 4 Stück hingelegt. Ich war erstaunt, das die LCD einzeln verpackt im 
Pappkarton kamen, bei 5ct ist das schon für den Karton ein Schnäppchen.
Ebenso finde ich beachtenswert, wie die Jungs das R von Citroen in die 
Ziffer bekommen haben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.