u8x8 oled mit echolot

Hallo Leute hilfe gesucht mit meinem Code!

#include <Arduino.h>
#include <U8x8lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8X8_SSD1306_128X64_NONAME_SW_I2C oled(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
//U8X8_SSD1306_128X64_NONAME_HW_I2C oled; //Schneller
                        
int trigger = 2;
int echo = 3;
long dauer = 0;
long entfernung = 0;

void setup () {
 oled.begin();
 pinMode(trigger, OUTPUT);
 pinMode(echo, INPUT);
 
 }
void loop() {            
 
 digitalWrite(trigger, LOW);
 delay(5);
 digitalWrite(trigger, HIGH);
 delay(10);
 digitalWrite(trigger, LOW);
 dauer = pulseIn(echo, HIGH);
 entfernung = (dauer/2) / 29.1; // Oberkannte bis Boden ist 145cm

 //String cmd;
 //cmd += "\"";

 if (entfernung >= 300 || entfernung <= 0)
 {
   
   oled.draw2x2String(2, 5, "kein Messwert");
 }
 else
 {
      
   oled.setFont(u8x8_font_amstrad_cpc_extended_f);
   oled.drawString(2, 2, "Wasserstand");
   oled.setFont(u8x8_font_amstrad_cpc_extended_n);
   oled.draw2x2String(2, 5, entfernung);
   //oled.setCursor(2, 5);
   //oled.print(entfernung);
   oled.setFont(u8x8_font_amstrad_cpc_extended_f);
   oled.draw2x2String(9, 5, "cm");
   

 }}

und zwar möchte ich den Wert entfernung auch in der selben schrift haben wie cm.
der zeigt mir nur irgend welche zeichen an...

zudem wollte ich noch eine zweite seite machen mit einem button wo dann ein Graph mit den ständen der z.b. letzen woche ist!!!

kann mit da jemand helfen.

Danke

PS: Nix hilde, Konrad :slight_smile:

Hallo Leute hilde gesucht mit meinem Code!

Wer ist "hilde" ?

Und setze deinen Sketch bitte in Code-Tags.
Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

und zwar möchte ich den Wert entfernung auch in der selben schrift haben wie cm.

Dann lass doch das setFont weg...

Ist ja immerhin "dein Code"

Hi

Also ein klein Wenig darfst Du schon mitdenken.
Warum denkst Du, hat der Erbauer der von Dir benutzten Lib diese Funktion

oled.setFont(u8x8_font_amstrad_cpc_extended_n);

SET FONT genannt? Vieleicht, weil damit der Font gesetzt werden kann??
Ok, ist reines Zeug reininterpretieren ... ABER:
nach diesem ominösen SET FONT hast Du plötzlich eine andere Schrift.
Nach der anderen Schrift kommt dieses SET FONT erneut, dieses Mal mit dem gleichen 'Anhängsel' wie zu Beginn der Zeile - und die Schrift wird wieder 'normal'.

Also ich weiß ja nicht ... aber irgendwie könnte DAS miteinander zu tun haben ...

dieses Mal mit eher nachdenklichen Grüßen in Richtung der C&P-Fraktion

Wenn ich das SETFont weglasse kann ich nix mehr lesen.

Das ich die funtion SETFont so oft verwende ich weil ich dachte das die Zalhen zeichen nicht vorhanden sind.

Ich habe hald wie viele ein paar experimente mit bestenden codes gemacht und sie so verändert das sie funktionieren.

bei diesem will es aber nicht klappen.

wenn ich alles in print ausgebe stimmt alles auch die zahl wird angezeigt aber es ist zu klein!!!
gibt es eine möglichkeit die print funktion zu vergössern?

kxn:
wenn ich alles in print ausgebe stimmt alles auch die zahl wird angezeigt aber es ist zu klein!!!
gibt es eine möglichkeit die print funktion zu vergössern?

Da ich deine Library nicht kenne, kann ich leider auch nichts direkt dazu sagen.
Aber die "print-Anweisung" kannst du nicht vergrößern, es sei denn, diese ist auch von der "SetFont-Anweisung" abhängig.
Das solltest du einfach ausprobieren.

Und was du mit "Echolot" meinst, ist vermutlich ein Ultraschallsensor, richtig ?

