- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 64

Thema: fahrzeug mit vier motoren und vier encodern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.05.2015
    Beiträge
    69
    Hallo,

    ursprünglich war das so mit demString gedacht. Leider scheint die String-Klasse in der Arduino Umgebung einige Quirks zu haben, die zu diesem Kuddelmuddel führen können. Da ich zwar schon 'ne Weile programmiere aber neu in der Arduino Welt bin, lerne ich diese Besonderheiten gerade erst kennen.

    Zu Deiner Frage der Umwandlung: eigentlich sollte das die String-Klasse mit ihren überladenen '+' und '+=' Operatoren automatisch machen, leider klappt das nicht immer sauber.

    Erstmal muß man den String wohl immer ordentlich initialisieren
    Code:
    String out_s = String("Init"); // mindestens
    
    String other = String();
    ob die letztere Variante als ordentlich gilt, kann ich hier gerade nicht probieren.

    Außerdem steht in der Doku:
    Caution: You should be careful about concatenating multiple variable types on the same line, as you may get unexpected results.
    sprich wenn ich mit '+' zwei unterschiedliche Datentypen "addiere", kann besagter Kuddelmuddel rauskommen. Das Gleiche gilt wohl auch für '+='
    https://www.arduino.cc/en/Tutorial/S...ditionOperator

    sicherer ist wohl immer nur einstellig zu arbeiten
    Code:
    String out_VL = String(" "); // keinen Leerstring verwenden
    
    out_VL += millis();
    out_VL += " "; out_VL += tmp_VL;
    out_VL += " "; out_VL += tmp_VL_ges;
    out_VL += " "; out_VL += v;
    
    Serial.print (out_VL);
    Serial.flush()
    Ist zwar mehr Tipparbeit aber spart einem die Zeit beim Suchen wenn es mal nicht klappt.

    Sollte das trotzdem nicht gehen, dann bleibt einem nix anderes übrig als das gewohnte Serial.print/ln zu verwenden.
    Außerdem wäre es gut, die Baudrate so hoch wie möglich einzustellen. Also Serial.begin(115200) oder höher und entsprechend im Serial Monitor abändern.

    Gruß

    Chris
    Geändert von botty (18.11.2015 um 12:00 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi,

    ich habe jetzt die ausgabe routine so abgeändert:

    Code:
    // Ticks und Strecke ausgeben
        static const int wtime = 250;
        if(log_time + wtime <= millis() ) 
        {
          String out_s = String("");
          out_s += millis(); out_s += ": ";
    
          for(uint8_t idx = M_VL; idx < M_MAX; idx++) 
          {
            out_s += idx; out_s += " ";
            out_s += motoren[idx].ticks; out_s += " ";  // Hier koennte jetzt ein Interrupt unterbrechen!
            out_s += motor_strecke_gefahren(idx);
    
            ticks_tmp = 0;
            motor_ticks_per_milli(idx, &ticks_tmp);
            out_s += " "; out_s += ticks_tmp;
    
            if(idx == M_MAX - 1)
              out_s += "\n";
            else
              out_s += ", ";
          }
    
          for(uint8_t idx = 0; idx < M_MAX; idx++)
            all_ticks_tmp[idx] = 0;
            
          motor_ticks_per_milli_fuer_alle(all_ticks_tmp, M_MAX);
    
          for(uint8_t idx; idx < M_MAX; idx++)
            out_s += all_ticks_tmp[idx]; out_s += " ";
    
          Serial.print(out_s);
    
          log_time = wtime + millis();
        }
    das ist die ausgabe:

    Code:
    250 293.03 0, 1 418 229.81 0, 2 494 271.59 0, 3 396 217.71 0
     210.57 0, 1 282 155.04 0, 2 355 195.17 0, 3 260 142.94 0
     3762: 0 533 293.03 0, 1 418 229.81 0, 2 494 271.59 0, 3 396 217.71 0
     250: 0 33 18.14 0, 1 16 8.80 0, 2 24 13.19 0, 3 17 9.35 0
     752: 0 172 94.56 0, 1 109 59.93 0, 2 144 79.17 0, 3 88 48.38 0
     1254: 0 324 178.13 0, 1 231 127.00 0, 2 280 153.94 0, 3 206 113.25 0
     1756: 0 477 262.24 0, 1 364 200.12 0, 2 415 228.16 0, 3 340 186.92 0
     2258: 0 630 346.36 0, 1 506 278.19 0, 2 558 306.78 0, 3 483 265.54 0
     2760: 0 783 430.48 0, 1 654 359.56 0, 2 698 383.75 0, 3 632 347.46 0
     3262: 0 937 515.14 0, 1 801 440.37 0, 2 839 461.26 0, 3 781 429.38 0
     3764: 0 1088 598.16 0, 1 951 522.84 0, 2 982 539.88 0, 3 933 512.94 0
     4267: 0 1239 681.18 0, 1 1102 605.86 0, 2 1126 619.05 0, 3 1083 595.41 0
     4769: 0 1394 766.39 0, 1 1257 692.17 0, 2 1266 696.02 0, 3 1231 676.78 0
     5271: 0 1541 847.21 0, 1 1410 775.19 0, 2 1409 774.64 0, 3 1377 757.05 0
     5773: 0 1693 930.78 0, 1 1569 862.60 0, 2 1550 852.16 0, 3 1526 838.96 0
     6275: 0 1849 1016.54 0, 1 1726 948.92 0, 2 1693 930.78 0, 3 1672 919.23 0
     6777: 0 1997 1097.91 0, 1 1881 1034.13 0, 2 1832 1007.19 0, 3 1827 1004.45 0
     7280: 0 2146 1179.83 0, 1 2035 1118.80 0, 2 1972 1084.16 0, 3 1976 1086.36 0
     7783: 0 2295 1261.74 0, 1 2192 1205.11 0, 2 2114 1162.23 0, 3 2127 1169.38 0
     8286: 0 2448 1345.86 0, 1 2348 1290.88 0, 2 2255 1239.75 0, 3 2279 1252.95 0
     8790: 0 2603 1431.07 0, 1 2514 1382.14 0, 2 2400 1319.47 0, 3 2430 1335.96 0
     9293: 0 2755 1514.64 0, 1 2671 1468.46 0, 2 2540 1396.44 0, 3 2577 1416.78 0
     9796: 0 2905 1597.11 0, 1 2828 1554.77 0, 2 2681 1473.96 0, 3 2729 1500.35 0
     10299: 0 3060 1682.32 0, 1 2986 1641.64 0, 2 2821 1550.93 0, 3 2880 1583.36 0
     10802: 0 3209 1764.24 0, 1 3148 1730.70 0, 2 2964 1629.54 0, 3 3031 1666.38 0
     11305: 0 3363 1848.91 0, 1 3312 1820.87 0, 2 3107 1708.16 0, 3 3180 1748.30 0
     11809: 0 3516 1933.02 0, 1 3474 1909.93 0, 2 3253 1788.43 0, 3 3330 1830.76 0
     12312: 0 3670 2017.69 0, 1 3638 2000.10 0, 2 3396 1867.05 0, 3 3478 1912.13 0
     12815: 0 3827 2104.00 0, 1 3796 2086.96 0, 2 3539 1945.67 0, 3 3629 1995.15 0
     13318: 0 3978 2187.02 0, 1 3959 2176.57 0, 2 3682 2024.29 0, 3 3784 2080.36 0
     13821: 0 4131 2271.14 0, 1 4127 2268.94 0, 2 3826 2103.45 0, 3 3932 2161.73 0
     14325: 0 4284 2355.25 0, 1 4295 2361.30 0, 2 3971 2183.17 0, 3 4086 2246.40 0
     14828: 0 4436 2438.82 0, 1 4458 2450.91 0, 2 4118 2263.99 0, 3 4238 2329.96 0
     15331: 0 4590 2523.48 0, 1 4624 2542.18 0, 2 4260 2342.06 0, 3 4389 2412.98 0
     15834: 0 4738 2604.85 0, 1 4789 2632.89 0, 2 4406 2422.33 0, 3 4543 2497.65 0
     16337: 0 4872 2678.52 0, 1 4940 2715.91 0, 2 4528 2489.40 0, 3 4682 2574.06 0
     16840: 0 4910 2699.41 0, 1 5006 2752.19 0, 2 4555 2504.24 0, 3 4744 2608.15 0
     17343: 0 4927 2708.76 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4771 2622.99 0
     17846: 0 4944 2718.11 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     18349: 0 4962 2728.00 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     18852: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     19355: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     19858: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     20361: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     20864: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     21367: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     21870: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     22373: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     22876: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     23379: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     23883: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     24386: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     24889: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     25392: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     25895: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     26399: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     26902: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     27405: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     27908: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     28411: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     28914: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     29417: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     29920: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     30423: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     30926: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     31429: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     31932: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     32435: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     32939: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     33442: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     33945: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     34448: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     34951: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     35454: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     35958: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     36461: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     36964: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     37467: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     37970: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     38474: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     38977: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     39480: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     39983: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     40486: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     40989: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     41492: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     41995: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     42498: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     43001: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     43504: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     44007: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
     44510: 0 4970 2732.40 0, 1 5015 2757.14 0, 2 4555 2504.24 0, 3 4781 2628.49 0
    ich weiss jetzt noch nicht genau was was ist, entspricht das in etwa dem, was herauskommen sollte?
    gruß inka

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.05.2015
    Beiträge
    69
    Hallo inka,

    ja das entspricht dem was herauskommen sollte, mit einer Ausnahme,dazu gleich.

    Die werte bedeuten folgendes:
    Code:
    zeit: motor_idx ticks abgerollter_umfang ticks/milli, das gleiche mit dem nächsten motor usw
    Die Ausnahme ist die letzte Schleife
    Code:
          for(uint8_t idx; idx < M_MAX; idx++)
            out_s += all_ticks_tmp[idx]; out_s += " ";
    
          Serial.print(out_s);
    
          log_time = wtime + millis();
    die muß natürlich 'idx' initialisieren:
    Code:
          //                hier
          //                  |
          //                  v
          for(uint8_t idx = M_VL; idx < M_MAX; idx++)
            out_s += all_ticks_tmp[idx]; out_s += " ";
    
           // und 
           out_s += "\n";
    
          Serial.print(out_s);
    
          log_time = wtime + millis();
    Der ganze Abschnitt dauert überings etwas über 2ms, wie man an den Zeitstempeln sehen kann.

    Gruß
    Chis

Ähnliche Themen

  1. Vier PWM-Lüfter steuern
    Von Bammer im Forum AVR Hardwarethemen
    Antworten: 22
    Letzter Beitrag: 22.10.2010, 10:21
  2. Vier Servos steuern
    Von Brantiko im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 14.04.2008, 23:17
  3. Wie vier Motoren ansteuern???
    Von cinhcet im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 9
    Letzter Beitrag: 29.06.2006, 12:37
  4. vier L297 und VREF
    Von schmek im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 01.12.2005, 19:47
  5. Bot mit vier Rädern
    Von themaddin im Forum Mechanik
    Antworten: 17
    Letzter Beitrag: 06.11.2005, 21:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress