Pages: 1 [2]   Go Down
Author Topic: 4 LCD's an Arduino ?  (Read 1748 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich finde das Steuerpult klasse, hätte aber die Ausschnitte für die Displays nur so groß gemacht wie die sichtbare Displayfläche. Sahnehäubchen wäre dann die unsichtbare Befestigung der LCDs. smiley-wink


Da gebe ich dir recht, nur habe ich den Ausschnitt mit Säge und Feile raus gearbeitet und so fällt es nicht auf , das nicht alles so 100 prozentig gerade ist smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Damit brauchst Du keine Indizes hochzählen. Wenn der Speicher knapp wird, kannst Du die Arrays auch im Flash-Speicher ablegen, dann dümpeln die eh unveränderlichen Daten nicht im knappen RAM rum.

Hallo , wie bekomme ich die Arrays in den Flashspeicher , ich suche mir nämlich grade einen Ast !

Dank im voraus !
Logged

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1125
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Schau mal hier ist das ausgeführt
Progmem ist das zauberwort
http://www.arduino.cc/en/Reference/PROGMEM

Gruß
Der Dani
Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vielen Dank !
Es funktioniert,aber nur um sicher zugehen sicher zugehen ,ist das so richtig

prog_char* Loks[61] ={"-------","Adler","AE3/6","AE 8/14"........};
prog_uint16_t Adressen[61] ={0,78,6,24,1,3,36,5,10,17.........};
Logged

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1125
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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
Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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
Code:
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ß
« Last Edit: March 15, 2013, 12:08:32 pm by benny123 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 !
Code:
#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(){

}
Logged

Pages: 1 [2]   Go Up
Jump to: