Wie zwei Motoren mit PWM per C++/ wiringPi an einem Raspi steuern ??

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    trotz einiger Leserei komm ich nicht klar wie ich 2 PWM-Signale für zwei Motoren (für Monster Moto Shield) am Raspi abgreifen kann. Bisher hatte ich das Shield zufreidenstellend an einem Arduino im Einsatz aber dieser hat ja einige analoge PWM-fähige Ausgänge mehr. Die Software hat mich auf dem Arduino viel Zeit gekostet (C++) und so müsste ich nur wenig ändern um diese auf dem Raspi lauffähig zu machen. Also kommt ein Umstieg auf Python nicht in Frage.

    Meine Fragen :conf::

    - Kann ich per C++ über wiringPi zwei analoge Ausgänge des Raspi ansteuern? Welche wiringPi GPIO-Ausgänge wären das?

    - Falls es nur einen analogen Ausgang gibt, könnte ich damit leben wenn beide Motoren immer gleichschnell drehen, kann ich dann den einem PWM-Pin für beide Motoren am Shield verwenden?

    - Wie ist es mit Soft-PWM?

    - Ich würde sogar gerne nur einen Zero verwenden oder habe ich hier geringere Anschlussmöglichkeiten wie an z.B. meinem 3B?

    Vielen Dank

  • Wie zwei Motoren mit PWM per C++/ wiringPi an einem Raspi steuern ??? Schau mal ob du hier fündig wirst!

  • Meine Fragen :conf::

    - Kann ich per C++ über wiringPi zwei analoge Ausgänge des Raspi ansteuern? Welche wiringPi GPIO-Ausgänge wären das?

    Das verrät Dir

    http://wiringpi.com/

    Sobald Du einen Pi mit 40-Pin Anschlussleiste verwendest, kannst Du 2 Hardware-PWM verwenden, bei 26-Pins nur einen.

    Die Pin Nummer bestimmst Du innerhalb der 8 möglichen I/O Pins selbst.

    Servus !

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (1. August 2019 um 22:52)

  • Hallo,

    das habe ich jetzt so nirgends gefunden. Ist folgender Code:

    Code
    pinMode(1, PWM_OUTPUT);
        pwmSetMode(PWM_MODE_MS);
        pwmSetClock(384); //clock at 50kHz (20us tick)
        pwmSetRange(1000); //range at 1000 ticks (20ms)
    .....
        li_winkel = std::stoi(ls_inp);
        pwmWrite(1, li_winkel);  //bei Sg90 von 50-130

    Hard- oder Software-PWM. Damit steuere ich einen Servo.

    Auf jeden Fall muss ich versuchen alles an Informationen zu bekommen. Will (muss) an einem Raspi zwei Motoren und einen Servo betreiben. D.h. die zwei Motoren nehme ich dann auf Hardware-PWM und den Servo ....... sollte ich dann über I2C an einen Mehrkanal Servo-Driver nehmen um sauberes Hardware-PWM zu bekommen????

    Bin für alle Informationen sehr sehr dankbar.:helpnew:

  • habe heute mal den Zero ans Oszi angeschlossen und folgendes ermittelt:

    Es sind mit o.g. Programm zwei Hardware-PWM ansteuerbar. Wpi 23 und 24 führen das gleiche Signal und WPI 1 und 26 führen das andere Signal. Also wenn ich WPi 1 im Programm schalte kann ich den Servo auch an WPi 26 anschließen.

    Die Pin Nummer bestimmst Du innerhalb der 8 möglichen I/O Pins selbst

    Das konnte ich so nicht feststellen, HW-PWM geht nur an den 4 Pins.

    Für mich bedeutet das, dass ich für meine zwei Motoren HW-PWM habe aber mir für meinen Servo etwas anderes überlegen muss.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!