4DC motoren steuern über ARD SHD l293D, UNO und NRF24l01 und Nano

Hallo zusammen,
ich bin gerade dabei einen "roboter" mit 4 DC Motoren zu bauen und bin nun an dem Punkt es über Funk zu steuern.
Ich bin etwas überfragt was die verbindungen des NRF24l01 an das Fahrzeug geht, da auf dem UNO das Shield drauf ist.
Circuitplan vom Joystick und dem Fahrzeug sind dabei.
Code gibt es bis jetzt noch keinen, ich habe die motoren nur mal über ein Test Programm laufen lassen.

Fahrzeug:

Joystick:

Ich freue mich über jede Hilfe^^
Mfg Alex

Es sollten unbenutzte Pins vom Shield zum Arduino zugeordnet sein. Lesen Sie das Datenblatt des Shields oder messen Sie jeden Pin, um die Kontinuität zu gewährleisten.

Ein Datenblatt, was die freien Pins beschreibt, habe ich auf die Schnelle nicht finden können. Den Bildern nach sollten A0 bis A5, 2 und 13 noch frei sein. 0 und 1 sollst Du nicht verwenden, da liegt ja die serielle Schnittstelle zum USB drauf.
Ohne Gewähr, ggf. selber nachschauen und -messen.

Nachtrag:
Vermutlich wird Dir das nix nützen, denn das Funkmodul wird über SPI angesteuert (siehe Wolles Beitrag) - und die Pins liegen auf 10 bis 13.

Bilder


Ich hab ebenso leider kein Datenblatt gefunden was mir die informationen gibt. Ich verstehe nicht so ganz wie ich die Digitalen pins nutze wenn das Shield drauf ist. Muss ich in diesem Fall oben auf die digitalen pins eine verbindung löten? Denn durchsteckverbindungen sehe ich jetzt keine die den digitalen Pins zugeordnet sind.

Tuhe mich etwas schwer mit dem Shield :I

Die, die von der Elektrik auf dem Shield verwendet werden: Gar nicht!
Man kann aber die A0...A5 auch als Digitalpin verwenden, allerdings nicht als SPI.

Würde das nicht bedeutet dass der NRF24l01 nicht kompatibel ist mit dem Shield? Wenn ich die analogen Pins nicht nutzen kann?

Kompatibel nicht direkt. SPI ist ein Bus für mehrere Teilnehmer. CE und CSN kannst du auf beliebig anderen freie Pins legen.

12 MISO
11 MOSI
Sind vom Shield belegt. Während der Datenübertragung zum nRF24 sollte die Bibliothek des Shields nicht diese Pins beeinflussen

13 SCK wird vom Shield nicht benutzt.


Dann gibt es noch die Möglichkeit von Software SPI. Du müsstest nur der nRF24 Bibliothek beibringen dies zu nutzen.
Das kann dir aber auch in die Suppe spucken, wenn beide Bibliotheken einen gleichen Timer nutzen.

1 Like

Danke!
Wo hast Du denn jetzt den Schaltplan gefunden? - den rechten Teil habe ich auch irgendwo gesehen, aber den linken nicht :slight_smile:
Ach, steht im Schaltplan - vielleicht bei Adafruit (muss ich später mal genauer wühlen).

Das führt dazu, dass hier

meine Antwort eher "Ja, nicht kompatibel" wäre (theoretisch vielleicht möglich, praktisch nicht).
Man müsste dann den Code der verwendeten Bibliothek (welche?) analysieren - oder eine eigene erstellen, von der man weiß, wann sie was tut.

Ich habe noch was gefunden - in den FAQ zum Adafruit Motot Shield:

Das Motor Shield blockiert viele Pins.
Ich würde darum 4 externe H-Brücken (oder 2 Doppelbrücken) verwenden. zB zwei DRV8835

Da braucht man 8 Pins. Wenn man die Geschwindigkeit regeln will dann müssen 4 Pins PWM Fähig sein. So hat man von den 20 pins des Arduino UNO noch 12 Pin frei.

Der DRV8835 hat gegenüber dem L293D den Vorteil eines höheren Motorstroms (genaugesagt mehr als das das doppelte; 0,6A gegenüber 1,5A), Kleineren Spannungsabfall an den Ausgangspins, ( max 1,16V gegenüber 3,6V bei max Strom)
Der DRV8835 kann die Motorspannung zwischen 0 und 11V sein, beim L293D zwischen 5V (Versorgungsspannung des Digitalteils) und 36V.
Der DRV8835 hat 2 Pins pro H-Brücke: IN1 und IN2 bzw DIR und EN/PWM (durch ein Pin für beiden H-Brücken auswählbar)
Der L293 hat 3 Pin pro H-Brücke: IN1, IN2 und EN/PWM

Grüße Uwe

1 Like

Danke für deine Antwort. Könntest du bitte etwas genauer erklären wie ich diese DRV8835 verbinden würde?
Mfg Alex

Nehme mal an Du lebst in Deutschland.
Bezugsquelle zB:

Info wie verwenden:

zB so:


oder

Unterschied ist das MODE Pin um die beiden Betriebsmodi umzuschalten.

Grüße Uwe