4 LCD's an Arduino ?

volvodani:

prog_char* Loks[61] PROGMEM ={"-------","Adler","AE3/6","AE 8/14"........};

prog_uint16_t Adressen[61] PROGMEM ={0,78,6,24,1,3,36,5,10,17.........};



Ich glaube es ist so Richtig.
Gruß
Der Dani

Leider funktioniert das so nicht , wenn ich PROGMEM dazu schreibe , erscheint keine Lokbeschreibung auf dem Display
Im Programm übergebe ich die Daten an eine Variable

LCDText[0]=String(Loks[4];  // in dem Beispiel wäre das AE 8/14

//diese wiederum wird dann später ans LCD geschickt

lcd[1].print([0]);

Ich weiß nicht mehr weiter !
Gruß

Hab jetzt nochmal mit PROGMEM in einem Extra Sketch experimentiert , hier funktioniert es ,
Wenn ich das aber in meinem eigentlichen Sketch einbau ,geht's nicht !

#include <EEPROM.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <LiquidCrystal.h>
#include <avr/pgmspace.h>
#define NUM_LCD 4


LiquidCrystal lcd[NUM_LCD] = {
  LiquidCrystal(23, 24, 25, 29, 30, 31, 32),
  LiquidCrystal(23, 24, 26, 29, 30, 31, 32),
  LiquidCrystal(23, 24, 27, 29, 30, 31, 32), 
  LiquidCrystal(23, 24, 28, 29, 30, 31, 32)};

prog_char* Loks[64] PROGMEM={
  "-------","Adler","AE3/6","AE 8/14","BR01","BR03","BR03 Stroml",  "BR05","BR10","BR17","Rheingold","BR18.1","BR38","BR41","BR50","BR52 grau","BR53","BR80","BR81","BR85",
  "BR86","BR89","BR93","BR96","BR120","BR194", "BR212Trak","BR360","CargoSpri","DR212","E04","E19 blau","E19 Rot","E40","E52","E69","E70","E91","E103","E118b ",
  "E120","E151","Geisling","Heizerlok","Koef","Krokodil","Museumlok","ICE","Pendolino","Rottenkraft","Schienenbus","SVT137","Torflok","Unicef","V36","V100.20","VT11.5","V160 grau","V160 rot","V221",
  "Zeppelin","----","----","----"   };

prog_uint8_t Adressen[64] PROGMEM={
  0,78,6,24,1,3,36,5,10,17,18,17,36,41,50,0,53,79,78,8,
  66,76,73,9,12,64,22,60,70,20,4,74,19,40,52,24,70,67,33,19,
  12,51,23,46,3,22,19,2,47,3,60,0,70,17,38,10,115,47,16,21,
  24,0,0,0          };

String LCDText[5];

void setup(){
  for (int i = 0; i < NUM_LCD; i++){
    lcd[i].begin(20, 4);
    lcd[i].clear();
  }
  LCDText[0]=String(Loks[5])+"/"+String(Adressen[5]); // Übergabe an die Variable LCDText[]
  lcd[0].setCursor(2, 0);
  lcd[0].print(LCDText[0]);// Ausdruck
}
void loop(){

}