INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Von LCD-Displays auf 7-Segmentanzeigen umsteigen
24.09.2014, 15:51
Beitrag #1
Von LCD-Displays auf 7-Segmentanzeigen umsteigen
Hallo Gemeinde,

ich habe gerade ein Projekt laufen, dass die freien Parkplätze auf einem Modellbauparkplatz zählt und die freien Plätze anzeigt. Die Modelle besitzen den Maßstab 1:14 und erfordern dementsprechend großes Interieur. Will heißen die zum Testen genutzten LCD-Anzeige (1602) ist zu klein. Daher muss ich auf große 7-Segmentdisplays umrüsten.

Langer Rede kurzer Sinn: welcher Weg ist der einfachste um dieses Vorhaben umzusetzen? In der Variante für die LCD-Anzeige nutze ich eine numerische Variable der Ausgabewert im LCD-Display angezeigt wird.

Gruß
Armin de DO1XXY

#include <Servo.h>
#include <LiquidCrystal.h> //Einbindung Library für LCD-Display
#include <Wire.h> //Einbindung Library für Gerätekommunikation

/* Anzeige für eine Parkplatz ob freie Stellplätze oder belegt mit Anzeige der freien Parkplätze über
2 Stück 7-stellige Anzeigen. Ist der Parkplatz belegt, leuchten rote LEDs auf, bei freien
Stellplätzen entsprechend grüne LEDs. Die Variable für den Zälerstand wird mit "Belegung" definiert*/

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //PIN-Belegung LCDDisplay
//globale Variablendeklaration
int Belegung = 40; //Variable für den aktuellen Zählerstand
int up = 7; //Eingang PIN 2 (Anzeige erhöhen)
int down = 8; //Eingang PIN 3 (Anzeige senken)
int merkerUp = 0; //Merker für Öffnung Einfahrtsschranke
int merkerDown = 0; //Merker für Öffnung Ausfahrtsschranke
int ledfrei = 9; //LED grün für Stellplätze frei
int ledbelegt = 10; //LRED rot für Parkplatz belegt

void setup() //Hauptprogramm
{
lcd.begin(16,2); //Displaykonfiguration für 16 Zeichen, 2 Zeilen
Wire.begin(); //Initialisierung der Library <Wire.h>
pinMode(up, INPUT); //deklariert PIN 2 (Einfahrt) als Eingang
pinMode(down, INPUT); //deklariert PIN 3 (Ausfahrt) als Eingang
pinMode(ledfrei, OUTPUT);
pinMode(ledbelegt, OUTPUT);

Starttext(); //springt zur Funktion Starttext
}

void loop() //Endlosschleife
{
merkerUp = digitalRead(up); //ließt den PIN 7 (up) ein
merkerDown = digitalRead(down); //ließt den PIN 8 (down) ein

if(merkerUp == LOW)
{
Belegung = Belegung++;
delay(1000);
lcd.clear();
}

if(merkerDown == LOW)
{
Belegung = Belegung-1;
delay(1000);
lcd.clear();
}
Stellplatzanzeige(); //springt zur Funktion Stellplatzanzeige
}

void Stellplatzanzeige() //Funktion Stellplatzanzeige
{

if(Belegung == 0) //Abfrage, ob 0 Stellpätze frei sind
{
lcd.setCursor(0,0); // ----- Block abändern auf rote Besetzt LED -----
lcd.print("Parkplatz"); //Print Parkplatz
lcd.setCursor(0,1);
lcd.print("besetzt"); //Print besetzt
digitalWrite(ledbelegt, HIGH); // rote LED für "Parkplatz belegt" leuchtet auf
digitalWrite(ledfrei, LOW); // grüne LED für "Parkplatz frei" erlischt
}

if (Belegung == 1) //Abfrage, ob genau 1 Stellplatz frei ist
{
lcd.setCursor(0,0);
lcd.print(Belegung);
lcd.print(" Freier");
lcd.setCursor(0,1);
lcd.print("Parkplatz"); // Print Parkplatz
digitalWrite(ledfrei, HIGH); // grüne LED für "Parkplatz frei" leuchtet auf
digitalWrite(ledbelegt, LOW); // rote "LED Parkplatz belegt" erlischt
}

if (Belegung >= 2) //Abfrage, ob >= 2 Stellplätze frei sind
{ // ----- Block abändern auf grüne Frei LED -----
lcd.setCursor(0,0);
lcd.print(Belegung);
lcd.print(" Freie");
lcd.setCursor(0,1);
lcd.print("Parkplaetze"); // Print Parkplaetze
digitalWrite(ledfrei, HIGH); // grüne LED für "Parkplatz frei" leuchtet auf
digitalWrite(ledbelegt, LOW); // rote "LED Parkplatz belegt" erlischt
}

if (Belegung > 40) //verhindert das Zählen in den negativen Bereich
Belegung = 40;

if (Belegung < 0) //verhindert das Zählen über max. Parkplatzanzahl
Belegung = 0;
}

