Tag Archives: shiftregister

737MCP mit neuen „weißen“ Anzeigen und Filter

7-Segmentanzeigen in weiß, mit und 1 bzw. 2fach Filter  

 

Telemetry in LCD

LCD vs. LCD – oder warum ist mein LCD so langsam

Nachdem jetzt doch einige gefragt haben ob ich nicht noch mehr Telemetrydaten in das rcc – (real cockpit connecktor) einbauen kann, habe ich mich entschlossen den Wünschen nachzukommen da ich ja sowieso noch einige Ideen im Hinterkopf habe.

Eine davon ist das Anzeigen der Telemetrydaten auf einem 20×4 LCD (HD44780) .

Da ich schon einige andere Arduinoprojekte mit LCD gemacht habe war die Umsetzung recht schnell erledigt.
Zu diesem Zweck habe ich mir noch ein I2C-controler besorgt. Schnell und unkompliziert, denn damit ist das LCD mit 4 Kabeln an den Arduino angeschlossen.

Jaaaa… und damit fingen die Probleme dann auch an.
Da die Daten relativ schnell kommen und nicht statisch sind, lassen sich die Werte, trotz Gegenprüfung auf alte und neue Werte im Code, schlecht lesen.

Also die grosse Glaskugel befragt und dort bin ich auf verschiedene Anschlussmöglichkeiten mit doch sehr verschiedenen Geschwindigkeiten gestoßen.
Stichwort NewLiquidCrystal

Unter anderem finden wir im oben genannen Link folgende Tabelle.

Interface    ByteXfer    16x2FPS      Ftime
----------------------------------------------
4BIT          338us        86.92     11.51ms (orignal Arduino IDE Liquid Crystal)
4BIT           98us       298.58      3.35ms
SR2W           76us       388.62      2.57ms
SR_2W          72us       406.90      2.46ms
SR_3W          61us       480.03      2.08ms
SR3W          102us       287.92      3.47ms
I2C           957us        30.74     32.25ms
I2C (GPIO)    839us        35.07     28.51ms
SR1W_HC        94us       311.41      3.21ms
SR1W_SC       116us       252.83      3.96ms

Diese Werte musste ich doch sofort überprüfen da es doch schon ein gravierender Unterschied geben soll. Zu diesem Zweck hab ich mir also ein noch rumliegendes
Shiftregister Breakout mit 74HC595 mit einem LCD 16×2 und ein LCD 16×2 mit I2C geschnappt und verkabelt.

LCD mit I2C LCD mit SR_3W
lcdi2cframes lcdi2ctrans lcdsw3frames lcdsw3trans

Fazit:
I2C ist schön weil es schnell angeschlossen ist. Aber für schnelle Zeichenwechsel auf einem LCD ist es leider nicht zu gebrauchen.
Ich werde dann jetzt mal mein Cockpit wieder zerlegen und wacker ein bischen umlöten.

shiftregister 74hc595

Mit 3 Kabel, Anzahl x Led’s, am Arduino ansteuern.

das Shift Register Breakout – 74HC595 mit Hardware SPI

Demo (8 x Led & 1 x 7 segment) mit 2 x 74HC595

#include <SPI.h>
//                      Mega2560  74HC595  ARDUINO SPI
int dataPin = 11;       // 51     SER    =   MOSI
int latchPin = 10;      // 53     RCLK   =   SS
int clockPin = 13;      // 52     SRCLK  =   SCLK

int N1[9] = {63,6,91,79,102,109,124,7,127};
int N2[9] = {0,1,3,7,15,31,63,127,255};

void setup()
{
  pinMode(latchPin, OUTPUT);   
  digitalWrite(latchPin, LOW);
 
  //Setup SPI
 SPI.setBitOrder(MSBFIRST);
 SPI.begin();  
}

void loop() {
   for (byte i=0; i < 9; i++)
    {
      writeOutput(N1[i], N2[i]);
      delay(500);
    }
}

void writeOutput(int b1, int b2)
{
    digitalWrite(latchPin, HIGH);  // Pull latch LOW to send data
    SPI.transfer(b1);
    SPI.transfer(b2);
    digitalWrite(latchPin, LOW);   // Lower the latch to apply the changes
}

breakboard_74hc595
1
WP2Social Auto Publish Powered By : XYZScripts.com