# Variable spinnt rum

**URL:** <https://forum.arduino.cc/t/variable-spinnt-rum/595434>\
**Category:** Deutsch\
**Created:** [June 5, 2019, 3:23pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434 "2019-06-05T15:23:27Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![hannik46](https://avatars.discourse-cdn.com/v4/letter/h/edb3f5/32.png) [@hannik46](https://forum.arduino.cc/u/hannik46)\
**Post date:** [June 5, 2019, 3:23pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/1 "2019-06-05T15:23:27Z")

</div>

Hallo 😃  
Ich sitze im moment an einem Programm zur Steuerung der Fahrgassen an einer Sähmaschine.  
Soweit funktioniert es auch allerdings spinnt die variable i auf dem Display rum sobald sie über Spur 9 geht.  
Könnt ihr mir wohl helfen ?  
Anbei mein Code.

Gruß

[Fahrgassenschaltung.ino](https://forum.arduino.cc/uploads/short-url/20YL693GpauTJIaPU18L7NgPWm1.ino) (5.08 KB)

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [June 5, 2019, 3:31pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/2 "2019-06-05T15:31:41Z")

</div>

Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (\</\>-Button oben links im Forumseditor oder [_code] davor und [_/code] dahinter ohne \*).  
Das kannst Du auch noch nachträglich ändern.

Wenn Du uns auch noch mitteilst, was Du erwartest und was demgegenüber passiert, ist es einfacher zu helfen.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![wapjoe](https://avatars.discourse-cdn.com/v4/letter/w/7993a0/32.png) [@wapjoe](https://forum.arduino.cc/u/wapjoe)\
**Post date:** [June 5, 2019, 3:50pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/3 "2019-06-05T15:50:39Z")

</div>

Und rücke deinen Sketch bitte vorher richtig ein, ist so nicht lesbar. Drücke dazu in der IDE einfach STRG+T

---

<div class="post-metadata">

**Author:** ![postmaster-ino](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@postmaster-ino](https://forum.arduino.cc/u/postmaster-ino)\
**Post date:** [June 5, 2019, 5:05pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/4 "2019-06-05T17:05:59Z")

</div>

Hi

Ohne den Sketch gesehen zu haben, gehe ich davon aus, daß Du Müll angezeigt bekommst, wenn von einer 2-stelligen Zahl zurück auf eine 1-stellige Zahl gewechselt wird.

Warum?

Weil Du NUR diese eine Stelle ausgibst.  
8  
9  
10  
11  
12  
11  
10  
90  
80  
70

Die stehende Null, Die von der 10 über bleibt, wird von der 9 nicht gelöscht, sondern die 9 wird nur davor geschrieben.

Wenn Du die Zahlen immer 2-stellig ausgibst (ob führende Null oder Leerzeichen ist egal), wird das erste Zeichen überschrieben und Alles ist gut.

Zumindest, was ich mir aus den mir zugänglichen Informationen zusammen reime.  
Bis 9000 Zeichen darf Dein Post lang werden - Da ist doch bestimmt Platz für einen Code-Tag und 5000 Zeichen Programm, oder?

MfG

---

<div class="post-metadata">

**Author:** ![hannik46](https://avatars.discourse-cdn.com/v4/letter/h/edb3f5/32.png) [@hannik46](https://forum.arduino.cc/u/hannik46)\
**Post date:** [June 5, 2019, 6:03pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/5 "2019-06-05T18:03:28Z")

</div>

Hallo erstmal danke für die Tipp

Bin nicht so oft in Foren unterwegs und deswegen kenn ich mich nicht so gut aus.  
Hier ist jedenfalls mein richtiger Code.  
Also das Problem ist das durch einen Taster eine Variable Hochgezählt wird und auf einem LCD ausgegeben wird.Allerdings zählt er bis zu 11 hoch und dann beginnt er bei 21 31 41 weiterzuzählen.  
Eigentlich möchte ich das er bis 12 hochzählt und dann zurückgesetzt wird.  
Schönen Abend noch  
LG

```cpp
#include "Arduino.h"
#include "avdweb_Switch.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const byte pushButtonpin = A1;
const byte pushButtonpin1 = A0;
const byte pushButtonpin2 = A2;
int i = 1;
int o = 12;
Switch pushButton = Switch(pushButtonpin);
Switch pushButton1 = Switch(pushButtonpin1);
Switch pushButton2 = Switch(pushButtonpin2);
void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(9, INPUT_PULLUP);
  digitalWrite(8, LOW);
  digitalWrite(7, LOW);
  digitalWrite(6, LOW);
  digitalWrite(5, LOW);
  lcd.init();
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Fahrgassen");
  lcd.setCursor(0, 1);
  lcd.print("Computer");
  lcd.setCursor(11, 0);
  lcd.print("V.1.0");
  delay(1825);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Spur:");
  lcd.setCursor(0, 1);
  lcd.print("Abstand:");
  lcd.setCursor(10, 1);
  lcd.print("m");
}
void loop() {
  // put your main code here, to run repeatedly:
  pushButton.poll();
  if (pushButton.pushed()) {
    Serial.print("pushButton pushed ");
    Serial.print(++i);
    Serial.println(" times");
    delay(80);
  }
  lcd.setCursor(5, 0);
  lcd.print(i);
  pushButton1.poll();
  if (pushButton1.pushed()) {
    Serial.print("pushButton pushed ");
    Serial.print(++++++o);
    Serial.println(" times");
    delay(80);
  }
  if (o > 36) {
    o = 12;
  }
  lcd.setCursor(8, 1);
  lcd.print(o);
  pushButton2.poll();
  if (pushButton2.pushed()) {
    Serial.print("pushButton pushed ");
    Serial.print(--i);
    Serial.println(" times");
    delay(80);
  }
  if (i < 1) {
    i = 1;
  }
{ if (o == 12) {
      if (i > 4) {
        i = 1;
      }
      if (i == 2) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 2) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }

{ if (o == 15) {
      if (i > 5) {
        i = 1;
      }
      if (i == 3) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 3) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }

{ if (o == 18) {
      if (i > 6) {
        i = 1;
      }
      if (i == 3) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 3) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
{ if (o == 21) {
      if (i > 7) {
        i = 1;
      }
      if (i == 4) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 4) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
{ if (o == 24) {
      if (i > 8) {
        i = 1;
      }
      if (i == 4) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 4) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
{ if (o == 27) {
      if (i > 9) {
        i = 1;
      }
      if (i == 4) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 4) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
{ if (o == 30) {
      if (i > 10) {
        i = 01;
      }
      if (i == 5) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 5) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
{ if (o == 33) {
      if (i > 11) {
        i = 1;
      }
      if (i == 5) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 5) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
{ if (o == 36) {
      if (i > 12) {
        i = 01;
      }
      if (i == 6) {
        lcd.setCursor(15, 1);
        lcd.print("F");
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        digitalWrite(6, HIGH);
        digitalWrite(5, LOW);
      }
      if (i != 6) {
        lcd.setCursor(15, 1);
        lcd.print(" ");
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        digitalWrite(6, LOW);
        digitalWrite(5, HIGH);
      }
    }
  }
}

```

---

<div class="post-metadata">

**Author:** ![hannik46](https://avatars.discourse-cdn.com/v4/letter/h/edb3f5/32.png) [@hannik46](https://forum.arduino.cc/u/hannik46)\
**Post date:** [June 5, 2019, 6:08pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/6 "2019-06-05T18:08:36Z")

</div>

Hallo ich nochmal  
Ich habe es jetzt hinbekommen.  
Ich lasse jetzt die stelle nachdem sie zurückgesetzt ist durch ein leerzeichen ersetzten.  
Danke an alle 😃 ;D

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [June 5, 2019, 6:10pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/7 "2019-06-05T18:10:47Z")

</div>

Oder schau Dir mal an, wie man Zahlen rechtsbündig mit führender 0 / Leerzeichen formatiert, z.B. mit sprintf oder printf.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![hannik46](https://avatars.discourse-cdn.com/v4/letter/h/edb3f5/32.png) [@hannik46](https://forum.arduino.cc/u/hannik46)\
**Post date:** [June 5, 2019, 6:19pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/8 "2019-06-05T18:19:20Z")

</div>

ok schaue ich mir mal an  
Trotzdem danke

---

<div class="post-metadata">

**Author:** ![Serenifly](https://avatars.discourse-cdn.com/v4/letter/s/73ab20/32.png) [@Serenifly](https://forum.arduino.cc/u/Serenifly)\
**Post date:** [June 5, 2019, 6:25pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/9 "2019-06-05T18:25:28Z")

</div>

> Tommy56:  
> Oder schau Dir mal an, wie man Zahlen rechtsbündig mit führender 0 / Leerzeichen formatiert, z.B. mit sprintf oder printf.

Oder einfach per Hand:

```arduino
if (zahl < 10)
  lcd.print(' ');

```

---

<div class="post-metadata">

**Author:** ![hannik46](https://avatars.discourse-cdn.com/v4/letter/h/edb3f5/32.png) [@hannik46](https://forum.arduino.cc/u/hannik46)\
**Post date:** [June 5, 2019, 6:26pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/10 "2019-06-05T18:26:46Z")

</div>

Ja so hatte ich es jetzt gemacht

---

<div class="post-metadata">

**Author:** ![postmaster-ino](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@postmaster-ino](https://forum.arduino.cc/u/postmaster-ino)\
**Post date:** [June 5, 2019, 6:27pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/11 "2019-06-05T18:27:15Z")

</div>

Hi

Tip(p) für's nächste Mal:  
Wer ist i, was macht o, was machen die ganzen 'magic numbers' in Deinem Sketch?

So ganz habe ich nicht gefunden, wo der Anzeigefehler wohl her kam - ist jetzt aber wohl auch nicht mehr so wichtig.

MfG

---

<div class="post-metadata">

**Author:** ![hannik46](https://avatars.discourse-cdn.com/v4/letter/h/edb3f5/32.png) [@hannik46](https://forum.arduino.cc/u/hannik46)\
**Post date:** [June 5, 2019, 6:31pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/12 "2019-06-05T18:31:48Z")

</div>

Ok ich werde das nächste mal versuchen es etwas lesbarer zu schreiben.  
i und o sind einfach Variablen für Spurzahl und Abstand. Die Zahlen sind die Breiten der Sähmaschine wo sie eine Fahrgasse machen soll.  
Ich bin jetzt erstmal nur froh das es jetzt funktioniert.  
Danke

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 1:44pm UTC](https://forum.arduino.cc/t/variable-spinnt-rum/595434/13 "2021-05-06T13:44:23Z")

</div>

Closed on May 6, 2021, 1:44pm UTC


