- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 566

Thema: outdoor I

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    ich hab mir jetzt noch einmal die beispiele ohne lib angeschaut, schwierig ist es wirklich nicht. Zumindest der anfang

    Code:
    // Define Stepper motor connections and steps per revolution:
    
    #define dirPin_VL 2
    #define stepPin_VL 3
    #define dirPin_HL 4
    #define stepPin_HL 5
    #define dirPin_VR 6
    #define stepPin_VR 7
    #define dirPin_HR 8
    #define stepPin_HR 9
    
    #define stepsPerRevolution 200
    
    
    #define enbl_VL 40
    #define enbl_HL 42
    #define enbl_VR 41
    #define enbl_HR 43
    
    
    void setup()
    {
      // deklariere pins als output:
      pinMode(dirPin_VL, OUTPUT);
      pinMode(stepPin_VL, OUTPUT);
      pinMode(dirPin_HL, OUTPUT);
      pinMode(stepPin_HL, OUTPUT);
      pinMode(dirPin_VR, OUTPUT);
      pinMode(stepPin_VR, OUTPUT);
      pinMode(dirPin_HR, OUTPUT);
      pinMode(stepPin_HR, OUTPUT);
    
    
      Serial.begin(115200);
    // mache enaable pins stromlos:
      digitalWrite(enbl_VL, HIGH);
      digitalWrite(enbl_HL, HIGH);
      digitalWrite(enbl_VR, HIGH);
      digitalWrite(enbl_HR, HIGH);
    
      Serial.print("code---- /home/georg/Arduino/outdoor_robo/stepper/test_vier_stepper/ohne_lib/vier_stepper_ohne_lib_basic_example_idx_enbl_1");
    }
    void loop()
    {
    
      // bestrome enable pins:
      digitalWrite(enbl_VL, LOW);
      digitalWrite(enbl_HL, LOW);
      digitalWrite(enbl_VR, LOW);
      digitalWrite(enbl_HR, LOW);
    
    
    
      // drehe alle vier Stepper langsam vorwaerts einmal herum:
    
        //set dir pinns vorwarts
    
      digitalWrite(dirPin_VL, LOW);
      digitalWrite(dirPin_HL, LOW);
      digitalWrite(dirPin_VR, HIGH);
      digitalWrite(dirPin_HR, HIGH);
      
      for (int i = 0; i < stepsPerRevolution; i++)
      {
        // These four lines result in 1 step:
        digitalWrite(stepPin_VL, HIGH);
        digitalWrite(stepPin_HL, HIGH);
        digitalWrite(stepPin_VR, HIGH);
        digitalWrite(stepPin_HR, HIGH);
        delayMicroseconds(2000);
        digitalWrite(stepPin_VL, LOW);
        digitalWrite(stepPin_HL, LOW);
        digitalWrite(stepPin_VR, LOW);
        digitalWrite(stepPin_HR, LOW);
        delayMicroseconds(2000);
      }
      delay(1000);
    
        // drehe alle vier Stepper schnell rueckwaerts einmal herum:
    
        //set dir pinns rueckwaerts
    
      digitalWrite(dirPin_VL, HIGH);
      digitalWrite(dirPin_HL, HIGH);
      digitalWrite(dirPin_VR, LOW);
      digitalWrite(dirPin_HR, LOW);
      
      for (int i = 0; i < stepsPerRevolution; i++)
      {
        // These four lines result in 1 step:
        digitalWrite(stepPin_VL, HIGH);
        digitalWrite(stepPin_HL, HIGH);
        digitalWrite(stepPin_VR, HIGH);
        digitalWrite(stepPin_HR, HIGH);
        delayMicroseconds(1000);
        digitalWrite(stepPin_VL, LOW);
        digitalWrite(stepPin_HL, LOW);
        digitalWrite(stepPin_VR, LOW);
        digitalWrite(stepPin_HR, LOW);
        delayMicroseconds(1000);
      }
      delay(1000);
    
    
        // drehe alle vier Stepper langsam vorwaerts fünf mal herum:
    
        //set dir pinns vorwarts
    
      digitalWrite(dirPin_VL, LOW);
      digitalWrite(dirPin_HL, LOW);
      digitalWrite(dirPin_VR, HIGH);
      digitalWrite(dirPin_HR, HIGH);
      
      for (int i = 0; i < 5* stepsPerRevolution; i++)
      {
        // These four lines result in 1 step:
        digitalWrite(stepPin_VL, HIGH);
        digitalWrite(stepPin_HL, HIGH);
        digitalWrite(stepPin_VR, HIGH);
        digitalWrite(stepPin_HR, HIGH);
        delayMicroseconds(2000);
        digitalWrite(stepPin_VL, LOW);
        digitalWrite(stepPin_HL, LOW);
        digitalWrite(stepPin_VR, LOW);
        digitalWrite(stepPin_HR, LOW);
        delayMicroseconds(2000);
      }
      delay(1000);
    
          // drehe alle vier Stepper schnell rueckwaerts fünf mal herum:
    
        //set dir pinns rueckwaerts
    
      digitalWrite(dirPin_VL, HIGH);
      digitalWrite(dirPin_HL, HIGH);
      digitalWrite(dirPin_VR, LOW);
      digitalWrite(dirPin_HR, LOW);
      
      for (int i = 0; i < 5* stepsPerRevolution; i++)
      {
        // These four lines result in 1 step:
        digitalWrite(stepPin_VL, HIGH);
        digitalWrite(stepPin_HL, HIGH);
        digitalWrite(stepPin_VR, HIGH);
        digitalWrite(stepPin_HR, HIGH);
        delayMicroseconds(500);
        digitalWrite(stepPin_VL, LOW);
        digitalWrite(stepPin_HL, LOW);
        digitalWrite(stepPin_VR, LOW);
        digitalWrite(stepPin_HR, LOW);
        delayMicroseconds(500);
      }
      delay(1000);
      
    }
    der code funktioniert soweit, was mich noch ein bischen stört, sieht und hört man in dem video hier . Wenn zusätzlich zur stromversorgung (immer noch ein steckernetzteil) der atmega 2560 an der USB verbindung zum PC hängt passiert es nicht. Das kenne ich von den steppern 28BYJ_48 und ULN2003 treibern so nicht, da stand der Stepper beim einschalten.... Ob sich das bei akkuversorgung ändert?
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich gebe noch mal den Tip. ein paar Varta-Batterien zu holen "D", hatte ich irgendwo schon mal genauer geschrieben. Einfach um sicher zu gehen und diese Frage zu beantworten.
    Das ist jetzt mehr so ein Rätselraten, als für mich jedenfalls. Vielleicht weiß jemand anders mehr.
    Nach dem Einschalten des Treibers kann sich der Stepper nicht bwegen, es sei denn, der Treiber bekommt die entsprechenden Signale.


    MfG

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    gesagt, getan, ich hab ja (fast) alles zuhause

    video

    und nun? Woran kann das nun liegen?
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    An der Ansteuerung des Treibers, der bekommt Step-Signale etc.
    Du hast es doch im lopp() so geschrieben!?

    Verstehe jetzt nicht, was Du meinst! Was stört Dich jetzt daran, dass er links und rechts herum dreht, wenn das im Programm so steht? Ich stehe wohl etwas auf'm Schlauch, hilf mir mal!




    MfG

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    in beiden videos sieht und hört man, dass die Stepper beim einschalten hin und her rattern, bevor sie das links- rechts- drehen starten...

    hier und hier
    gruß inka

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Jetzt weiß ich was Du meinst. Aber ich kenne das nicht. Ich habe das zu keiner Zeit. Allerdings steuere ich meine Treiber auch über den Sleep-Pin und kann da mit dem Enable-Pin nicht so mitreden, der ist bei mir dauerhaft auf GND geschaltet.


    MfG
    Geändert von Moppi (01.11.2019 um 15:29 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    habe mir Dein codebeispiel noch einmal angeschaut:

    - definiert (und verdrahtet?) hat du SLEEP und STEP

    - den Stepper schaltest du an- und aus- per SLEEP

    - ENABLE hast Du nicht verdrahtet

    - bewegt wird er per STEP

    bedeutet also, dass du den jumper zwischen SLEEP und RESET, wie er in vielen anleitungen beschriben wird, nicht hast?

    Klicke auf die Grafik für eine größere Ansicht

Name:	jumper_sleep_reset.jpg
Hits:	7
Größe:	70,3 KB
ID:	34444
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von inka Beitrag anzeigen
    in beiden videos sieht und hört man, dass die Stepper beim einschalten hin und her rattern, bevor sie das links- rechts- drehen starten...

    hier und hier
    Das ist ziemlich schlecht, wenn das schon bei unbelastetem Motor auftritt. Mach mal ein Rad ran, und sieh wie es sich entwickelt.

    Die Logik-Signale an den Anschlüssen sind doch nun wirklich nicht kompliziert:

    ENABLE (erlauben/einschalten) hat einen Überstrich, ist also active Low. Ein Low schaltet den Chip also an. SLEEP hat auch einen Überstrich, bei Low legt sich der Chip schlafen und schaltet sich auch intern das meisste ab. RESET ist ebenfalls active Low, muß also auf High damit der Chip nicht im Reset hängt.

    Also muß also ENABLE auf Low und SLEEP und RESET auf High, dann arbeitet der Chip. Und im ersten Schritt legt man die Abschlüsse mit Pull-Ups oder Pull-Downs fest auf den richtigen Pegel. Ein Pulse an Step lässt dann den Motor einen Schritt machen. Wenn erstmal alles funktioniert, kann man sich ums Stromsparen oder andere Sachen kümmern.


    Zum Testen würde ich einen Taster an den Prozessor schalten und ein kleines kleines Programm schreiben: Taster entprellen und für jeden Druck einen Puls ausgeben. Je nach dem Pegel von DIR muß der Motor einen Schritt nach links oder rechts machen.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    nochmal zum Überbrücken SLEEP und RESET:

    Der SLEEP - Eingang am Treiber kann von außerhalb unbeschaltet bleiben, weil der mit einem 5k-Widerstand gegen VDD verbunden sein soll. Wenn man Sleep also nicht braucht, muss der nicht zusätzlich beschaltet werden. Wird RESET auch nicht benötigt, wird der gerne einfach mit dem SLEEP verbunden, somit liegt der RESET dann auch über 5kOhm an VDD.



    MfG

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Klebwax Beitrag anzeigen
    Das ist ziemlich schlecht, wenn das schon bei unbelastetem Motor auftritt. Mach mal ein Rad ran, und sieh wie es sich entwickelt.
    es rattert weniger, weil eine grössere masse bewegt werden muss...

    Zitat Zitat von Klebwax Beitrag anzeigen
    Die Logik-Signale an den Anschlüssen sind doch nun wirklich nicht kompliziert:
    stimmt. Ich habe auch inzwischen keine probleme mit dem eigentlichen code. Das problem liegt im einschalten. Seltsamer weise ratterts nur wenn vier Stepper gleichzeitig eingeschaltet werden, beim einzelnen passiert es nicht...
    gruß inka

Ähnliche Themen

  1. Abstandsmessung Outdoor bis 3m
    Von robo218 im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 14.12.2017, 06:56
  2. outdoor spy robot
    Von jancrombach im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 14.08.2010, 13:09
  3. Outdoor Roboter
    Von OsramLED im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 07.08.2006, 09:34
  4. Outdoor-Robo
    Von RobotrixerP im Forum Mechanik
    Antworten: 3
    Letzter Beitrag: 16.04.2006, 18:38
  5. Outdoor - Navigation
    Von Quaio im Forum Sensoren / Sensorik
    Antworten: 37
    Letzter Beitrag: 21.04.2005, 12:31

Berechtigungen

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

LiFePO4 Speicher Test