Oled Tacho

Moin!

Ich stehe vor einen kleinen (?) Problem.
Und zwar geht es um meinen kleinen Oled Tacho, der mit einem Hallsensor funktioniert.
Damits schön aussieht habe ich mit u8glib einen Pictureloop gemacht, der meinen Zahlenwert am display zentriert. Dabei habt ihr mir schon geholfen:

Damals war ein Potentiometer angehängt, alles war super.
Nun habe ich meinen Hallsensor eingefügt und die zahlen werden wieder nach rechts verschoben.
Hab schon einiges probiert und komm einfach nicht weiter. Ich wäre für einen heissen tip sehr dankbar
:wink:

#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);  // Display which does not send AC
const int ledPin = 13;
volatile int rpmcount;
int sensorState = 0;
unsigned int rpm;
unsigned long timeold;

void rpm_fun()
{
      rpmcount++;
      
}

void setup() {
  pinMode(ledPin, OUTPUT);     
  Serial.begin(9600);
  attachInterrupt(0, rpm_fun, FALLING);
  u8g.setFont(u8g_font_freedoomr25n);
  u8g.setColorIndex(1); // Instructs the display to draw with a pixel on.

}



void loop(){

if(rpmcount>=5) {
      rpm=(60000*rpmcount)/(2*(millis()-timeold)); //the 8 changes to 4 if 4 magnets are used.
      timeold = millis();
      u8g.firstPage();
      rpmcount = 0; 
do{
 
 if (rpm <= 0){                //pictureloop um den zahlenwert am oled display zu zentrieren
  u8g.setPrintPos(35, 45);
  u8g.println(rpm);
  } 
 
 else if (rpm >= 9){
  u8g.setPrintPos(55, 45);
  u8g.println(rpm);
  }

 else if (rpm <= 99){
  u8g.setPrintPos(48, 45);
  u8g.println(rpm);
  }

 else if (rpm <= 1000){
  u8g.setPrintPos(30, 45);
  u8g.println(rpm);
  }
 
  }while( u8g.nextPage() );
     
 

}
}

Arduino: 1.6.7 Hourly Build 2015/11/26 12:44 (Windows 7), Board: “Arduino Nano, ATmega328”

ich vermute mal das else if (rpm >= 9){ soll else if (rpm <=9){ heissen

Bingo

Danke @ardubu