void Starttext() //Funktion Starttextausgabe
{

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.09.2014, 18:45
Beitrag #2
RE: Von LCD-Displays auf 7-Segmentanzeigen umsteigen
Hallo,
Du könntest alles so lassen wie es ist- benutzt aber "Big-Font"
http://www.youtube.com/results?search_qu...rduino+lcd
Das wäre der einfachste Weg...

wenn Du ein "großes" 4x20 hast, dann kannst Du da etwas machen.
Hätte auch den Vorteil, das Du andere StatusMeldungen übertragen kannst.

Oder 7-Segment-LED Anzeige, oder GLCD, oder TFT.

Das LCD mit Big-Font ist aber das einfachste.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.09.2014, 07:27
Beitrag #3
RE: Von LCD-Displays auf 7-Segmentanzeigen umsteigen
Moin Andreas,

die Displays sind definitiv zu klein. Ich benötige mindesten 70mm, eher mehr. Bei einem Elektronik Versandhändler habe ich 7-Segment Displays mit einer Höhe von 100mm gefunden, Diese entsprechen dem geplanten Vorhaben.

Zum Verständnis: wir sprechen hier von Anlagen die auf einer Fläche von 100 Quadratmeter und größer aufgebaut sind. Da ist gute Sichtbarkeit erforderlich.Außerdem geht es auf einem Parcours mitunter etwas "rauh" zu. Für die empfindlichen LCD/TFT u.a. Displays deren Sichtbereich mit Glas oder Kunststoff bedeckt sind, sicher nicht das Richtige. Bei einem Parkplatzanzeiger werden keine Statusmeldungen benötigt. Das lässt sich wie im Original mit einem bedruckten Schild, der Anzeige freier Plätze und zwei LEDs lösen.

Für mich stellt sich die Frage ob ich die Ausgabe an die 7-Segmentanzeigen über Schieberegister oder BCD zu 7-Segment Decoder realisieren soll.

Gruß
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.09.2014, 11:34
Beitrag #4
RE: Von LCD-Displays auf 7-Segmentanzeigen umsteigen
Hallo,
ich kenne die Anlagen, habe selber mal einen "ScaleArt" aufgebaut. Das aber nur
am Rande.
Üblich ist bei den ArduinosFan´s eigentlich Schieberegister.
Da Du aber nur 2 mal 1 Ziffer darstellen willst, könnte man das auch statisch
programmieren. Wenn Dein Arduino genung Pin´s hat, könnte man die 7-Seg-LED´s
auch "zu Fuss" ansteuern. Der Sketch dazu:

Code:
/*
* SevenSegment sketch
* Shows numerals ranging from 0 through 9 on a single-digit display
* This example counts seconds from 0 to 9
*/

// bits representing segments A through G (and decimal point) for numerals 0-9
const byte numeral[10] = {
  //ABCDEFG /dp
  B11111100,  // 0
  B01100000,  // 1
  B11011010,  // 2
  B11110010,  // 3
  B01100110,  // 4
  B10110110,  // 5
  B00111110,  // 6
  B11100000,  // 7
  B11111110,  // 8
  B11100110,  // 9
};

// pins for decimal point and each segment
//                          dp,G,F,E,D,C,B,A
const int segmentPins[8] = { 5,9,8,7,6,4,3,2};

void setup()
{
  for(int i=0; i < 8; i++)
  {
    pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output
  }
}

void loop()
{
  for(int i=0; i <= 10; i++)
  {
    showDigit(i);
    delay(1000);
  }
  // the last value if i is 10 and this will turn the display off
  delay(2000);  // pause two seconds with the display off
}

// Displays a number from 0 through 9 on a 7-segment display
// any value not within the range of 0-9 turns the display off
void showDigit( int number)
{
  boolean isBitSet;

  for(int segment = 1; segment < 8; segment++)
  {
    if( number < 0 || number > 9){
      isBitSet = 0;   // turn off all segments
    }
    else{
      // isBitSet will be true if given bit is 1
      isBitSet = bitRead(numeral[number], segment);
    }
    isBitSet = ! isBitSet; // remove this line if common cathode display
    digitalWrite( segmentPins[segment], isBitSet);
  }
}

Eine andere Möglichkeit wäre, es über Multiplexing zu machen.
Du bräuchtest 8 Datenleitungen und 2 Steuerleitungen. Im Sketch würde es dann
so gemacht:

Code:
/*
* SevenSegmentMpx sketch
* Shows numbers ranging from 0 through 9999 on a four-digit display
* This example displays the value of a sensor connected to an analog input
*/

// bits representing segments A through G (and decimal point) for numerals 0-9
const int numeral[10] = {
  //ABCDEFG /dp
  B11111100,  // 0
  B01100000,  // 1
  B11011010,  // 2
  B11110010,  // 3
  B01100110,  // 4
  B10110110,  // 5
  B00111110,  // 6
  B11100000,  // 7
  B11111110,  // 8
  B11100110,  // 9
};

// pins for decimal point and each segment
                         // dp,G,F,E,D,C,B,A
const int segmentPins[] = { 4,7,8,6,5,3,2,9};

const int nbrDigits= 4;  // the number of digits in the LED display

                             //dig  1  2  3  4
const int digitPins[nbrDigits] = { 10,11,12,13};

void setup()
{
  for(int i=0; i < 8; i++)
    pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output

  for(int i=0; i < nbrDigits; i++)
    pinMode(digitPins[i], OUTPUT);
}

void loop()
{
  int value = analogRead(0);
  showNumber(value);
}

void showNumber( int number)
{
  if(number == 0)
    showDigit(0, nbrDigits-1) ; // display 0 in the rightmost digit
  else
  {
    // display the value corresponding to each digit
    // leftmost digit is 0, rightmost is one less than the number of places
    for (int digit = nbrDigits-1; digit >= 0; digit--)
    {
      if(number > 0)
      {
         showDigit(number % 10, digit)  ;
         number = number / 10;
      }
    }
  }
}

// Displays given number on a 7-segment display at the given digit position
void showDigit( int number, int digit)
{
  digitalWrite( digitPins[digit], HIGH );
  for (int segment = 1; segment < 8; segment++)
  {
    boolean isBitSet = bitRead(numeral[number], segment);
    // isBitSet will be true if given bit is 1
    isBitSet = ! isBitSet; // remove this line if common cathode display
    digitalWrite(segmentPins[segment], isBitSet);
  }
  delay(5);
  digitalWrite(digitPins[digit], LOW );
}

Wenn Du Schieberegister bevorzugst könnte man den MAX7221 nehmen. Dann
bräuchtes Du für eine 4-stellige Anzeige 3 Datenleitungen.
Der Sketch dazu:

Code:
/*
*  Max7221_digits
*/

#include <SPI.h>  // Arduino SPI library introduced in Arduino version 0019

const int slaveSelect = 10;   // pin used to enable the active slave
const int numberOfDigits = 2; // change these to match the number
                              // of digits wired up
const int maxCount = 99;
int number = 0;

void setup()
{
  Serial.begin(9600);
  SPI.begin();   // initialize SPI
  pinMode(slaveSelect, OUTPUT);
  digitalWrite(slaveSelect,LOW);  //select slave
  // prepare the 7221 to display 7-segment data - see data sheet
  sendCommand(12,1);  // normal mode (default is shutdown mode);
  sendCommand(15,0);  // Display test off
  sendCommand(10,8);  // set medium intensity (range is 0-15)
  sendCommand(11,numberOfDigits);  // 7221 digit scan limit command
  sendCommand(9,255); // decode command, use standard 7-segment digits
  digitalWrite(slaveSelect,HIGH);  //deselect slave
}

void loop()
{
  // display a number from the serial port terminated by the end of line
  // character
  if (Serial.available())
  {
     char ch  = Serial.read();
     if( ch == '\n')
     {
       displayNumber(number);
       number = 0;
     }
     else
     number = (number * 10) + ch - '0'; // see Chapter 4 for details
  }
}

// function to display up to four digits on a 7-segment display
void displayNumber( int number)
{
  for (int i = 0; i < numberOfDigits; i++)
  {
    byte character = number % 10;  // get the value of the rightmost decade
    if(number == 0 && i > 0)
       character = 0xf;  // the 7221 will blank the segments when receiving value
    // send digit number as command, first digit is command 1
    sendCommand(numberOfDigits-i, character);
    number = number / 10;
  }
}

void sendCommand(int command, int value)
{
  digitalWrite(slaveSelect,LOW); //chip select is active low
  //2-byte data transfer to the 7221
  SPI.transfer(command);
  SPI.transfer(value);
  digitalWrite(slaveSelect,HIGH); //release chip, signal end transfer
}

Du könntest auch eine LED-Matrix mit dem MAX 7219/7221 ansteuern, dann würdest
Du in der Größe nicht beschränkt. Sketch:

Code:
/*
* Hello Matrix
* by Nicholas Zambetti <http://www.zambetti.com>
* Demonstrates the use of the Matrix library
* For MAX7219 LED Matrix Controllers
* Blinks welcoming face on screen
*/    

// the following two libraries are not provided with the 1.0 distribution
// see the text for links to the download
#include <Sprite.h>  
#include <Matrix.h>

const int loadPin  = 2;
const int clockPin = 3;
const int dataPin  = 4;

Matrix myMatrix = Matrix(dataPin, clockPin, loadPin); // create Matrix instance

void setup()
{
}

void loop()
{
  myMatrix.clear(); // clear display

  delay(1000);

  // turn some pixels on
  myMatrix.write(1, 5, HIGH);
  myMatrix.write(2, 2, HIGH);
  myMatrix.write(2, 6, HIGH);
  myMatrix.write(3, 6, HIGH);
  myMatrix.write(4, 6, HIGH);
  myMatrix.write(5, 2, HIGH);
  myMatrix.write(5, 6, HIGH);
  myMatrix.write(6, 5, HIGH);

  delay(1000);
}

Dann gäbe es da noch den TLC5940 oder das "CharliePlexing.

Wie Du siehst, siehst Du nichts.
Ob nun Schieberegister, BCD, manuell oder Matrix spielt im großen und ganzen
keine Rolle. Es wird sich wohl danach entscheiden, wie Du sie elektrisch
ansteuern möchtest.
Und ACHTE DARAUF- ob Deine 7-Seg-LED´s gemeinsame Anode oder Kathode benötigen.
Du währest nicht der erste, der darauf reinfällt.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.09.2014, 11:53
Beitrag #5
RE: Von LCD-Displays auf 7-Segmentanzeigen umsteigen
(25.09.2014 11:34)SkobyMobil schrieb:  Hallo,
ich kenne die Anlagen, habe selber mal einen "ScaleArt" aufgebaut. Das aber nur
am Rande.
Üblich ist bei den ArduinosFan´s eigentlich Schieberegister.
Da Du aber nur 2 mal 1 Ziffer darstellen willst, könnte man das auch statisch
programmieren. Wenn Dein Arduino genung Pin´s hat, könnte man die 7-Seg-LED´s
auch "zu Fuss" ansteuern. Der Sketch dazu:

Code:
/*
* SevenSegment sketch
* Shows numerals ranging from 0 through 9 on a single-digit display
* This example counts seconds from 0 to 9
*/

// bits representing segments A through G (and decimal point) for numerals 0-9
const byte numeral[10] = {
  //ABCDEFG /dp
  B11111100,  // 0
  B01100000,  // 1
  B11011010,  // 2
  B11110010,  // 3
  B01100110,  // 4
  B10110110,  // 5
  B00111110,  // 6
  B11100000,  // 7
  B11111110,  // 8
  B11100110,  // 9
};

// pins for decimal point and each segment
//                          dp,G,F,E,D,C,B,A
const int segmentPins[8] = { 5,9,8,7,6,4,3,2};

void setup()
{
  for(int i=0; i < 8; i++)
  {
    pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output
  }
}

void loop()
{
  for(int i=0; i <= 10; i++)
  {
    showDigit(i);
    delay(1000);
  }
  // the last value if i is 10 and this will turn the display off
  delay(2000);  // pause two seconds with the display off
}

// Displays a number from 0 through 9 on a 7-segment display
// any value not within the range of 0-9 turns the display off
void showDigit( int number)
{
  boolean isBitSet;

  for(int segment = 1; segment < 8; segment++)
  {
    if( number < 0 || number > 9){
      isBitSet = 0;   // turn off all segments
    }
    else{
      // isBitSet will be true if given bit is 1
      isBitSet = bitRead(numeral[number], segment);
    }
    isBitSet = ! isBitSet; // remove this line if common cathode display
    digitalWrite( segmentPins[segment], isBitSet);
  }
}

Eine andere Möglichkeit wäre, es über Multiplexing zu machen.
Du bräuchtest 8 Datenleitungen und 2 Steuerleitungen. Im Sketch würde es dann
so gemacht:

Code:
/*
* SevenSegmentMpx sketch
* Shows numbers ranging from 0 through 9999 on a four-digit display
* This example displays the value of a sensor connected to an analog input
*/

// bits representing segments A through G (and decimal point) for numerals 0-9
const int numeral[10] = {
  //ABCDEFG /dp
  B11111100,  // 0
  B01100000,  // 1
  B11011010,  // 2
  B11110010,  // 3
  B01100110,  // 4
  B10110110,  // 5
  B00111110,  // 6
  B11100000,  // 7
  B11111110,  // 8
  B11100110,  // 9
};

// pins for decimal point and each segment
                         // dp,G,F,E,D,C,B,A
const int segmentPins[] = { 4,7,8,6,5,3,2,9};

const int nbrDigits= 4;  // the number of digits in the LED display

                             //dig  1  2  3  4
const int digitPins[nbrDigits] = { 10,11,12,13};

void setup()
{
  for(int i=0; i < 8; i++)
    pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output

  for(int i=0; i < nbrDigits; i++)
    pinMode(digitPins[i], OUTPUT);
}

void loop()
{
  int value = analogRead(0);
  showNumber(value);
}

void showNumber( int number)
{
  if(number == 0)
    showDigit(0, nbrDigits-1) ; // display 0 in the rightmost digit
  else
  {
    // display the value corresponding to each digit
    // leftmost digit is 0, rightmost is one less than the number of places
    for (int digit = nbrDigits-1; digit >= 0; digit--)
    {
      if(number > 0)
      {
         showDigit(number % 10, digit)  ;
         number = number / 10;
      }
    }
  }
}

// Displays given number on a 7-segment display at the given digit position
void showDigit( int number, int digit)
{
  digitalWrite( digitPins[digit], HIGH );
  for (int segment = 1; segment < 8; segment++)
  {
    boolean isBitSet = bitRead(numeral[number], segment);
    // isBitSet will be true if given bit is 1
    isBitSet = ! isBitSet; // remove this line if common cathode display
    digitalWrite(segmentPins[segment], isBitSet);
  }
  delay(5);
  digitalWrite(digitPins[digit], LOW );
}

Wenn Du Schieberegister bevorzugst könnte man den MAX7221 nehmen. Dann
bräuchtes Du für eine 4-stellige Anzeige 3 Datenleitungen.
Der Sketch dazu:

Code:
/*
*  Max7221_digits
*/

#include <SPI.h>  // Arduino SPI library introduced in Arduino version 0019

const int slaveSelect = 10;   // pin used to enable the active slave
const int numberOfDigits = 2; // change these to match the number
                              // of digits wired up
const int maxCount = 99;
int number = 0;

void setup()
{
  Serial.begin(9600);
  SPI.begin();   // initialize SPI
  pinMode(slaveSelect, OUTPUT);
  digitalWrite(slaveSelect,LOW);  //select slave
  // prepare the 7221 to display 7-segment data - see data sheet
  sendCommand(12,1);  // normal mode (default is shutdown mode);
  sendCommand(15,0);  // Display test off
  sendCommand(10,8);  // set medium intensity (range is 0-15)
  sendCommand(11,numberOfDigits);  // 7221 digit scan limit command
  sendCommand(9,255); // decode command, use standard 7-segment digits
  digitalWrite(slaveSelect,HIGH);  //deselect slave
}

void loop()
{
  // display a number from the serial port terminated by the end of line
  // character
  if (Serial.available())
  {
     char ch  = Serial.read();
     if( ch == '\n')
     {
       displayNumber(number);
       number = 0;
     }
     else
     number = (number * 10) + ch - '0'; // see Chapter 4 for details
  }
}

// function to display up to four digits on a 7-segment display
void displayNumber( int number)
{
  for (int i = 0; i < numberOfDigits; i++)
  {
    byte character = number % 10;  // get the value of the rightmost decade
    if(number == 0 && i > 0)
       character = 0xf;  // the 7221 will blank the segments when receiving value
    // send digit number as command, first digit is command 1
    sendCommand(numberOfDigits-i, character);
    number = number / 10;
  }
}

void sendCommand(int command, int value)
{
  digitalWrite(slaveSelect,LOW); //chip select is active low
  //2-byte data transfer to the 7221
  SPI.transfer(command);
  SPI.transfer(value);
  digitalWrite(slaveSelect,HIGH); //release chip, signal end transfer
}

Du könntest auch eine LED-Matrix mit dem MAX 7219/7221 ansteuern, dann würdest
Du in der Größe nicht beschränkt. Sketch:

Code:
/*
* Hello Matrix
* by Nicholas Zambetti <http://www.zambetti.com>
* Demonstrates the use of the Matrix library
* For MAX7219 LED Matrix Controllers
* Blinks welcoming face on screen
*/    

// the following two libraries are not provided with the 1.0 distribution
// see the text for links to the download
#include <Sprite.h>  
#include <Matrix.h>

const int loadPin  = 2;
const int clockPin = 3;
const int dataPin  = 4;

Matrix myMatrix = Matrix(dataPin, clockPin, loadPin); // create Matrix instance

void setup()
{
}

void loop()
{
  myMatrix.clear(); // clear display

  delay(1000);

  // turn some pixels on
  myMatrix.write(1, 5, HIGH);
  myMatrix.write(2, 2, HIGH);
  myMatrix.write(2, 6, HIGH);
  myMatrix.write(3, 6, HIGH);
  myMatrix.write(4, 6, HIGH);
  myMatrix.write(5, 2, HIGH);
  myMatrix.write(5, 6, HIGH);
  myMatrix.write(6, 5, HIGH);

  delay(1000);
}

Dann gäbe es da noch den TLC5940 oder das "CharliePlexing.

Wie Du siehst, siehst Du nichts.
Ob nun Schieberegister, BCD, manuell oder Matrix spielt im großen und ganzen
keine Rolle. Es wird sich wohl danach entscheiden, wie Du sie elektrisch
ansteuern möchtest.
Und ACHTE DARAUF- ob Deine 7-Seg-LED´s gemeinsame Anode oder Kathode benötigen.
Du währest nicht der erste, der darauf reinfällt.
Gruß und Spaß
Andreas


Hallo Andreas,

danke für die sehr ausführliche Antwort.

Anode/Kathode: meine Prüfung zum Informationselektronier fand vor langer Zeit statt (1981), aber das ist dann doch noch hängengeblieben Wink

Mit Schieberegistern (74HC595 aus der Bastelkiste) hatte ich auch schön geliebäugelt. Die Methode der Direktansteuerung einzelner Segmente ist ziemlich aufwändig. Ursprünglich hatte ich eine Ansteuerung über einenn 6bit BCD-Wert angedacht, aber die von Dir aufgeführten Alternativen sind sehr interressant.
Auf jeden Fall bin ich einen Schritt weiter.

Gruß und Danke
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste