Pages: 1 ... 6 7 [8] 9 10 ... 31   Go Down
Author Topic: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...)  (Read 55418 times)
0 Members and 2 Guests are viewing this topic.
Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, ja das geht:
Code:
LCDML.getFunction()

Die Funktion sollte dir die ID des Menüpunktes liefern.

Es wird wohl mal Zeit, das ich die Dokumentation anpasse an alle Änderungen/Möglichkeiten ;-)

Logged

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

Funktioniert , vielen Dank
Logged

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

Nabend,

zuerst einmal vielen Dank und großes Lob für diese tolle Lib. Sie ist (fast) genau passend für mein aktuelles Projekt.

Das fast oben bezieht sich auf mein kleines Problem:

Da mir die Pins auszugehen drohen habe ich mir eine I2C-Platine für mein LCD bestellt. Dieses nutzt eine erweiterte Version der LiquidCrystal-Lib, die du ja auch in Deiner benutzt. Die Befehle sind kompatibel, aber die Initialisierung macht mir Probleme. Bisher habe ich folgendes geändert:

- include der LiquidCrystal_I2C.h anstatt LiquidCrystal.h in allen Dateien
- include der Wire.h in der Hauptdatei
- Ersetzen von LiquidCrystal lcd(_LCDMenuLib_PIN........) durch LiquidCrystal_I2C (0x20) //Adresse des Displays.

Aber trotzdem wirft er mit Fehlermeldungen um sich.

Leider bin ich noch nicht wirklich fit im Programmieren. Würde mich daher freuen, wenn du mal versuchen könntest die modifizierte LCD-Lib in dein Menü einzubauen oder zumindest ein kurzes Workaround tippen, was ich an deiner Lib ändern muss, um ein LCD über I2C anzusprechen.

Beste Grüße
Christopher
Logged

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Lib ist noch nicht zu I2C kompatibel, ich arbeite im Moment daran, aber es dauert ein wenig, da sonst auch viel zu tun ist. Beim Umschreiben kann ich keine Hilfestellung geben, da jeder sonst mit eigenen Wünschen kommt. ;-) Ich werde das innerhalb der nächsten zwei Wochen nochmals mit I2C testen und die Beta Lib dann hier zum testen zur Verfügung stellen.
Logged

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, ging doch schneller als gedacht.
Ich habe eine neue Beta Version. In dieser befinden sich nun zwei Beispiele. Das erste ist auch das alte mit der normalen LiquidCrystal Lib. Das zweite arbeitet mit der LiquidCrystal_I2C Lib (LiquidCrystal_New).

Falls ihr I2C verwenden solltet, müsst ihr in der LCDMenuLib_config.h  die Variabel LCDMenuLib_cfg_lcd_type auf das verwendete LCD anpassen. I2C fängt mit den Werten ab 10 an. Die Beschreibung der Zahlenwerte steht oberhalb der Variable. Standardmäßig ist der Wert auf 0 gesetzt. Dies entspricht der normalen LiquidCrystal Lib im 4Bit Modus.

Wenn ihr das Anpassen der Variable vergessen habt, bekommt ihr eine Fehlermeldung die sagt, dass einige Konstanten nicht definiert sind.

Bitte testet mal die Version.

Bekannte Probleme:
- Scollbalken wird Fehlerhaft dargestellt.  
- - Der Bug ist in der nächsten Version behoben, zudem belegt die nächste Version etwas weniger RAM und ca 400KB weniger Flash Speicher.

Edit:
- Lib erneut hochgeladen
« Last Edit: September 08, 2013, 11:45:40 am by Jomelo » Logged

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

Hi,

klasse, dass du dich so schnell um die I2C-Einbindung gekümmert hast.

Leider finde ich weder die Variable LCDMenuLib_cfg_lcd_type noch das zweite Beispiel das du in der Beta aus deinem letzten Post.

Beste Grüße
Logged

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ops, ich habe die alte Lib nochmal hochgeladen. Die Datei ist nun aktualisiert.
Logged

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

Ah jetzt ja. smiley Besten Dank für die schnelle Antwort. Ich spiele mal ein bisschen mit deiner Lib rum.

Dankö!
Logged

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

Guten Abend,

gibt es die Möglichkeit, das die CallBack Funktion noch mal aufgerufen wird, wenn ein Menüpunkt abgebrochen wird.
Zur Erklärung: Ich möchte einen automatischen Messzyklus unterbrechen sobald der User über das Menü  Einstellungen an den Parametern vornimmt.
Das löse ich derzeit über eine Variable die gesetzt wird, sobald das Einstellungsmenü aufgerufen wird. Jetzt möchte ich diese ja wieder löschen.

LCDML.FuncEnd(... wird ja nicht beim Backbutton aufgerufen ...
Logged

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, nein die gibt es so nicht, da ansonsten der Menüpunkt wieder angezeigt werden würde.

Ich würde es so machen, dass in der Variable die du schon verwendest einen Zeitwert mit millis() abspeichert wirt. Solange der Menüpunkt aktive ist wird in diesem die Variable immer mit dem aktuellen Zeitwert + einem Puffer von 500 ms überschrieben. Der Variable Typ sollte "long" sein.
Code:
//im Menü
variable = millis()+500;

in der Loop Schleife kannst du dann abfragen, ob der Wert noch aktualisiert wird.
Code:
void loop()
{
   // ... Initialisierung menü und so ..
   //..
   //
   if(variable < millis()) {
     // messung läuft
   } else {
     // messung steht
   }  
}
Das ganze ist nur Pseudo-Code, also so nicht lauffähig, soll aber darstellen wie es funktionieren könnte.

Spätestens nach 500 ms läuft dann deine Messung wieder.
Logged

Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1451
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit der Lib 1.2.1 funzt weder das eine noch das andere Beispiel.

Bei l2c gibts dass:
Code:
'_LCDMenuLib_LCD_dat3' was not declared in this scope
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm, irgendwie ist das Verrückt und Merkwürdig. Ich kann beide Beispiel kompilieren und das ohne I2C auch testen. Was hast du denn in der Config eingestellt ?

In der I2C Version gibt es kein _LCDMenuLib_lcd_dat 3.  Wenn der Fehler kommt wurde die LCDMenuLib_config.h nicht angepasst. Hast du den Wert:  _LCDMenuLib_cfg_lcd_type    richtig eingestellt ?
« Last Edit: September 09, 2013, 02:13:49 am by Jomelo » Logged

Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1451
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Was für konfig? Ich hab die neue LCD Lib eingefügt und die beiden Beispiele geöffnet.  Beim kompilieren gibts dann die Fehler.
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 662
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Geh mal in das Lib Verzeichnis und öffne die Config Datei. Im Moment ist es leider noch so, aber anders kann ich die Includes nicht einbinden.
Logged

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

Hey Jamelo ich habe entdeckt dass du an einer kicker Geschwindigkeitsmessung gearbeitet hast. Ich habe das selbe Projekt vor. habe auch schon viel Zeit reingesteckt allerdings ist das als arduino Neuling nicht sehr einfach. Deshalb wollte ich dich fragen ob du mir helfen könntest. Eventuell mit dem Programmtext smiley
Logged

Pages: 1 ... 6 7 [8] 9 10 ... 31   Go Up
Jump to: