Mit einer int-Variablen mit Serial.print() in der Arduino

- CODE

    void setup() {
       Serial.begin(9600);
       int r = 0;
       Serial.print("How long\n");
       int lng = Serial.read();

       while (Serial.available() == 0) {
         //Empty
       }

       char string[] = {'0'};
       while (r < 62) {
          if(r == 10) {
             string[0] += 7;
          }
          if(r ==36) {
             string[0] += 6;
          }
          Serial.println(string);
          r ++;
          string[0] ++;
       }
       Serial.print(lng, DEC);
     }

     void loop() {

     }

Okay, so das erste problem ist die Linie, die Serial.print(lng, DEC);. Es gibt einen -1 auf den serial monitor. Wenn ich Eingang a 3 während int lng = Serial.read(), wie ich es bekommen kann, um die Rückkehr der Eingang?

Zweiten, wie würde ich die Länge der Kette zu lng-Anlagen und stellen sicher, dass jeder Raum beginnt mit einem 0 statt leer zu sein?


Der endgültige code:

  void setup() {
     Serial.begin(9600);
     int r = 0;
     Serial.print("How long\n");
     int lng;

     while (1)
       if (Serial.available() > 0)
       {
          lng = Serial.read();
          break;
       }

     int l = (lng - 48);
     char string[l];
     for (int i = 0; i < l; i++)
        string[i] = '0';

     while (r < 62) {
        if (r == 10) {
           string[0] += 7;
        }
        if (r == 36) {
           string[0] += 6;
        }
        Serial.println(string);
        r++;
        string[0]++;
      }
      char eof = '/';
      Serial.println(eof);
 }

 void loop() {

 }

Den char eof = '/' ist, weil ich habe ein Python-Skript, das Gespräch mit dem Arduino. Der Druck der eof ist ein flag, das zu lassen, Python wissen, dass es getan wird, drucken und schließen Sie die serielle Verbindung.

Der zweite Teil der Frage ist mehrdeutig. Bitte erläutern Sie mehr darüber, was Sie zu tun versuchen.

InformationsquelleAutor AlchemyDragon | 2013-05-05

Schreibe einen Kommentar