Forum: Mikrocontroller und Digitale Elektronik Schaltplan Fahrradcomputer


von Matthias K. (m-k)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin dabei mir meinen eigenen Fahrradcomputer zu entwerfen. Ich habe 
jetzt einen Schaltplan entworfen, zu dem ich gerne eure Meinung hoeren 
wuerde.
Insbesondere bin ich mir bei den folgenden Teilen nicht so sicher, ob 
das alles richtig ist:

1. USB-RS232:
   1.1 RX/TX richtig verdrahtet?
   1.2 RTS zum Reseten fuer Bootloaderbetrieb so moeglich?
   1.3 Kann ich die 5V vom USB ueber die Diode D4 an VSS legen und damit 
den Akku laden?
   1.4 3V3OUT <-> VCCIO richtig verbunden?

2. AC-DC:
   Klappt folgendes: Falls der Akku voll ist und die Schaltung nahezu 
keinen Strom verbraucht, dann steigt die Leerlaufspannung des 
Nabendynamos. Die Zenerdiode D3 beschraenkt die Spannung und wird warm, 
dadurch trennt der Thermoschalter die Schaltung vom Nabendynamo.

3. Rest:
   Fallen irgendjemand noch gravierende Fehler in den anderen Gruppen 
auf, oder gibt es Anmerkungen, was nicht so schoen ist und anders besser 
waere. Gut waeren auch Kommentare zu allem was so klappt.

Vielen Dank allen, die sich die Muehe machen mal drueberzuschauen.

Matthias

P.S. Layout ist in der Mache und folgt bald.

von Michael R. (mexman) Benutzerseite


Lesenswert?

Die Basis von Q3 offen zu lassen halte ich fuer gewagt.
Traegst Du beim Radeln immer einen Rucksack?
;-)

Gruss

Michael

von Michael R. (mexman) Benutzerseite


Lesenswert?

Und Vorsicht mit den Massepotenzialen, wenn der Dynamo auch noch was 
sinnvolles ;-) tun soll wie Licht versorgen!

Gruss

Michael

von Matthias K. (m-k)


Lesenswert?

Michael Roek schrieb:
> Die Basis von Q3 offen zu lassen halte ich fuer gewagt.

Wie meinst du das?

> Traegst Du beim Radeln immer einen Rucksack?
> ;-)

nein, eg nie! ;-)

> Und Vorsicht mit den Massepotenzialen, wenn der Dynamo auch noch was
> sinnvolles ;-) tun soll wie Licht versorgen!

Stimmt das wollte ich auch noch fragen! Was muss ich da beachten?



Gruss Matthias

von Sascha W. (sascha-w)


Lesenswert?

Matthias K. schrieb:
> Michael Roek schrieb:
>> Und Vorsicht mit den Massepotenzialen, wenn der Dynamo auch noch was
>> sinnvolles ;-) tun soll wie Licht versorgen!
>
> Stimmt das wollte ich auch noch fragen! Was muss ich da beachten?
das deine Schaltungsmasse an keiner Stelle mit dem Rahmen in Kontakt 
kommen darf! Wenn das nicht gegeben ist kannst du nur einen 
Einweggleichrichter verwenden.

Sascha

von Matthias K. (m-k)


Angehängte Dateien:

Lesenswert?

Sorry fuer die spaete Antwort.

Also wenn die Masse meiner Schaltung nicht mit dem Rahmen in Kontakt 
kommt, dann kann geht es so?

Ich habe auch mal ein Layout erstellt. Waere echt nett, wenn sich das 
mal jemand anschauen kann, habe das noch nicht so oft gemacht.

von Martin A. (airmartl)


Lesenswert?

Hallo Matthias,

und hast du deinen Radltacho zum laufen bekommen?
Ich baue nämlich einen ähnlichen, komme aber ned wirklich weiter...

Gruß Martin

von Matthias (Gast)


Lesenswert?

Hallo Martin,

der Tacho laeuft soweit ganz gut, ich habe noch ein paar Probleme mit 
der Ladeschaltung, aber sonst funktioniert schon einiges. Momentan ruht 
das Projekt aber.

Wo liegen denn deine Probleme?

Gruss Matthias

von Martin A. (airmartl)


Lesenswert?

Matthias schrieb:
> der Tacho laeuft soweit ganz gut, ich habe noch ein paar Probleme mit
> der Ladeschaltung, aber sonst funktioniert schon einiges. Momentan ruht
> das Projekt aber.

Hallo Matthias, welchen MC verwendest du?
Hast du deine Software in C geschrieben?

Mein Tacho läuft auch schon. Trip und Uhr funktionieren einwandfrei. Nur 
bei der Geschwindigkeit habe ich probleme mit dem Timer, bis jetzt 
konnte ich noch keine Lösung finden :(

Gruß Martin

von Dominik R. (vision)


Lesenswert?

Hi Martin,

wo liegt das Problem mit dem Timer? Den Timer grundsätzlich an Gang zu 
bekommen oder den Logarithmus zur Bestimmung der Geschwindigkeit zu 
entwickeln?

Gruß
Dominik

von Volker (Gast)


Lesenswert?

Wozu braucht es da einen Logarithmus?

von Loth (Gast)


Lesenswert?

Volker schrieb:

> Wozu braucht es da einen Logarithmus?

Der Autor hat das Wort "Algorithmus" falsch geschrieben und die 
Rechtschreibhilfe hat es "korrigiert".

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Volker schrieb:
> Wozu braucht es da einen Logarithmus?

Um beim Multiplizieren gefahrene Strecken zu addieren ;-)

von Matthias (Gast)


Lesenswert?

Martin Airmartl schrieb:
> Hallo Matthias, welchen MC verwendest du?
> Hast du deine Software in C geschrieben?

Ich habe einen Atmega 644 verbaut.
Software ist in C und laeuft eigentlich sehr gut.
Schwierigkeiten habe ich bei Geschwindigkeiten oberhalb von 60km/h, da 
scheint entweder die Interrupt-Routine nicht mehr hinterherzukommen, 
oder die Detektierung der Signal vom Nabendynamo funktioniert halt doch 
nicht optimal.

Welche Probleme hast du mit dem Timer?

VG Matthias

von Dominik R. (vision)


Lesenswert?

Natürlich war der Algorithmus gemeint. Immer diese 
Wortfindungsschwierigkeiten...

Du könntest einfach einen Reed-Kontakt nehmen, um die Radumdrehungen zu 
zählen. Vielleicht wäre das einfacher. Keine Ahnung, welche Werte du von 
deinem Dynamo bekommst.

von Martin A. (airmartl)


Angehängte Dateien:

Lesenswert?

Matthias schrieb:
> Welche Probleme hast du mit dem Timer?

Hallo Matthias,

was bei meinem Tacho funktioniert: Trip zählen, Uhrzeit.
was nicht funktioniert: Geschwindigkeit.

Ich erfasse die Drehzahl über einen Reed Kontakt, das heißt ein Impuls 
pro umdrehung. Der Reed ist hardwaremäßig entprellt. Das entprellt 
signal löst einen PIN CHANGE Interrupt aus, der die Zeitdifferenz vom 
letzten interrupt ausrechnet und damit die geschwindigkeit ausrechnet.

Das Ganze funktioniert auch im Prinzip, nur manchmal wird eine 
unplausible Geschwindigkeit berechnet. Wenn ich 100km/h fahre oder mit 
einem Frequenzgenerator simoliere, dann wird 100 angezeigt - aber 
manchmal springt der Wert dann auf 160km/h oder 84km/h oder 230..... 
Manchmal dauert es einige Minuten oder gar Stunden bis ein Fehler 
auftritt.

Ich hab schon alles ausprobiert, verschiedene arten die Geschwindigkeit 
zu berechnen, aber immer das problem. Als ich vermutet habe das es an 
den Überläufen des Timers liegt, habe ich einen 32-Bit Software Timer 
hinzu programmiert, funktioniert aber auch nicht :(

Hast du eine Idee?
Oder kann mir jemand anders helfen??

von Matthias (Gast)


Lesenswert?

Hallo Martin,

da ich die Stromversorgung mit dem Nabendynamo realisiert hab, verwende 
ich die Frequenz des Nabendynamo um so wie du per Interrupt die 
Geschwindigkeit zu ermitteln (14 Interrupts pro Radumdrehung).
Prinzipiell funktioniert meine Geschwindigkeitsberechnung gleich wie in 
deinem Code. Ich kann heute Abend mal die Routine raussuchen und hier 
einstellen.

Was passiert bei Dir, wenn die Geschwindigkeit falsch angezeigt wird? 
Bleibt die dann falsch oder stellt sich wieder der Sollzustand ein?

Das Problem mit sporadisch falschen Geschwindigkeiten habe ich auch, ich 
habe daher fuer die Ermittlung der Hoechstgeschwindigkeit eine Art 
Limitierung der Beschleunigung implementiert. Wahrscheinlich liegt da 
irgendwo der Fehler in meiner Implementation bei hohen 
Geschwindigkeiten.
Ansonsten sind mir kurzzeitig falsche Geschwindigkeiten egal, ich schaue 
ja nicht unentweg auf den Tacho ;-)

von Martin A. (airmartl)


Lesenswert?

Matthias schrieb:
> Ansonsten sind mir kurzzeitig falsche Geschwindigkeiten egal, ich schaue
> ja nicht unentweg auf den Tacho ;-)

Hi Matthias,
naja bei mir ist die Maximale Geschwindigkeit nicht egal, da ich diese 
als MaxSpeed abspeichere und diese anzeigen will.

Matthias schrieb:
> Was passiert bei Dir, wenn die Geschwindigkeit falsch angezeigt wird?
> Bleibt die dann falsch oder stellt sich wieder der Sollzustand ein?

Es wird nur ganz kurz die Falsche Geschwindigkeit angezeigt und dann 
wieder die richtige. Von dem her nicht soooo schlimm. Man könnte die 
Sprünge auch noch mit einem Filter abfangen, aber mein Problem sind die 
krassen Sprünge und die Speicherung als Max Speed.

von Dominik R. (vision)


Lesenswert?

Könnte es sein, dass deine Pinchange-ISR die Timer-ISR sporadisch 
blockiert und du somit ein Timerinterrupt verlierst? Dann würde der 
"Umdrehungszähler" die Umdrehungen für 2 Timer-Zyklen zählen statt für 
einen und die Geschwindigkeit sich somit verdoppeln...

von Martin A. (airmartl)


Lesenswert?

Hallo Dominik,

sollte das der Fall sein, dann müsste die angezeigte 
Geschwindigkeit/Drehzahl kleiner sein als die tatsächliche. Oder?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.