- fchao-Sinus-Wechselrichter AliExpress    Werbung      
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
    78
    Beiträge
    2.180
    mit diesem code kann ich den roboter (zunächst einmal) per IR fernbedienung steuern, hier erstmal die befehle "vorwärts" und "stopp". Die Schrittmotoren werden mit

    Code:
      digitalWrite(enbl_VL, HIGH);
      digitalWrite(enbl_HL, HIGH);
      digitalWrite(enbl_VR, HIGH);
      digitalWrite(enbl_HR, HIGH)
    stromlos geschaltet, nach Deinen ausführungen hätte ich eigentlich das gegenteil erwartet, nämlich "LOW"...

    Code:
    #include <AccelStepper.h>
    //#include <LCD.h>
    //#include <LiquidCrystal_I2C.h>
    #include <Wire.h>
    #include <IRremoteInt.h>
    #include <ir_Lego_PF_BitStreamEncoder.h>
    #include <IRremote.h>
    //#include <stepper_standard.h>
    
    //LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
    
    uint8_t RECV_PIN = 13;
    uint8_t taste = 0;
    
    uint8_t idx;
    uint8_t zitter;
    uint8_t anzahl;
    
    
    #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 enbl_VL 40
    #define enbl_HL 42
    #define enbl_VR 41
    #define enbl_HR 43
    
    IRrecv irrecv(RECV_PIN);
    
    decode_results results;
    
    enum stepper_e
    { stepper_VL, stepper_HL, stepper_VR, stepper_HR, stepper_MAX };
    
    
    AccelStepper stepper[stepper_MAX]
    {
      AccelStepper(1, stepPin_VL, dirPin_VL),
      AccelStepper(1, stepPin_HL, dirPin_HL),
      AccelStepper(1, stepPin_VR, dirPin_VR),
      AccelStepper(1, stepPin_HR, dirPin_HR)
    };
    
    
    
    
    void setup()
    {
      Serial1.begin(115200);
      Serial.begin(115200);
    
      Serial.println("code----//home/georg/Arduino/outdoor_robo/stepper/test_vier_stepper/remote_vier_stepper_switch_1_enbl");
    
    
      irrecv.enableIRIn(); // Start the receiver
    /*  
      lcd.begin(16, 2);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.setBacklight(HIGH);
      lcd.print("remot FB schwarz");
      lcd.setCursor(0, 1);
      lcd.print("switch 1");
      delay(2000);
      lcd.clear();
      lcd.setBacklight(LOW);
    */
      for (idx = stepper_VL; idx < stepper_MAX; idx++)
      {
        stepper[idx].setMaxSpeed(1000);
        stepper[idx].setSpeed(800);
        stepper[idx].setAcceleration(30);
        //    stepper[idx].disableOutputs();
        //        stepper[idx].setDirection(CCW);
        //    stepper[idx].rotate(1);
    
      }
    
      digitalWrite(enbl_VL, HIGH);
      digitalWrite(enbl_HL, HIGH);
      digitalWrite(enbl_VR, HIGH);
      digitalWrite(enbl_HR, HIGH);
    
    }
    
    void loop()
    {
    
      if (irrecv.decode(&results))
      {
        taste = results.value;
        Serial.println(taste);
        irrecv.resume(); // Receive the next value
      }
      tasten_abfrage();
    
    
    
    }
    
    
    /***********************************************************/
    
    void tasten_abfrage(void)
    {
      switch (taste)
      {
    
        case 151 ://taste 1 große FB
          {
            if (taste == 151 )
            {
              Serial.println("szenario_1");
              Serial1.println("szenario_1");
    /*
              lcd.setCursor(0, 0);
              lcd.setBacklight(HIGH);
              lcd.print("szenario_1");
              delay(1000);
              lcd.clear();
              lcd.setBacklight(LOW);
    */
              //fahre szenario_1
    
              delay (1000);
    
              break;
            }
          }
    
        case 103://taste 2 große FB
          {
            if (taste == 103)
            {
              Serial.println("szenario_2");
              Serial1.println("szenario_2");
    
              //fahre szenario_2
    
              delay (1000);
    
              break;
            }
          }
    
        case 79://taste 3 große FB
          {
            if (taste == 79)
            {
              Serial.println("szenario_3");
              Serial1.println("szenario_3");
    
              //fahre szenario_3
    
              delay (1000);
    
              break;
            }
          }
    
    
        case 207://taste 4 große FB
          {
            if (taste == 207)
            {
              Serial.println("szenario_4");
              Serial1.println("szenario_4");
    
              //fahre szenario_4
    
              delay (1000);
    
              break;
            }
          }
    
    
        case 253://OK taste, motor stop
          {
            if (taste == 253)
            {
              alle_stepper_stop();
              fahrt_ausfuehren();
    
              break;
            }
          }
    
    
        case 61:// rotate rechts große FB
          {
            if (taste == 61)
            {
              //          rechts_drehen();
    
              break;
            }
          }
    
    
        case 221:// rotate links große FB
          {
            if (taste == 221)
            {
    
              //          links_drehen();
    
              break;
            }
    
          }
    
    
        case 157:// fahre vor große FB
          {
            if (taste == 157)
            {
    /*
              digitalWrite(enbl_VL, HIGH);
              digitalWrite(enbl_HL, HIGH);
              digitalWrite(enbl_VR, HIGH);
              digitalWrite(enbl_HR, HIGH);
    */
              vorwaerts();
              fahrt_ausfuehren();
              break;
            }
          }
    
    
        case 87:// fahre rückwärts große FB
          {
            if (taste == 87)
            {
    
              //          rueckwaerts();
    
              break;
            }
          }
      }
    
    
    }
    
    
    /***********************************************************/
    void alle_stepper_stop(void)
    {
      for (idx = stepper_VL; idx < stepper_MAX; idx++)
      {
    
        stepper[idx].stop();
    
      }
    
      digitalWrite(enbl_VL, HIGH);
      digitalWrite(enbl_HL, HIGH);
      digitalWrite(enbl_VR, HIGH);
      digitalWrite(enbl_HR, HIGH);
    }
    
    /***********************************************************/
    void vorwaerts(void)
    {
    
      digitalWrite(enbl_VL, LOW);
      digitalWrite(enbl_HL, LOW);
      digitalWrite(enbl_VR, LOW);
      digitalWrite(enbl_HR, LOW);
    
      for (idx = stepper_VL; idx < stepper_VR; idx++)
      {
        //     stepper[idx].moveTo(600);
        stepper[idx].runSpeed();
        stepper[idx].move(-100);
        //    stepper[idx].run();
        //    stepper[idx].rotate(1);
      }
    
      for (idx = stepper_VR; idx < stepper_MAX; idx++)
      {
        //    stepper[idx].moveTo(600);
        stepper[idx].runSpeed();
        stepper[idx].move(100);
        //    stepper[idx].setDirection(CW);
        //    stepper[idx].rotate(1);
      }
    }
    
    
    /***********************************************************/
    void rotate_right_deg(void)
    {
    
    }
    
    /**********************************************************/
    void rotate_left_deg(void)
    {
    
    }
    
    /***********************************************************/
    
    boolean fahrt_fertig()
    {
    
      return        stepper[stepper_VL].isRunning() && stepper[stepper_HL].isRunning() && stepper[stepper_VR].isRunning()
                    && stepper[stepper_HR].isRunning();
    
    }
    
    /************************************************************/
    void fahrt_ausfuehren()
    {
      while ( ! fahrt_fertig() )
      {
        for (idx = stepper_VL; idx < stepper_MAX; idx++)
        {
          stepper[idx].run();
          // delay(1);
        }
      }
    }
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.691
    Ich schau nochmal nach ...

    Ich habe mich mit dem 47k vertan, der hat nichts mit dem Enable zu tun, sondern gehört bei mir zu einem Spannungsteiler. Enable liegt bei mir ständig auf LOW (auch wenn der 47k von dort nach +5V verbunden ist) und aktiviert also die Ausgänge.
    Laut Datenblatt von Pololu soll der Enable-Pin ein invertierender Eingang sein.

    Pololu schreibt dazu:

    This input turns on or off all of the
    FET outputs. When set to a logic high, the outputs are disabled.
    So ist es dann richtig.

    Auf welchem Pegel hast Du denn die Steuereingänge MS1 bis MS3 vom 4988?



    MfG
    Geändert von Moppi (28.10.2019 um 17:51 Uhr)

Ä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. [ERLEDIGT] 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
  •  

    Werbung      fchao-Sinus-Wechselrichter AliExpress