Zur Programmierung wird standardmäßig die Windows-Software „Arduino Pedelec Configurator“ verwendet werden, in der nahezu alle Konfigurationsparameter graphisch einstellt werden können und auch verschiedene Konfigurationen verwaltet werden können.
Voraussetzungen:
Weitere Informationen gibt es in diesem Thread
Der FC kann auch direkt über die Arduino IDE programmiert werden.
Der Standard Quellcode liegt in einem Github-Repository: https://github.com/jenkie/Arduino-Pedelec-Controller Sämtliche Einstellungen werden in der Datei config.h vorgenommen und dann mit Hilfe der Arduino IDE auf den FC geladen. Der oben beschriebene „Arduino Pedelec Configurator“ macht nichts anderes, als eine entsprechende config.h zu erzeugen und das Programm ebenfalls über die Arduino IDE auf den FC zu laden.
Arduino-Anfängern wird dieser kurze Einstieg in die Arduino-Welt empfohlen.
Auf folgender Seite sind viele Beispiele zum Anschluss von Komponenten an den FC dargestellt:
Die Anschlüsse sind weitestgehend identisch zum FC 2.0 und 2.1. mit folgenden Abweichungen:
Anschluss | …angeschlossen an | Pinbelegung (von oben nach unten/ vlnr) | Bemerkungen |
---|---|---|---|
J8 | Bluetooth-Modul | +5V, GND, RX, TX | TX an RX des BT-Moduls, RX an TX des BT-Moduls anschließen. Das Bluetooth-Modul kann per Software an und abgeschaltet werden. |
J10 | Externer Stromsensor | GND, Strom,Spannung (von oben) | Hier kann ein externer Strom/Spannungssensor (z. B. Attopilot) angeschlossen werden, um höhere Ströme oder Spannungen zu messen |
SJ1 | Löt-Jumper Displaytyp | Entweder die „oberen“ beiden Pads verbinden: „Normales“ Display wie Nokia etc. mit Taster zum anschalten, oder die „unteren“ beiden Pads verbinden: „BMS“-Typ Display mit angeschlossener blauer Leitung. SJ1 und SJ3 müssen immer gleichzeitig umgelegt werden. | |
SJ3 | Löt-Jumper Displayspannung | Entweder die „unteren“ beiden Pads verbinden: Batteriespannung oder die „oberen“ beiden: +5V. EXTREME Vorsicht, da bei Fehllötung schnell die Batteriespannung auf 5V liegt, und alles (Arduino, Display, Sensoren, Spannungswandler, …) zerstört wird. Beim umsetzen des Jumpers also auf Kurzschluss nachmessen! Außerdem darf je nach Stellung nicht der falsche Displaytyp angeschlossen werden! Siehe auch SJ1 |
Anschluss | …angeschlossen an | Pinbelegung (von oben nach unten/ vlnr) | Bemerkungen |
---|---|---|---|
J1 | Gas- und Bremseingang des Motorcontrollers | GND,Motor,Bremse, +5V | Der Arduino gibt hier ein PWM-Signal aus, welches mit einem Tiefpass geglättet wird → das ergibt ein 0-5V Gleichspannungssignal, mit welchem die meisten Controller zufrieden sein dürften. Üblicherweise reicht hier ein zweipoliger Verbinder mit GND und Motorsignal, da das analoge Bremssignal kein bisher bekannter Controller unterstützt. |
J2 | Radsensor (Geschwindigkeit) | GND, Signal | Hier einfach einen Reedkontakt (z. B. von einem alten Fahrradcomputer) anschließen |
J3 | PAS-Sensor | GND,Signal,+5V | Funktioniert mit digitalen PAS-Sensoren aus Standard-Umrüstsets. |
J4 | Thun X-Cell RT | GND/schwarz,PAS2/braun,PAS1/blau,Drehmoment/grau,+/weiß | Hier wird der Thun Drehmomentsensor mit allen fünf Adern angeschlossen. |
J5 | I2C-BUS | GND, +5V, SDA, SCL | Display, Barometer, Kompass, … Falls kein I2C benötigt wird, sind hier die Arduino-Pins 20 und 21 verfügbar |
J6 | Beleuchtung | GND, + | Hier kann die Fahrradbeleuchtung angeschlossen werden. Ausgang ist nicht kurzschlussgesichert, eventuell Sicherung einbauen! Bei Dauerbelastung > 1.5A sollten Kühlkörper auf Spule und Spannungsregler geklebt werden. Die Spannung ist einstellbar: Siehe R21 |
J7 | On-Taster | GND, Signal | Werden die Pins kurz überbrückt („Taster“, Strom < 1mA) bis der FC piepst, geht das System an. Nur sinnvoll wenn kein Display verbaut ist, da ansonsten übers Display angeschaltet werden kann. Eine permanente Überbrückung wird nicht empfohlen, da die Gefahr eines durch den Anschaltstrom durchbrennenden FETs besteht. |
J8 | Bluetooth-Modul | GND,+5V, RX, TX | TX an RX des BT-Moduls, RX an TX des BT-Moduls anschließen. Das Bluetooth-Modul kann per Software an und abgeschaltet werden. |
J9 | +5V Handy | GND, +5V | Hier kann z. B. ein Smartphone geladen werden. Ausgang ist nicht kurzschlussgesichert, eventuell Sicherung einbauen! Bei Dauerbelastung > 1.5A sollten Kühlkörper auf Spule und Spannungsregler geklebt werden. |
RJ45-1 | Lenkerbedienelemente | +5V, D2,D5,D4,A5,A4,A3,GND | Spannungsversorgung sowie je drei analoge und digitale Arduino-Pins. Anschlussbelegung siehe Abbildung oben |
RJ45-2 | Display-Buchse | +5V, D37, D7, D17, D16, PH2, D6, GND | Spannungsversorgung und 6 digitale Arduino-Pins für diverse Displays. Anschlussbelegung siehe Abbildung oben. Ob 5V oder Batteriespannung (für Fertigdisplays) anliegen, wird mit SJ1 und SJ3 eingestellt. |
SJ1 | Löt-Jumper Displaytyp | Entweder die „oberen“ beiden Pads verbinden: „Normales“ Display wie Nokia etc. mit Taster zum anschalten, oder die „unteren“ beiden Pads verbinden: „BMS“-Typ Display mit angeschlossener blauer Leitung. SJ1 und SJ3 müssen immer gleichzeitig umgelegt werden. | |
SJ3 | Löt-Jumper Displayspannung | Entweder die „oberen“ beiden Pads verbinden: Batteriespannung oder die „unteren“ beiden: +5V. EXTREME Vorsicht, da bei Fehllötung schnell die Batteriespannung auf 5V liegt, und alles (Arduino, Display, Sensoren, Spannungswandler, …) zerstört wird. Beim umsetzen des Jumpers also auf Kurzschluss nachmessen! Außerdem darf je nach Stellung nicht der falsche Displaytyp angeschlossen werden! Siehe auch SJ1 | |
R21 | Poti für Beleuchtungsspannung | Mit einem kleinen Kreuzschlitz kann hier die Beleuchtungsspannung von ca. 6-12V eingestellt werden. Uhrzeigersinn=höhere Spannung. Achtung, sehr filigran, nach 12V kommt direkt wieder 6V (kann bedenkenlos durchgedreht werden) |
Anschluss | …angeschlossen an | Pinbelegung (von oben nach unten/ vlnr) | Bemerkungen |
---|---|---|---|
J1 | Gas- und Bremseingang des Motorcontrollers | +5V,D5, D6, GND | Der Arduino gibt hier ein PWM-Signal aus, welches mit einem Tiefpass aus R15 und C4 geglättet wird → das ergibt ein 0-5V Gleichspannungssignal, mit welchem die meisten Controller zufrieden sein dürften. D6 wird an den Gaseingang des Motorcontrollers angeschlossen und D5 wird optional an den Bremseingang des Controllers angeschlossen. Wird keine Rekuperation benutzt, reicht hier also ein zweipoliger Verbinder mit GND und D6. Siehe auch SJ2! |
J2 | Radsensor (Geschwindigkeit) | GND, D3 | Hier einfach einen Reedkontakt (z. B. von einem alten Fahrradcomputer) anschließen |
J3 | PAS-Sensor | +5V, D2,GND | Funktioniert mit digitalen PAS-Sensoren aus Standard-Umrüstsets. Damit hier ein Sensor angeschlossen werden kann, muss SJ4 offen sein! |
J4 | Thun X-Cell RT | +/weiß, A3/grau,PAS1/blau,PAS2/braun,GND/schwarz | Hier wird der Thun Drehmomentsensor mit allen fünf Adern angeschlossen. SJ4 muss dann geschlossen werden und J3 wird damit deaktiviert. Wer keinen Thun-Sensor benutzt, kann am grauen Pin A3 abgreifen oder damit die Beleuchtung schalten. |
J5 | I2C-BUS | GND, +5V, SDA, SCL | Display, Barometer, Kompass, … Falls kein I2C benötigt wird, sind hier die Arduino-Pins A4 und A5 verfügbar |
J6 | Beleuchtung | +, GND | Hier kann die Fahrradbeleuchtung angeschlossen werden. Ausgang ist nicht kurzschlussgesichert, eventuell Sicherung einbauen! Bei Dauerbelastung > 2A sollten Kühlkörper auf Spule und Spannungsregler geklebt werden. Siehe auch SJ1! Die Spannung ist einstellbar: Siehe R11 |
J7 | On/Off-Schalter | Off - On | Werden die unteren Pins kurz (oder permanent) überbrückt („Taster“, Strom < 1mA) geht das System an. Ausgeschaltet wird, indem softwareseitig der Pin A1 auf HIGH gesetzt wird, oder die oberen beiden Pins kurz gebrückt werden. |
J8 | Bluetooth-Modul | D7, GND, RX, TX | TX an RX des BT-Moduls, RX an TX des BT-Moduls, D7 an +5V des Bluetooth-Moduls anschließen. Durch softwareseitiges Schalten von D7 kann das Bluetooth-Modul an- und abgeschaltet werden. |
RJ45-1 | Lenkerbedienelemente | +5V, D4, D5, D7, A1, A6, A7, GND | Spannungsversorgung sowie je drei analoge und digitale Arduino-Pins. Anschlussbelegung siehe Abbildung oben |
RJ45-2 | Display-Buchse | +5V, D8, D9, D10, D11, D12, D13, GND | Spannungsversorgung und 6 digitale Arduino-Pins für diverse Displays. Anschlussbelegung siehe Abbildung oben. Ob 5V oder Batteriespannung (fürs Kingmeter-Display) anliegen, wird mit SJ3 eingestellt |
SJ1 (Rückseite) | Löt-Jumper Beleuchtung | Ist der Lötpunkt unten, so ist der Beleuchtungsausgang dauer-an, ist der Lötpunkt oben, kann die Beleuchtung mit A3 (option-in) geschaltet werden, wenn kein Thun-Lager verwendet wird! | |
SJ2 (Vorderseite) | Löt-Jumper Bremsausgang | Ist der Lötjumper geschlossen, wird der Bremsausgang von J1 aktiviert (Arduino-Pin D5). | |
SJ3 (Rückseite) | Löt-Jumper Displayspannung | Entweder die „oberen“ beiden Pads verbinden: 5V oder die „unteren“ beiden: Batteriespannung. EXTREME Vorsicht, da bei Fehllötung schnell die Batteriespannung auf 5V liegt, und alles (Arduino, Display, Sensoren, Spannungswandler, …) zerstört wird. Beim umsetzen des Jumpers also nachmessen! | |
SJ4 (1.4 Rückseite, 1.5 Vorderseite) | Löt-Jumper Thun X-Cell RT | Ist dieser Lötjumper gesetzt, wird das Thun-Lager benutzt, um die Drehung zu erkennen, und nicht ein an J3 angeschlossener Standard-PAS-Sensor | |
R11 | Poti für Beleuchtungsspannung | Mit einem kleinen Kreuzschlitz kann hier die Beleuchtungsspannung von ca. 6-12V eingestellt werden. Uhrzeigersinn=höhere Spannung. Achtung, sehr filigran, nach 12V kommt direkt wieder 6V (kann bedenkenlos durchgedreht werden) :) |
Anschluss | …angeschlossen an | Pinbelegung (von oben nach unten) | Bemerkungen |
---|---|---|---|
J1 | Gas- und Bremseingang des Motorcontrollers | GND, D6, D5, +5V | Der Arduino gibt hier ein PWM-Signal aus, welches mit einem Tiefpass aus R15 und C4 geglättet wird → das ergibt ein 0-5V Gleichspannungssignal, mit welchem die meisten Controller zufrieden sein dürften. D6 wird an den Gaseingang des Motorcontrollers angeschlossen und D5 wird optional an den Bremseingang des Controllers angeschlossen. Wird keine Rekuperation benutzt, reicht hier also ein zweipoliger Verbinder mit GND und D6. Siehe auch SJ2! |
J2 | Radsensor (Geschwindigkeit) | GND, D3 | Hier einfach einen Reedkontakt (z. B. von einem alten Fahrradcomputer) anschließen |
J3 | PAS-Sensor | GND, D2, +5V | Funktioniert mit digitalen PAS-Sensoren aus Standard-Umrüstsets |
J4 | Optionale Erweiterung | GND, A3, +5V | z. B. Drehmomentsensor, Temperatursensor. Wird der Beleuchtungsausgang mit dem Arduino geschaltet, kann dieser Verbinder nicht genutzt werden! Siehe auch SJ1! |
J5 | I2C-BUS | GND, SCL, SDA, +5V | Display, Barometer, Kompass, … Falls kein I2C benötigt wird, sind hier die Arduino-Pins A4 und A5 verfügbar |
J6 | Beleuchtung | GND, +7,1V | Hier kann die Fahrradbeleuchtung angeschlossen werden. Ausgang ist nicht kurzschlussgesichert, eventuell Sicherung einbauen! Bei Dauerbelastung > 1A sollten Kühlkörper auf Spule und Spannungsregler geklebt werden. Siehe auch SJ1! Ab Version 1.3C ist die Spannung einstellbar: Siehe R11 |
J7 | On/Off-Schalter | On - Off | Werden die rechten Pins kurz (oder permanent) überbrückt („Taster“, Strom < 1mA) geht das System an. Ausgeschaltet wird, indem softwareseitig der Pin A1 auf HIGH gesetzt wird, oder die linken beiden Pins kurz gebrückt werden. |
J8 | Bluetooth-Modul | TX, RX, GND, D7 | TX an RX des BT-Moduls, RX an TX des BT-Moduls, D7 an +5V des Bluetooth-Moduls anschließen. Durch softwareseitiges Schalten von D7 kann das Bluetooth-Modul an- und abgeschaltet werden. |
RJ45-1 | Lenkerbedienelemente | +5V, D4, D5, D7, A1, A6, A7, GND | Spannungsversorgung sowie je drei analoge und digitale Arduino-Pins. Anschlussbelegung siehe Abbildung oben |
RJ45-2 | Display-Buchse | +5V, D8, D9, D10, D11, D12, D13, GND | Spannungsversorgung und 6 digitale Arduino-Pins für diverse Displays. Anschlussbelegung siehe Abbildung oben. Ob 5V oder Batteriespannung (fürs Kingmeter-Display) anliegen, wird mit SJ3 eingestellt (ab Version 1.3C). |
SJ1 (Rückseite) | Löt-Jumper Beleuchtung | Ist der Lötpunkt links, so ist der Beleuchtungsausgang dauer-an, ist der Lötpunkt rechts, kann die Beleuchtung mit A3 (option-in) geschaltet werden. | |
SJ2 (Rückseite) | Löt-Jumper Bremsausgang | Ist der Lötjumper geschlossen, wird der Bremsausgang von J1 aktiviert (Arduino-Pin D5). | |
SJ3 (Rückseite, ab Version 1.3C) | Löt-Jumper Displayspannung | Entweder die „rechten“ beiden Pads verbinden: 5V oder die linken beiden: Batteriespannung. EXTREME Vorsicht, da bei Fehllötung schnell die Batteriespannung auf 5V liegt, und alles (Arduino, Display, Sensoren, Spannungswandler, …) zerstört wird. Beim umsetzen des Jumpers also nachmessen! | |
R11 (ab Version 1.3C) | Poti für Beleuchtungsspannung | Mit einem kleinen Kreuzschlitz kann hier die Beleuchtungsspannung von ca. 6-12V eingestellt werden. Uhrzeigersinn=höhere Spannung. Achtung, sehr filigran :) |
Anschluss | …angeschlossen an | Pinbelegung (von oben nach unten) | Bemerkungen |
---|---|---|---|
J1 | Gaseingang des Motorcontrollers | GND, D6 | Der Arduino gibt hier ein PWM-Signal aus, welches mit einem Tiefpass aus R15 und C4 geglättet wird → das ergibt ein 0-5V Gleichspannungssignal, mit welchem die meisten Controller zufrieden sein dürften. Für einen Modellbauregler mit PWM-Eingang nimmt man einfach C4 raus, ersetzt R15 durch eine Drahtbrücke |
J2 | Radsensor (Geschwindigkeit) | GND, D3 | Hier einfach einen Reedkontakt (z. B. von einem alten Fahrradcomputer) anschließen |
J3 | PAS-Sensor | GND, D2, +5V | Funktioniert mit digitalen PAS-Sensoren aus Standard-Umrüstsets |
J4 | Optionale Erweiterung | GND, A2, +5V | z. B. Drehmomentsensor, Temperatursensor, … |
J5 | I2C-BUS | GND, SCL, SDA, +5V | Display, Barometer, Kompass, … Falls kein I2C benötigt wird, sind hier die Arduino-Pins A4 und A5 verfügbar |
J6 | On-Taster | Werden die Pins kurz überbrückt („Taster“, Strom < 1mA) geht das System an. Ausgeschaltet wird, indem softwareseitig der Pin A0 auf HIGH gesetzt wird | |
J7 | On-Schalter | Muss permanent kurzgeschlossen werden, um J6 benutzen zu können. Alternativ: J6 permanent kurzschließen, dann ist J7 der konventionelle Einschalter wie in Platinenversion 1.1 | |
J8 | Bluetooth-Modul | TX, RX, GND, D7 | TX an RX des BT-Moduls, RX an TX des BT-Moduls, D7 an +5V des Bluetooth-Moduls anschließen. Durch softwareseitiges Schalten von D7 kann das Bluetooth-Modul an- und abgeschaltet werden |
RJ45-1 | Lenkerbedienelemente | +5V, D4, D5, D7, A0, A6, A7, GND | Spannungsversorgung sowie je drei analoge und digitale Arduino-Pins. Anschlussbelegung siehe Abbildung oben |
RJ45-2 | Display-Buchse | +5V, D8, D9, D10, D11, D12, D13, GND | Spannungsversorgung und 6 digitale Arduino-Pins für diverse Displays. Anschlussbelegung siehe Abbildung oben |
Anschluss | …angeschlossen an | Pinbelegung (von oben nach unten) | Bemerkungen |
---|---|---|---|
J1 | Gaseingang des Motorcontrollers | GND, D7 bzw. D6: siehe rechts | Der Arduino gibt hier ein PWM-Signal aus, welches mit einem Tiefpass aus R15 und C4 geglättet wird → das ergibt ein 0-5V Gleichspannungssignal, mit welchem die meisten Controller zufrieden sein dürften. Für einen Modellbauregler mit PWM-Eingang nimmt man einfach C4 raus, ersetzt R15 durch eine Drahtbrücke. Hinweis: Der Arduino-Pin D7 kann eigentlich gar kein PWM – deshalb im Beispielprogramm die Trickserei mit der SoftPWM-Library, die relativ zuverlässig funktionieren kann. Wer auf der sicheren Seite sein will (vorallem bei stromhungrigen Motoren > 250 W), kann auf der Platine einfach die Anschlüsse D7 und D6 (kann PWM) mit einem Lötpunkt verbinden und muss im Code folgende Zeilen ändern: - int throttle_out = 7; wird zu int throttle_out = 6; - Alles wo SoftPWM drinsteht: Weg - in der Setup-Routine pinMode(throttle_out, OUTPUT); hinzufügen - SoftPWMSet(throttle_out,throttle_write); wird zu analogWrite(throttle_out,throttle_write); - D6 darf dann natürlich für nichts anderes mehr verwendet werden (geht original an die RJ45-Buchse)!!! - D7 darf ebenfalls nicht benutzt werden (am besten: pinMode auf INPUT) |
J2 | analog Version 1.2 | ||
J3 | analog Version 1.2 | ||
J4 | Optionale Erweiterung | GND, A0, +5V | analog Version 1.2 |
J5 | analog Version 1.2 | ||
J6 | On-Schalter | Schaltstrom < 1 mA zum Anschalten des Controllers (Akku-Minus wird mit FET getrennt). Kann auch permanent geschlossen sein und funktioniert dann nur als Akku-Blitzschutz | |
RJ45-1 | Lenkerbedienelemente | +5V, D4, D5, D6, A3, A6, A7, GND | Spannungsversorgung sowie je drei analoge und digitale Arduino-Pins. Anschlussbelegung siehe Abbildung oben |
RJ45-2 | Display-Buchse | +5V, D8, D9, D10, D11, D12, D13, GND | Spannungsversorgung und 6 digitale Arduino-Pins für diverse Displays. Anschlussbelegung siehe Abbildung oben |
Platinenversion | Teileliste | Schaltplan | Externe Verschaltung |
---|---|---|---|
2.3 | Platinenversion 2.3 | ||
2.2 | Platinenversion 2.2 | ||
2.0 | ![]() | ||
1.5 | teileliste_1.5.xlsx | ![]() | |
1.4 | ![]() | ||
1.3 | ![]() | ![]() |
|
1.2 | teileliste_1.2.xls | ![]() | |
1.1 | ![]() |