kxn:
Wenn ich das SETFont weglasse kann ich nix mehr lesen.

Das ich die funtion SETFont so oft verwende ich weil ich dachte das die Zalhen zeichen nicht vorhanden sind.

Dann lass doch mal nur die erste SetFont drin.
Falls Du die Lib von Olikraus benutzt, dann schaue mal in die gute Dokumentation.

Gruß Tommy

Hi

Kleiner Tip:

Zumindest hier im Forum werden die Zeichen GROSS, wenn man die Shift-Taste ab und zu betätigt - so wird Dein Text lesbarer und ich habe mehr Lust, darauf zu reagieren.

Bis jetzt hast Du Dir ausgesprochen wenig Mühe gegeben, und zu Helfen, Dir helfen zu können - Das schafft hier noch lange nicht Jeder ...

Du bist wieder am Zug

MfG

Guten Morgen Leute
Danke für eure hilfe.
Fangen wir mal vor an.
Ich habe einen Nano mit Ultraschallsensor

HotSystems:
Und was du mit "Echolot" meinst, ist vermutlich ein Ultraschallsensor, richtig ?

und einem Oled Disply SSD1306.

#include <Arduino.h>
#include <U8x8lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8X8_SSD1306_128X64_NONAME_SW_I2C oled(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
//U8X8_SSD1306_128X64_NONAME_HW_I2C oled; //Schneller
                         
int trigger = 2;
int echo = 3;
long dauer = 0;
long entfernung = 0;

void setup () {
  oled.begin();
  oled.setFont(u8x8_font_amstrad_cpc_extended_f);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  
  }
void loop() {            
  
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer/2) / 29.1; // Oberkannte bis Boden ist 145cm

  if (entfernung >= 300 || entfernung <= 0)
  {
    
    oled.draw2x2String(2, 5, "kein Messwert");
  }
  else
  {
    oled.draw1x2String(2, 2, "Wasserstand");
    oled.drawString(2, 5, entfernung);
    //oled.setCursor(2, 5);
    //oled.print(entfernung);
    oled.draw2x2String(9, 5, "cm");
    
 
  }}

Ich habe den Code geändert und setFont in setup gesetzt.
Hier noch zwei bilder zu meinem Testaufbau.
Ja ich verwende die lib von Olikraus.

long entfernung = 0;

    oled.drawString(2, 5, entfernung);

Erzeugt dieses Statement keinen Fehler?
Warum magst du die alte Methode nicht mehr?

    oled.print(entfernung);

Whandall:
Warum magst du die alte Methode nicht mehr?

Weil ich die Schriftgrösse änder möchte.

Tommy56:
Falls Du die Lib von Olikraus benutzt, dann schaue mal in die gute Dokumentation.

Gruß Tommy

Danke ich werde mich mal duch lesen.

kxn:
Weil ich die Schriftgrösse änder möchte.

Und du bist immer noch nicht davon überzeugt dass oled.setFont()
für die Auswahl des Fonts (der Schriftart) zuständig ist?

Whandall:
Und du bist immer noch nicht davon überzeugt dass oled.setFont()
für die Auswahl des Fonts (der Schriftart) zuständig ist?

nicht für die grösse, aber Schriftart mit dickeren Buchstaben.

Wenn ich setFontSize() verwende das nimmt er nicht an!!! Waum weis ich (noch) nicht.

Nicht jeder Font kann jede Größe. Das steht auch in der Doku.

Gruß Tommy

kxn:
nicht für die grösse, aber Schriftart mit dickeren Buchstaben.

Wenn ich setFontSize() verwende das nimmt er nicht an!!! Waum weis ich (noch) nicht.

Und das hast du auch gelesen ?

•U8x8 ◦Text output only (character) device.
◦Only fonts allowed with fixed size per character (8x8 pixel).
◦Writes directly to the display. No buffer in the microcontroller required.

Habe meinen Code jetzt wie folgt geändert, danke für die denk anstösse.

Jetzt klappt es mit der Anzeige.
Jetzt bin ich noch dabei eine kleine graphische Anzeige zu basteln.
Für Verbesserungsvorschläge bin ich gern offen.

Ich möchte aber gern noch eine zweite Seite haben auf der ich einen Linearengraph möchte mit den Ständen der letzten Woche, geht das?

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
                         
