2016-06-01 14 views
0

Hallo Ich habe zwei Variablen timer1hh = 9 timer1mm = 7Arduino Verbinden von zwei int der

ich wandeln sie in die Saiten, kommen sie zusammen und ich die "97" unter dem Code:

String string1= String(timer1hh); 
String string2= String(timer1mm); 
String string3;   

string3=string1+string2;  
Serial.println(string3); 

Das ist in Ordnung, aber ich möchte eine führende 0 hinzufügen, wenn es unter 10 ist, so würde es aussehen.

„0907“

so schließlich möchte ich in der Lage sein, ein „wenn“ zwischen „0907“ zu tun und sagen „2034“ der Sache, diese Art zu tun. Ich bin total mit dem Sprintf mit "% 02" geplagt und es funktioniert einfach nicht für mich.

Jede Hilfe wäre großartig.

Pete

+0

keine Lösung, aber es ist viel einfacher, zwei Zahlen zu vergleichen, als es zwei Zeichenfolgen vergleichen ist, die Zahlen halten . Wenn ich du wäre, würde ich nicht in Strings konvertieren, sondern würde die zwei Mal in Minuten seit Mitternacht konvertieren. Dies macht dann Vergleiche ein Kinderspiel. Ie.e 9.07am wäre (9 * 60) +7 und 8.34pm wäre (20 * 60) +34. Viel einfacher zu vergleichen als 547 und 1234 als "0907" und "2034" - Außerdem verwendet printf nicht "% 02", es verwendet "% 02d" - Sie könnten eine Zeit auf einmal ausdrucken: 'printf (" % 02d% 02d ", t1h, t1m);' – enhzflep

Antwort

0

sehen diese Skizze:

void setup() { 

    int timer1hh = 9, timer1mm = 7; 

    Serial.begin(9600); 
    //String string1= String(timer1hh); 
    //String string2= String(timer1mm); 
    //String string3;   

    char out1[5]; 
    sprintf(out1,"%.2d%.2d", timer1hh,timer1mm ); 
    String string3(out1); 

    //string3=string1+string2;  
    Serial.println(string3); 
} 

void loop() {} 

seriellen Ausgang: 0907