Go Down

Topic: Bargraph alternative bzw. neu programmieren (Read 512 times) previous topic - next topic

niklas87

Hey,

ich hätte gerne auf einen 4x20LCD mehrere unterschiedliche Graphen so wie diesen :
http://playground.arduino.cc/Code/LcdBarGraph

allerdings ist bei dieser fertigen Libary das Problem, dass man man nur einen Graph Zeichnen kann.
Ich möchte aber in 4 Zeilen einen mit unterschiedlichen Werten.

Das soll keine Aufforderung zum Programmieren sein, aber ich steh heute irgendwie total auf dem Schlauch und weiß einfach nicht wie ich das am besten Lösen kann.
Vielleicht gibt es noch eine bessere Libary.
MFG


niklas87

so ich hab was...allerdings funktioniert das löschen der Zeichen noch nicht.



Code: [Select]
float oldit=0;
float d=0;
  float it = map(Boardspannung, 0, 15, 0, 15);  // take our input and break it down to 16
  lcd.setCursor(0, 4); // print the actual number we're using.
  lcd.print(readvalue7);

  if (it > oldit) { // check if the number changes to a higher number
    for (d = 0; it >= d; d++) { // count up from 0 to 15
      lcd.setCursor(d, 1); // start at the bottom left and work forward
      lcd.write(1023); // show a block
    }
  }

  if (it <= oldit) { // check if the number changed to a smaller number
    for (d = 15; it <= d; d--) { //count down from 15 to 0
      lcd.setCursor(d, 1); // start at the bottom right and work back
      lcd.write(1022); // show blank
    }
  }

    oldit = it;   

mkl0815

Also die auf der Playground -Seite verlinkte Version 1.3 der Lib kann doch genau das was Du willst.
Du kannst im Konstruktor festlegen auf welche Zeile und in welcher Spalte Dein Bargraph anfangen soll.
In Deinem Sketch kannst Du dann mehrere Instanzen (Variablen) von LcdBarGraph anlegen und damit dann die Dinger zeichnen.
Code: [Select]

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // -- creating LCD instance
LcdBarGraph lbg1(&lcd, lcdNumCols,0,0);  // -- erste Spalte, erste Zeile
LcdBarGraph lbg2(&lcd, lcdNumCols,0,1);  // -- erste Spalte, zweite Zeile
LcdBarGraph lbg3(&lcd, lcdNumCols,0,2);  // -- erste Spalte, dritte Zeile


niklas87

ach super Danke ;)

Das habe ich nicht gesehen....
Dann kann es ja jetzt weiter gehen!

Go Up