int trigger = 2;
int echo = 3;
long dauer = 0;
long entfernung = 0;
int x = 0;
int y = 52;
int b = 0; //Balken breite
int h = 12;
int w = 0; // Prozent

void setup () {
  u8g2.begin();
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  
  }
void loop() {            
  
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer/2) / 29.1; // Oberkannte bis Boden ist 145cm
  entfernung = 210 - entfernung;
  if (entfernung <=1 || entfernung >= 8){
    b = 8;
    w = 10;}
  else if (entfernung <=8 || entfernung >= 16){
    b = 17;
    w = 20;}
  else if (entfernung <=16 || entfernung >= 24){
    b = 26;
    w = 30;}
    else if (entfernung <=24 || entfernung >= 32){
    b = 34;
    w = 40;}
    else if (entfernung <=32 || entfernung >= 40){
    b = 43;
    w = 50;}
    else if (entfernung <=40 || entfernung >= 48){
    b = 61;
    w = 60;}
    else if (entfernung <=48 || entfernung >= 56){
    b = 60;
    w = 70;}
    else if (entfernung <=56 || entfernung >= 64){
    b = 68;
    w = 80;}
    else if (entfernung <=64 || entfernung >= 72){
    b = 78;
    w = 90;}
    else if (entfernung >= 78){
    b = 86;
    w = 100;}
  else {
      u8g2.firstPage();
   do{
   u8g2.setFont(u8g2_font_helvB12_tr);
   u8g2.drawStr(10, 14, "Error");}
   while (u8g2.nextPage());
      }
  u8g2.firstPage();
   do{
   u8g2.setFont(u8g2_font_helvB12_tr);
   u8g2.drawStr(10, 14, "Wasserstand");
   u8g2.setFont(u8g2_font_helvB18_tr);
   u8g2.setCursor(20, 42);
   u8g2.print(entfernung);
   u8g2.drawStr(64, 42, "cm");

   u8g2.setFont(u8g2_font_helvB10_tr);
   u8g2.drawStr(90, 64, w);
   u8g2.drawStr(110, 64, " %");
   
   u8g2.drawBox(x,y, b, h);
   // 86 = 100%
   // 78 = 90%
   // 68 = 80%
   // 60 = 70%
   // 51 = 60%
   // 43 = 50%
   // 34 = 40%
   // 26 = 30%
   // 17 = 20%
   // 8 = 10%
   // 1 = 0%
   u8g2.drawFrame(0, 52, 85 ,12);
    }while (u8g2.nextPage());
   delay(1000);
   //u8g2.refresh(1);
}

Deine Bedingungen in der Latte von if/else if sind sicher nicht so gemeint,
schau sie dir noch einmal an.

Ich glaube man kann deine Werte auch wie folgt berechnen (ungetestet)

  entfernung = constrain(entfernung, 0, 80);
  w = (entfernung / 8) * 10;
  b = 8 + (w / 10) * 9;
  //Prozent berechnung
  graph =  constrain(entfernung, 0 ,210);
  pro = (graph / 100) *10;
  
  //Blaken berechnung
  b = 8+(pro/10) * 9;

Whandall:
Ich glaube man kann deine Werte auch wie folgt berechnen (ungetestet)

Danke hab das mal probiert nur es zeigt keine % an und die Balken breite stimmt nicht ganz!

kxn:
es zeigt keine % an und die Balken breite stimmt nicht ganz!

Und warum zeigst du den berechneten Wert nicht an?

Dir ist schon aufgefallen, dass mein Kodevorschlag nur Berechnungen vornimmt, oder?

Die Balkenbreite stimmt nicht ganz heisst was?

Wie soll ich etwas zu Kode sagen, den du nicht postest?

Added:

Welche Werte sind denn nicht nach deinem Geschmack?

