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.
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.
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.
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.
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.
Danke!
Wo hast Du denn jetzt den Schaltplan gefunden? - den rechten Teil habe ich auch irgendwo gesehen, aber den linken nicht
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.
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