serial.println blockiert Stepper

Thema: serial.println blockiert Stepper

  1. fredyxx:
    Was meinst du mit Konsole?
    Ich stelle die Geschwindigkeiten über den Gerätemanager im Treiber (Eigenschaften >> Anschlusseinstellungen) der USB-SS ein (WIN10). Das scheint ja auch zu funktionieren, denn das Hochladen klapt ja immer ohne Probleme.


    Gruß

    fredyxx

    - - - Aktualisiert - - -

    Und dort sind auch die möglichen Geschwindigkeiten vorgegeben. Also nicht irgendwelche!
     
  2. nikolaus10:
    ???

    Die Methode ist mir neu.

    Wird dann nicht jedesmal wenn die serielle Schnittstelle angesprochen wird
    die Geschwindigkeit veraendert ?

    73
    Geändert von nikolaus10 (09.05.2016 um 14:29 Uhr)
    Ich bin keine Signatur, ich putz hier nur ....
     
  3. fredyxx:
    Nein, die Einstellung bleibt erhalten. aber noch mal die Frage: was meinst du mit Konsole?

    Gruß

    fredyxx

    - - - Aktualisiert - - -

    Zitat Zitat von Rabenauge Beitrag anzeigen
    Ne Debug-Meldung, die schon fertig ist, wird es nich geben, die musst du dir schon selbst machen.
    Beispielsweise so:

    if(alles läuft)
    {
    debug=0;
    }
    if(debug != 0)
    {
    serial.println("wir haben Probleme!");
    debug=1;
    Was meinst du mit alles läuft?
     
  4. Peter(TOO):
    Hallo,
    Zitat Zitat von nikolaus10 Beitrag anzeigen
    Die Methode ist mir neu.

    Wird dann nich jedesmal wenn die serielle Schnittstelle angesprochen wird
    die Geschwindigkeit veraendert ?
    Seit je her kann man im Windows-Treiber die Default-Baudrate, und anderen Parameter, einstellen.
    Wenn man also COMx: aufmacht, wird diese mit diesen Werten initialisiert und das Programm muss dies nicht tun.

    Unter DOS kann man mit
    COPY CON: COM1:
    Alles von der Tastatur zur COM1: Schnittstelle senden. Schnittstellen-Parameter sind dann entweder das, was im Gerätetreiber eingestellt ist oder was mit
    MODE .....
    eingestellt wurde.

    Normalerweise setzt aber heute jedes Programm die Parameter selbst.

    Der Download funktioniert, weil der Loader die Schnittstelle mit seinen Werten initialisiert.

    Der Fehler liegt nun darin, dass er am PC eine andere Rate einstellt, aber nicht in seinem Programm.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
     
  5. fredyxx:
    Zitat Zitat von Peter(TOO) Beitrag anzeigen

    Der Fehler liegt nun darin, dass er am PC eine andere Rate einstellt, aber nicht in seinem Programm.

    MfG Peter(TOO)
    Das ist mir nicht klar. Ich stelle doch am PC und mit dem Befehl " Serial.begin (9600);" im Programm die Baudrate ein. Wo kann/muss ich die denn sonst noch verstellen?

    Ist mit Konsole das DOS-Fenster gemeint?

    Gruß

    fredyx
     
  6. Avatar von inka

    inka:
    Zitat Zitat von fredyxx Beitrag anzeigen
    Mit diesem Code macht der Stepper prima seine 10 Umdrehungen.
    Sobald ich aber die Zeile
    Serial.println ("ok");
    scharf mache und sonst nichts ändere, dreht sich nichts mehr. Es steht nur ein Ausgang des Treibers fest an.
    das ändert sich auch nicht nach einem RESET oder mit "Serial.print ("ok");

    Wie ist das möglich?
    so gehts aber auch (die pins für den Stepper musste ich anpassen...


    Code: [Ansicht]
    #include <CustomStepper.h>
    
    
    CustomStepper stepper(23, 25, 27, 29);
    boolean rotate1 = false;
    
    
    void setup()
    {
      Serial.begin (9600);
    
    
      stepper.setRPM(12);  //   Drehzahl
    
    
      stepper.setSPR(4242);    //   Schritte pro Umdrehung, hier für den 28BYJ-48
    }
    
    
    void loop()
    {
      if (stepper.isDone()) // &&  rotate1 == false)
      {
        stepper.setDirection(CCW);   //   Drehrichtung  (CW, CCW, and STOP) 
    
    
       stepper.rotateDegrees(10);  
       Serial.println ("ok");        
    //    rotate1 = true;
      }
      
    //       Serial.println ("ok");                  
            
      stepper.run();   
    }
    gruß inka
     
  7. Peter(TOO):
    Hallo fredyx,
    Zitat Zitat von fredyxx Beitrag anzeigen
    Das ist mir nicht klar. Ich stelle doch am PC und mit dem Befehl " Serial.begin (9600);" im Programm die Baudrate ein. Wo kann/muss ich die denn sonst noch verstellen?
    Die Übertragungstrecke besteht aus zwei Sendern/Empfängern, je einer an den Enden des Kabels.

    Einer steckt in deinem Arduino und der andere im/am PC.
    Diese muss man getrennt voneinander auf die selben Übertragungsparameter einstellen.

    Beim Arduino werden die Parameter aus dem Oszillator der CPU abgeleitet, da müssen auch noch die richtigen Werte für FCPU eingestellt sein.

    Zitat Zitat von fredyxx Beitrag anzeigen
    Ist mit Konsole das DOS-Fenster gemeint?
    Mit Konsole ist das Programm gemeint, welches die Daten von der seriellen Schnittstelle auf dem Bildschirm anzeigt, auch Terminal genannt.
    Diese Programm hat halt auch irgendwo eine Einstellung der Übertragungsparameter, welche deine Einstellungen im Treiber überschreiben.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
     
  8. Avatar von Rabenauge

    Rabenauge:
    Klingt als würdest du eines der praktischsten Tools der Arduino-IDE gar nicht kennen?
    Wenn du den Editor offen hast, ist oben rechts ne kleine Lupe- die öffnet (nur bei angeschlossenem Board) ne Art Konsole, in der alles Darstellbare angezeigt wird, was mit Serial.() rausgeschickt wird.
    Diese Konsole wiederum hat unten (rechts, glaub ich) nen Auswahlfeld für die Baudrate.
    Die dort vorgegebenen Werte sind allerdings nicht in Stein gemeisselt, man kann auch per Hand durchaus andere Werte eingeben, aber zum debuggen genügen die.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..
     
  9. fredyxx:
    Zitat Zitat von Rabenauge Beitrag anzeigen
    Klingt als würdest du eines der praktischsten Tools der Arduino-IDE gar nicht kennen?
    Wenn du den Editor offen hast, ist oben rechts ne kleine Lupe- die öffnet (nur bei angeschlossenem Board) ne Art Konsole, in der alles Darstellbare angezeigt wird, was mit Serial.() rausgeschickt wird.
    Diese Konsole wiederum hat unten (rechts, glaub ich) nen Auswahlfeld für die Baudrate.
    Die dort vorgegebenen Werte sind allerdings nicht in Stein gemeisselt, man kann auch per Hand durchaus andere Werte eingeben, aber zum debuggen genügen die.
    Hallo

    ich hatte nun Zeit, das noch mal zu testen. Hier das Ergebnis:

    die Verwirrung kam daher, dass ich die Konsole, wie sie hier bezeichnet wird, nur als Serieller Monitor kannte. Ist nun aber klar.

    Die Einstellung der Baudrate unten rechts in der Konsole habe ich auch gefunden und es klappt auch mit 250.000.

    Die Einstellung im Gerätemanager spielt da offensichtlich keine Rolle. Die steht trotzdem bei 9.600

    Gruß

    fredyxx
     
  10. Avatar von Rabenauge

    Rabenauge:
    Wen interessiert der Gerätemanager?
    Stell beim Arduino (in der Software, die drauf löuft) die Baudrate hoch, stell sie in der Konsole genauso ein und das wars.
    Um weiteres musst du dich da überhaupt nicht kümmern.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..