Messung, Entfernung, Prozent, Balkenbreite
210, 0, 0, 8
209, 1, 0, 8
208, 2, 0, 8
207, 3, 0, 8
206, 4, 0, 8
205, 5, 0, 8
204, 6, 0, 8
203, 7, 0, 8
202, 8, 10, 17
201, 9, 10, 17
200, 10, 10, 17
199, 11, 10, 17
198, 12, 10, 17
197, 13, 10, 17
196, 14, 10, 17
195, 15, 10, 17
194, 16, 20, 26
193, 17, 20, 26
192, 18, 20, 26
191, 19, 20, 26
190, 20, 20, 26
189, 21, 20, 26
188, 22, 20, 26
187, 23, 20, 26
186, 24, 30, 35
185, 25, 30, 35
184, 26, 30, 35
183, 27, 30, 35
182, 28, 30, 35
181, 29, 30, 35
180, 30, 30, 35
179, 31, 30, 35
178, 32, 40, 44
177, 33, 40, 44
176, 34, 40, 44
175, 35, 40, 44
174, 36, 40, 44
173, 37, 40, 44
172, 38, 40, 44
171, 39, 40, 44
170, 40, 50, 53
169, 41, 50, 53
168, 42, 50, 53
167, 43, 50, 53
166, 44, 50, 53
165, 45, 50, 53
164, 46, 50, 53
163, 47, 50, 53
162, 48, 60, 62
161, 49, 60, 62
160, 50, 60, 62
159, 51, 60, 62
158, 52, 60, 62
157, 53, 60, 62
156, 54, 60, 62
155, 55, 60, 62
154, 56, 70, 71
153, 57, 70, 71
152, 58, 70, 71
151, 59, 70, 71
150, 60, 70, 71
149, 61, 70, 71
148, 62, 70, 71
147, 63, 70, 71
146, 64, 80, 80
145, 65, 80, 80
144, 66, 80, 80
143, 67, 80, 80
142, 68, 80, 80
141, 69, 80, 80
140, 70, 80, 80
139, 71, 80, 80
138, 72, 90, 89
137, 73, 90, 89
136, 74, 90, 89
135, 75, 90, 89
134, 76, 90, 89
133, 77, 90, 89
132, 78, 90, 89
131, 79, 90, 89
130, 80, 100, 98
129, 80, 100, 98
128, 80, 100, 98
127, 80, 100, 98
126, 80, 100, 98
125, 80, 100, 98
124, 80, 100, 98
123, 80, 100, 98
122, 80, 100, 98
121, 80, 100, 98
120, 80, 100, 98
119, 80, 100, 98
118, 80, 100, 98
117, 80, 100, 98
116, 80, 100, 98
115, 80, 100, 98
114, 80, 100, 98
113, 80, 100, 98
112, 80, 100, 98
111, 80, 100, 98
110, 80, 100, 98
109, 80, 100, 98
108, 80, 100, 98
107, 80, 100, 98
106, 80, 100, 98
105, 80, 100, 98
104, 80, 100, 98
103, 80, 100, 98
102, 80, 100, 98
101, 80, 100, 98
100, 80, 100, 98
99, 80, 100, 98
98, 80, 100, 98
97, 80, 100, 98
96, 80, 100, 98
95, 80, 100, 98
94, 80, 100, 98
93, 80, 100, 98
92, 80, 100, 98
91, 80, 100, 98
90, 80, 100, 98
89, 80, 100, 98
88, 80, 100, 98
87, 80, 100, 98
86, 80, 100, 98
85, 80, 100, 98
84, 80, 100, 98
83, 80, 100, 98
82, 80, 100, 98
81, 80, 100, 98
80, 80, 100, 98
79, 80, 100, 98
78, 80, 100, 98
77, 80, 100, 98
76, 80, 100, 98
75, 80, 100, 98
74, 80, 100, 98
73, 80, 100, 98
72, 80, 100, 98
71, 80, 100, 98
70, 80, 100, 98
69, 80, 100, 98
68, 80, 100, 98
67, 80, 100, 98
66, 80, 100, 98
65, 80, 100, 98
64, 80, 100, 98
63, 80, 100, 98
62, 80, 100, 98
61, 80, 100, 98
60, 80, 100, 98
59, 80, 100, 98
58, 80, 100, 98
57, 80, 100, 98
56, 80, 100, 98
55, 80, 100, 98
54, 80, 100, 98
53, 80, 100, 98
52, 80, 100, 98
51, 80, 100, 98
50, 80, 100, 98
49, 80, 100, 98
48, 80, 100, 98
47, 80, 100, 98
46, 80, 100, 98
45, 80, 100, 98
44, 80, 100, 98
43, 80, 100, 98
42, 80, 100, 98
41, 80, 100, 98
40, 80, 100, 98
39, 80, 100, 98
38, 80, 100, 98
37, 80, 100, 98
36, 80, 100, 98
35, 80, 100, 98
34, 80, 100, 98
33, 80, 100, 98
32, 80, 100, 98
31, 80, 100, 98
30, 80, 100, 98
29, 80, 100, 98
28, 80, 100, 98
27, 80, 100, 98
26, 80, 100, 98
25, 80, 100, 98
24, 80, 100, 98
23, 80, 100, 98
22, 80, 100, 98
21, 80, 100, 98
20, 80, 100, 98
19, 80, 100, 98
18, 80, 100, 98
17, 80, 100, 98
16, 80, 100, 98
15, 80, 100, 98
14, 80, 100, 98
13, 80, 100, 98
12, 80, 100, 98
11, 80, 100, 98
10, 80, 100, 98
9, 80, 100, 98
8, 80, 100, 98
7, 80, 100, 98
6, 80, 100, 98
5, 80, 100, 98
4, 80, 100, 98
3, 80, 100, 98
2, 80, 100, 98
1, 80, 100, 98
0, 80, 100, 98
long entfernung;
int balkenBreite = 0; //Balken breite
int prozent = 0; // Prozent

void setup() {
  Serial.begin(250000);

  Serial.println(F("Messung, Entfernung, Prozent, Balkenbreite"));
  for (int dist = 210; dist >= 0; dist--) {
    entfernung = dist;
    entfernung = 210 - entfernung;
    entfernung = constrain(entfernung, 0, 80);
    prozent = (entfernung / 8) * 10;
    balkenBreite = 8 + (prozent / 10) * 9;
    Serial.print(dist);
    Serial.print(F(", "));
    Serial.print(entfernung);
    Serial.print(F(", "));
    Serial.print(prozent);
    Serial.print(F(", "));
    Serial.println(balkenBreite);
  }
}
void loop() {}

Versuch mal

 entfernung = constrain(entfernung, 0, 80);
    prozent = (entfernung / 8) * 10;
    balkenBreite = 1 + (prozent / 10) * 8.5;

hier werden die 85 Pixel gleichmäßig verteilt.

Messung, Entfernung, Prozent, Balkenbreite
210, 0, 0, 1
209, 1, 0, 1
208, 2, 0, 1
207, 3, 0, 1
206, 4, 0, 1
205, 5, 0, 1
204, 6, 0, 1
203, 7, 0, 1
202, 8, 10, 9
201, 9, 10, 9
200, 10, 10, 9
199, 11, 10, 9
198, 12, 10, 9
197, 13, 10, 9
196, 14, 10, 9
195, 15, 10, 9
194, 16, 20, 18
193, 17, 20, 18
192, 18, 20, 18
191, 19, 20, 18
190, 20, 20, 18
189, 21, 20, 18
188, 22, 20, 18
187, 23, 20, 18
186, 24, 30, 26
185, 25, 30, 26
184, 26, 30, 26
183, 27, 30, 26
182, 28, 30, 26
181, 29, 30, 26
180, 30, 30, 26
179, 31, 30, 26
178, 32, 40, 35
177, 33, 40, 35
176, 34, 40, 35
175, 35, 40, 35
174, 36, 40, 35
173, 37, 40, 35
172, 38, 40, 35
171, 39, 40, 35
170, 40, 50, 43
169, 41, 50, 43
168, 42, 50, 43
167, 43, 50, 43
166, 44, 50, 43
165, 45, 50, 43
164, 46, 50, 43
163, 47, 50, 43
162, 48, 60, 52
161, 49, 60, 52
160, 50, 60, 52
159, 51, 60, 52
158, 52, 60, 52
157, 53, 60, 52
156, 54, 60, 52
155, 55, 60, 52
154, 56, 70, 60
153, 57, 70, 60
152, 58, 70, 60
151, 59, 70, 60
150, 60, 70, 60
149, 61, 70, 60
148, 62, 70, 60
147, 63, 70, 60
146, 64, 80, 69
145, 65, 80, 69
144, 66, 80, 69
143, 67, 80, 69
142, 68, 80, 69
141, 69, 80, 69
140, 70, 80, 69
139, 71, 80, 69
138, 72, 90, 77
137, 73, 90, 77
136, 74, 90, 77
135, 75, 90, 77
134, 76, 90, 77
133, 77, 90, 77
132, 78, 90, 77
131, 79, 90, 77
130, 80, 100, 86
129, 80, 100, 86
128, 80, 100, 86
127, 80, 100, 86
126, 80, 100, 86
125, 80, 100, 86
124, 80, 100, 86
123, 80, 100, 86
122, 80, 100, 86
121, 80, 100, 86
120, 80, 100, 86
119, 80, 100, 86
118, 80, 100, 86
117, 80, 100, 86
116, 80, 100, 86
115, 80, 100, 86
114, 80, 100, 86
113, 80, 100, 86
112, 80, 100, 86
111, 80, 100, 86
110, 80, 100, 86
109, 80, 100, 86
108, 80, 100, 86
107, 80, 100, 86
106, 80, 100, 86
105, 80, 100, 86
104, 80, 100, 86
103, 80, 100, 86
102, 80, 100, 86
101, 80, 100, 86
100, 80, 100, 86
99, 80, 100, 86
98, 80, 100, 86
97, 80, 100, 86
96, 80, 100, 86
95, 80, 100, 86
94, 80, 100, 86
93, 80, 100, 86
92, 80, 100, 86
91, 80, 100, 86
90, 80, 100, 86
89, 80, 100, 86
88, 80, 100, 86
87, 80, 100, 86
86, 80, 100, 86
85, 80, 100, 86
84, 80, 100, 86
83, 80, 100, 86
82, 80, 100, 86
81, 80, 100, 86
80, 80, 100, 86
79, 80, 100, 86
78, 80, 100, 86
77, 80, 100, 86
76, 80, 100, 86
75, 80, 100, 86
74, 80, 100, 86
73, 80, 100, 86
72, 80, 100, 86
71, 80, 100, 86
70, 80, 100, 86
69, 80, 100, 86
68, 80, 100, 86
67, 80, 100, 86
66, 80, 100, 86
65, 80, 100, 86
64, 80, 100, 86
63, 80, 100, 86
62, 80, 100, 86
61, 80, 100, 86
60, 80, 100, 86
59, 80, 100, 86
58, 80, 100, 86
57, 80, 100, 86
56, 80, 100, 86
55, 80, 100, 86
54, 80, 100, 86
53, 80, 100, 86
52, 80, 100, 86
51, 80, 100, 86
50, 80, 100, 86
49, 80, 100, 86
48, 80, 100, 86
47, 80, 100, 86
46, 80, 100, 86
45, 80, 100, 86
44, 80, 100, 86
43, 80, 100, 86
42, 80, 100, 86
41, 80, 100, 86
40, 80, 100, 86
39, 80, 100, 86
38, 80, 100, 86
37, 80, 100, 86
36, 80, 100, 86
35, 80, 100, 86
34, 80, 100, 86
33, 80, 100, 86
32, 80, 100, 86
31, 80, 100, 86
30, 80, 100, 86
29, 80, 100, 86
28, 80, 100, 86
27, 80, 100, 86
26, 80, 100, 86
25, 80, 100, 86
24, 80, 100, 86
23, 80, 100, 86
22, 80, 100, 86
21, 80, 100, 86
20, 80, 100, 86
19, 80, 100, 86
18, 80, 100, 86
17, 80, 100, 86
16, 80, 100, 86
15, 80, 100, 86
14, 80, 100, 86
13, 80, 100, 86
12, 80, 100, 86
11, 80, 100, 86
10, 80, 100, 86
9, 80, 100, 86
8, 80, 100, 86
7, 80, 100, 86
6, 80, 100, 86
5, 80, 100, 86
4, 80, 100, 86
3, 80, 100, 86
2, 80, 100, 86
1, 80, 100, 86
0, 80, 100, 86

Warum willst du überhaupt 10% Schritte erzeugen?

Die Variante erzeugt kontinuierliche Werte.

    prozent = (entfernung * 100) / 80;
    balkenBreite = 1 + (prozent * 85) / 100;