Hallo,
ich plane im Moment einen kleinen miniatur Bordcomputer für
Roller/Motorräder.
http://uschok.de/~doommaster/BC-idee.svg
Wobei ich nur für die Entwicklung und zur Erleichterung des Nachbaus und
der Modifikation auf Arduino setze, die Finale Version soll ihr eigenes
Board bekommen, aber vermutlich dennoch Arduino IDE kompatibel bleiben.
Bisher geschafft sind:
-Temperaturmessung…TMP36 per externem ADC für Motornahe Anwendung, da
ich 1-wire dort nicht traue
-Umgebungstemperatur per DS… weil einfach einfach einfach ist zumal so
weitere 2 16bit-ADC-Kanäle für Erweiterungen frei bleiben.
-Batterygauge um Ladezustand und Spannung überwachen zu können (ggf
weiterer DS an der Batterie)
-LCD für die Anzeigen
-3 Tasten oder vllt ein Clickwheel für die Bedienung
alles in allem recht einfach… einzig fummelig erscheint bisher der
Drehzahlmesser
2 Varianten habe ich bisher im Kopf:
- Interrupt gesteuert… tut weh was die Programmierbarkeit für Anfänger
angeht und leider ist es kein XMega mit Events
- Timer0 als Counter nutzen… auch das ist nicht so super, aber schonmal
ne Ecke besser
Am liebsten wäre mir ein externes Tachometer per I2C oder ähnlichem…
aber bisher ist mir soetwas noch nicht untergekommen.
Hat bezüglich des Drehzahlmesser jemand eine durchschlagende Idee?
DooMMasteR schrieb:> Bisher geschafft sind:
Bisher in Laborumgebung...
> -Temperaturmessung…TMP36 per externem ADC für Motornahe Anwendung, da> ich 1-wire dort nicht traue
I2C ist nicht weniger störanfällig.
Es hat seinen Grund, dass in KFZ-Umgebung differentielle Bussysteme zum
Einsatz kommen.
> -LCD für die Anzeigen
Aber doch bitte kein so hässliches steinaltes wie im Blockschaltbild
angedeutet.
> -Batterygauge um Ladezustand und Spannung überwachen zu können (ggf> weiterer DS an der Batterie)
Integriert der IC denn auch wirklich analog und double-buffered? Sonst
ist mit Ladezustand Essig... da kannst du genausogut die Spannung allein
messen.
> alles in allem recht einfach… einzig fummelig erscheint bisher der> Drehzahlmesser>> 2 Varianten habe ich bisher im Kopf:> - Interrupt gesteuert… tut weh was die Programmierbarkeit für Anfänger> angeht und leider ist es kein XMega mit Events
Informier dich mal, was ICP ist. Wenn man sich nicht ungeschickt
anstellt, langweilt sich der Controller bei der Drehzahlmessung.
> - Timer0 als Counter nutzen… auch das ist nicht so super, aber schonmal> ne Ecke besser
von wegen...
Wie sieht denn das Analog-Frontend zum Abgreifen der Drehzahl aus? Das
ist die wirkliche Baustelle.
> Bisher in Laborumgebung...
stepp by stepp halt
> I2C ist nicht weniger störanfällig.> Es hat seinen Grund, dass in KFZ-Umgebung differentielle Bussysteme zum> Einsatz kommen.
I2C kann dann aber direkt auf dem Board stattfinden… das ist nicht all
zu schmerzhaft
Ich wollte aufrgund der Störproblematik auf externe Buse vorerst
vollends verzichten.
Im automotive Bereich vertraut man ja auch bis heute auf gute alte
Analogsensoren und wandelt quasi erst im SG. LIN oder CAN wären für die
Anwendung wohl overkill…
>> -LCD für die Anzeigen> Aber doch bitte kein so hässliches steinaltes wie im Blockschaltbild> angedeutet.
Bisher schon… aber ich bin für schönere Optionen immer offen, wichtig
ist nur, dass es unter üblen Bedingungen ableßbar bleibt.
> Integriert der IC denn auch wirklich analog und double-buffered? Sonst> ist mit Ladezustand Essig... da kannst du genausogut die Spannung allein> messen.
Den LTC4151 sehe ich eher als Option an, weil wir ihn da haben, aber
sonst nicht gebrauchen könne, einfacher Spannungsteiler mit etwas surge
protection am ADC sollte es sonst sicher auch tun… da hast du recht,
geht ja auch eher darum eine schwache Batterie erkennen zu können, denn
Ladekontrolleuchte usw. haben viele Roller (meiner) nicht, da es ein
Einspritzer ist, hat er aber auch keinen Kickstarter mehr.
> Informier dich mal, was ICP ist. Wenn man sich nicht ungeschickt> anstellt, langweilt sich der Controller bei der Drehzahlmessung.
Ich dachte bei der Interrupt-Lösung wirklich nur daran, in der ISR dann
das TimerRegister zu holen und den Timer wieder zu nullen.
Das sollte werder 1-wire noch I2C stören, was timings betrifft.
Die Frequenz kann man dann in Intervallen errechnen, leicht mitteln und
kommt sich dann nicht in die Quere.
>> - Timer0 als Counter nutzen… auch das ist nicht so super, aber schonmal>> ne Ecke besser> von wegen...
hmm ok
> Wie sieht denn das Analog-Frontend zum Abgreifen der Drehzahl aus? Das> ist die wirkliche Baustelle.
Das brauche ich nicht, es ist bereits ein Kurbelwellensensor vorhanden,
der Digital 0/5V auswirft, den die MCU z.B. für Zündzeitpunkt usw.
nutzt.
DooMMasteR schrieb:>> Bisher in Laborumgebung...> stepp by stepp halt
Und wie viele Steps dann zurück, wenns im Motorrad nicht funktioniert?
Nein, das gehört von Anfang an ins Konzept eingearbeitet.
Sonst kannst du z.B. von deinem 16bit gleich mal die hinteren 6 Bit
wegwerfen.
> Ich wollte aufrgund der Störproblematik auf externe Buse vorerst> vollends verzichten.
Dann hast du die Temperatursensoren mit den empfindlichen Analogleitung
über die langen Kabel angeschlossen??
> Bisher schon… aber ich bin für schönere Optionen immer offen, wichtig> ist nur, dass es unter üblen Bedingungen ableßbar bleibt.Beitrag "[V] AM OLED 2,8inch Display C0280QGMA-T von CMEL"
=)
> geht ja auch eher darum eine schwache Batterie erkennen zu können, denn> Ladekontrolleuchte usw. haben viele Roller (meiner) nicht, da es ein> Einspritzer ist, hat er aber auch keinen Kickstarter mehr.
Achso, alles klar.
>> Informier dich mal, was ICP ist. Wenn man sich nicht ungeschickt>> anstellt, langweilt sich der Controller bei der Drehzahlmessung.> Ich dachte bei der Interrupt-Lösung wirklich nur daran, in der ISR dann> das TimerRegister zu holen und den Timer wieder zu nullen.
Z.B. genau das macht ICP.
Michael H. schrieb:> DooMMasteR schrieb:>>> Bisher in Laborumgebung...>> stepp by stepp halt> Und wie viele Steps dann zurück, wenns im Motorrad nicht funktioniert?> Nein, das gehört von Anfang an ins Konzept eingearbeitet.> Sonst kannst du z.B. von deinem 16bit gleich mal die hinteren 6 Bit> wegwerfen.
Ja das Board sollte schon ordentlich entstört sein. (aber hey… bleiben
ja in deinem Szenario noch 10bit übrig :P)
>> Ich wollte aufrgund der Störproblematik auf externe Buse vorerst>> vollends verzichten.> Dann hast du die Temperatursensoren mit den empfindlichen Analogleitung> über die langen Kabel angeschlossen??
Ja so richtig super toll finde ich die Lösung auch noch nicht… aber
bisher habe ich nichts besseres gefunden, werde die TMP36 leicht
belasten und recht kräftig puffern, außerdem hängen vom ADC auch noch
Spulchen, aber viel mehr hatte ich bisher nicht zum Störschutz vor, das
16bit am Ende overkill sind, ist mir klar… aber man nimmt, was man hat.
Aber im automotive Bereich sind solche lösungen ja scheinbar auch nicht
unüblich… zumindes in Golfs usw. findet man viele solcher 0-2/0-5V
Sensoren… die nichteinmal über geschirmte Kabel angebunden sind.
>> Bisher schon… aber ich bin für schönere Optionen immer offen, wichtig>> ist nur, dass es unter üblen Bedingungen ableßbar bleibt.> Beitrag "[V] AM OLED 2,8inch Display C0280QGMA-T von CMEL"> =)
Das klingt schonmal nicht schlecht, mal sehen ob es da in der Richtung
etwas gibt, für das es zumindest schon einfache Libs gibt… ansonsten
selbst was Bauen, schaden kann das Notfalls auch nicht.
>>> Informier dich mal, was ICP ist. Wenn man sich nicht ungeschickt>>> anstellt, langweilt sich der Controller bei der Drehzahlmessung.>> Ich dachte bei der Interrupt-Lösung wirklich nur daran, in der ISR dann>> das TimerRegister zu holen und den Timer wieder zu nullen.> Z.B. genau das macht ICP.
Ich denke, dass es dabei auch bleiben wird…
Tachometer == Drehzahlmesser.
Für die Geschwindigkeitsanzeige dann irgendwo noch einen Geber,
softwaredeitig ist das identisch (bei der Geschwindigkeit geht halt
noch der Gang bzw die Übersetzung mit ein).
Sollte irgendwo noch ein Farbdisplay in rund und ca 72 mm auftauchen
bin ich dabei ...
ahh
Ich wollte nicht, dass es zu missverständnissen kommt, aber ja ich meine
einen Drehzahlmesser… kenne ihn halt aus dem Englischen eher als
Tachometer.
Farbdisplay in Rund o.O was wird haarig :P
besonders wenn man da was hübsches drauf haben will, ist man mit dem AVR
recht schnell am Limit, da müsste dann wohl eher etwas kräftigeres
daher.
Joachim Drechsel schrieb:> Tachometer == Drehzahlmesser.>> Für die Geschwindigkeitsanzeige dann irgendwo noch einen Geber,> softwaredeitig ist das identisch (bei der Geschwindigkeit geht halt> noch der Gang bzw die Übersetzung mit ein).>> Sollte irgendwo noch ein Farbdisplay in rund und ca 72 mm auftauchen> bin ich dabei ...
Das wird sicher eher schwer, von OLEDs habe ich mich ebenfalls
verabschieded, da sie im Anwendungsfall ggf. sehr hohen und niedrigen
Temperaturen und direkter dauerhafter Sonneneinstrahlung ausgesetzt
würden, das geht leider nicht lange gut.
Runde LCDs wiederum sind wirklich rar und teuer :P
Steffen A. schrieb:> Runde LCDs wiederum sind wirklich rar und teuer :P
Tja ... nur, wo sind sie teuer ? ;)
Bis jetzt habe ich noch nichts gefunden, nicht mal hier im Forum.
Danke ! Echte Lichtblicke ;)
Es sollte halt in ein Standard-Tachogehäuse (72 bzw 80 mm)
hineinpassen. Bei den meisten ist die LP hinter dem Display
erheblich größer ...
Hi
ich suche auch nach einem runden LCD passend fuer Tachogehaeuse.
Wenn ihr eine Quelle fuer so ein Teil findet waere ich ueber eine Info
dankbar. Ich wuerde mich auch gerne an einer Sammelbestellung
beteiligen.
Thomas S. schrieb:> ich suche auch nach einem runden LCD passend fuer Tachogehaeuse.> Wenn ihr eine Quelle fuer so ein Teil findet waere ich ueber eine Info> dankbar. Ich wuerde mich auch gerne an einer Sammelbestellung> beteiligen.
Es finden sich im Web welche. Sogar "in Farbe" und so halbwegs für
die doch etwas ruppigen Umweltbedingungen am Motorrad. Das Display
selbst paßt auch, nur ist es fest auf einer LP montiert (Ansteuerung).
Den Riesenflatschen bekomme ich nicht mal in die Lampe.
Neben den Temperaturen muß das halt auch UV-Strahlung aushalten.
Der Ablesewinkel, na ja ... man kann nicht alles haben. Bei Sonne
sollte es auch noch ablesbar sein.
Klar ginge das mit 7-Segment-Anzeigen. Sieht halt nicht so toll aus.
Mit einem Grafikdisplay sähe das einfach schicker aus.
>>Es finden sich im Web welche. Sogar "in Farbe" und so halbwegs für
die doch etwas ruppigen Umweltbedingungen am Motorrad. Das Display
selbst paßt auch, nur ist es fest auf einer LP montiert (Ansteuerung).
Den Riesenflatschen bekomme ich nicht mal in die Lampe.<<
Genau das ist auch mein Problem. Deshalb meine Bitte falls jemand was
passendes findet mir eine Info zu geben :-)
>>
Klar ginge das mit 7-Segment-Anzeigen. Sieht halt nicht so toll aus.
Mit einem Grafikdisplay sähe das einfach schicker aus.<<
So mache ich es auch im Moment. Es sieht auch nicht schlecht aus, aber
ich moechte halt noch ein paar andere Daten anzeigen und das waere mit
einem LCD besser machbar als mit einer oder zwei Ziffern.
http://www.farnell.com/datasheets/1640459.pdf wäre etwas brauchbares.
Leider nicht in rostfrei.
Please note that the recommended storage temperature is 15°C to 40°C.
The recommended relative storage humidity is below
70%. The optimal operating temperature range is between 15°C and 25°C.
spricht auch nicht gerade für eine Verwendung im Mopped.
Der Preis auch nicht gerade ...
deshalb bin ich bei dem 128x64 Pixel monochom LCD angekommen… ist nicht
so hübsch… aber sollte laut specs alle noch so üblen Bedingungen
überleben.
Betrieb -20°C-70°C, Lagerung -40°C-85°C
Das ist nicht optimal, aber schon nicht schlecht, denke schon, dass das
Display überleben wird.
With ITO glass heater, the lowest operatiing temperature is -35°C
Mit Heizlüfter ???
Im Datenblatt steht auch, Wasser löst den Kram auf. (= aufwendiges
Gehäuse).
wenn ich das recht verstehe ist das Display versiegelt… also das Modul
was man kaufen kann, fast alle OLEDs mögen keine Luft/Wasser/Wärme/Kälte
ITO glass heater ist vermutlich ne beheizte Scheibe, wer weiß :P
Am ende scheinen LCDs wohl eher brauchbar, wobei dort wohl eher die
(weißen) LEDs problematisch sind, die bei solch niedrigen Temperaturen
eher murgs machen, meint zumindest nen Kollege.
Na ja, Versuch macht kluch ...
Vielleicht sollte ich doch erstmal mit 7-Segment-Anzeigen anfangen.
Irgendwo habe ich noch welche herumfliegen.
Spanndend wäre auch wie sich so ein Display an einer Guzzi hält,
die hat bis jetzt alles ab- oder kaputtgeschüttelt.
@Joachim:
Guzzi? Ich habe mein Gebastel an einer Le Mans V.
Und hat nun schon mal 1 Saison gehalten :-)
Ich habe ein altes VDO-Gehaeuse genommen, entkernt und die
7-Segmentanzeige dort eingebaut. Mit ner Menge Moosgummi drumrum hat's
gehalten!
Den Mikrocontroller und den Rest habe ich unter der Sitzbank in einem
spritzwassergeschuetzten Gehaeuse war bislang auch kein Problem.
Meine ist eine SP1000 als Gespann. Den gleichen Beiwagen habe
ich an der Dnepr. An der Guzzi brüllt und rappelt der in allen
Tonlagen ...
Tachogehäuse habe ich noch. Innereien raus und die Anzeige auf
eine Kunstoffplatte aufgebaut da einsetzen dürfte auch kein Problem
sein. Ich habe nur nichts um das Gehäuse dann wieder zuzubördeln
(vielleicht mal bei Kienzle oder VDO-Dienst fragen ?).
Sp1000? Schick! Ein echtes Eisenschwein :-)
>>
Tachogehäuse habe ich noch. Innereien raus und die Anzeige auf
eine Kunstoffplatte aufgebaut da einsetzen dürfte auch kein Problem
sein. Ich habe nur nichts um das Gehäuse dann wieder zuzubördeln
<<
Ich habe meinen Gehaeusedeckel nur mit Silikondichtmasse eingeschmiert
und wieder aufgedrueckt. Wie gesagt, hat gehalten.
Allerdings habe ich das Gehaeuse auf dem Plastikteil unter der
Frontscheibe verbaut. Das ganze Ding vibriert schon so das es als
Stossdaempfer fuer die Instrumente dient :-)
Dort habe ich auch ein Oelthermoeter genau so befestigt. Haelt seit 20
Jahren ohne das etwas abvibriert ist.
2 Stoppmutter kontern, schweißpunkt drauf = hält. :-)
So ähnlich habe ich das auch vor. Idee ist, einen Attiny für die
Anzeigen zu verwenden, mit ein Paar Schiebregistern die LEDs zu
bedienen und das ganze seriell anzusteuern.
De eigentlich Rechner kommt irgendwo unter den Sitz, da ist noch
genug Platz. Wenn's das Elefantentreffen überlebt taugt es was ...
Tachogeber sitzt am Getriebeausgang, Drehzahl hole ich über die
Schse-Zündung (da ist ein Ausgang vorhanden), Öltemperatur mal
sehen. In der Ölwanne ist genug Platz. Ich denke, gelbe Anzeigen.
Irgendsowie in etwa.
Nächste Eskaltationsstufe wäre dann eine Kamera und Live-Übertragung
per Webcam "A3 heute mittag auf der linken Spur" :)
hmm um niedrige Temperaturen mache ich mir eher wenig Gedanken… viel
schlimmer sind die überheißen Sommertage, wenn die Sonne voll auf die
Verkleidung ballert.
Bei mir landet die ganze Technik vorne im Roller, da sind auch Batterie
und ein paar andere Elektronik sachen… nur ECU und die ganze sensorik
sind unter der Bank.
Das muss ich mir eh ersteinmal ansehen, bis auf den
Hall-Kurbelwellengeben habe ich noch nichts gefunden (der geht auch nach
vorne, kp warum).
Und sonst hat sich wohl noch niemand für die ECU usw. interessiert… kp
was die alles auffängt und ob die gar nen externen OBD-Bus hat.
vorhanden zu sein scheinen:
Lambdasonde
Drosselklappenstellungspoti
Drehzahlgeber
Drosselklappenservo (Versatzgetriebe) es gibt also noch nen Zug
Zündspulpuls
Einspritzpuls (PWM)
zumindest davon ausgehend, dass die Honda Moppel technisch ähnlich sind.
@Steffen
die lemans ist meine :-)
@Joachim
ich habe das "Problem" mit der Geschwindigkeitserfassung ueber einen 10
Hz GPS-Modul realisiert das ich von einem anderen Projekt uebrig hatte.
Ist eigentlich ganz einfach ueber TTL anzubinden.
Klar. Sorry, hab ich nicht dran gedacht.
Ich verwende das GPS-Signal auch nicht fuer den Tacho sondern um aus
Drehzahl und Geschwindigkeit den eingelegten Gang zu errechnen.
Was sagt der Tuev dazu wenn Du im Umkehrschluss aus dem Gang und der
Drehzahl die Geschwindigkeit errechnest? Obwohl ich keine wirklich
zuverlaessige Methode kenne den eingelegten Gang zu erkennen. Mir fallen
nur Reedkontakte ein und die sind nicht wirklich zuverlaessig.
naja… das kann man so oder so sehen :P aber war nicht billig und keine
öltemp ist bei etwas luftgekühltem etwas doof (es gibt ja netmal ne
Warnlampe).
außerdem macht es ja auch Spaß :)
// graphic commands to redraw the complete screen should be placed here
23
u8g.drawStr(24,63," 75""\xb0""C");
24
u8g.drawStr(79,63,oTempS);
25
}
und zwar wirklich nur flink dahingeschraubt :P aber ich wollte
ersteinmal sehen wie es um die Nutzbarkeit des Displays steht…
Auf Fotos sieht es zwar nicht sehr gut aus, aber gerade bei Tageslicht
ist es exzellent ablesbar…
vorallem das mit dem floattostr muss ich wohl anders machen :P
http://www.youtube.com/watch?v=O_QaI3J5nJA
Soo schluss für heute/gestern
http://pastebin.com/7hZp2AyB
:) 9bit reichen aus, das sind dann 0,5°C Schritte in denen die
Umgebungstemperatur erfasst wird, mehr braucht der Mensch nicht :)
Leider kostet die ganze 1wire sache runde 150ms… was die Framerate etwas
ruckeln lässt, aber dass load leveling werde ich nicht vor ganz zum
Schluss machen :P
die Entscheidung für die Strommessung ist nun gefallen, es wird wohl ein
analogsensor von Allegro, ein ACS709, auch wenn ich lieber was Digitales
gehabt hätte.
Die Variante kann -75 - 75A messen und das bei 120kHz Bandbreite, was
garnicht n¨togi ist, aber hey…
Michael H. schrieb:> Informier dich mal, was ICP ist. Wenn man sich nicht ungeschickt> anstellt, langweilt sich der Controller bei der Drehzahlmessung.
Wen meinen bitte?
http://de.wikipedia.org/wiki/ICP
Abkürzungen schön und gut, aber es ist nicht ohne Grund gute Praxis, sie
bei der ersten Nennung einzuführen bzw. zu verlinken.
Steffen A. schrieb:> Leider kostet die ganze 1wire sache runde 150ms… was die Framerate etwas> ruckeln lässt, aber dass load leveling werde ich nicht vor ganz zum> Schluss machen :P
Dann hol doch die (langsamen) Messwerte asnchron zu deiner Anzeige und
rechne in der Frame-Loop nur eine Tiefpassfilterung/Interpolation der
Messdaten.
Floatingpoint für solche Anwendungen ist allerdings etwas fehl am Platz,
weil der Dynamikbereich, den man durch FP-Rechnung gewinnt, überhaupt
nicht erforderlich ist und die Library nur den Speicher zustopft.
Ein Gast schrieb:> Wen meinen bitte?
nicht dich.
wenns der rest der welt versteht und nur du nicht, ist das nicht mein
problem, nicht deren problem, sondern dein problem.
> Abkürzungen schön und gut, aber es ist nicht ohne Grund gute Praxis, sie> bei der ersten Nennung einzuführen bzw. zu verlinken.
soll ich dir usb aussprechen? oder bzw? vllt vllt?
du hättest fragen können, wie n normaler mensch und jeder hätts dir
gesagt.
aber komm mir doch nicht so klugscheißerisch, du schnösel.
und da mein Display mir mit >2,5" wie ich es mir schon dachte, viel zu
groß ist, habe ich nun ein weiteres bestellt…
http://www.ebay.de/itm/221044217772?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_3026wt_956
das ist deutlich kleiner, nutzt aber den gleichen Controller (wobei
alles was von U8GLIB supported wird, kein Aufwand gewesen wäre.
Stromsensor usw. sind inzwischen da… das heißt ich kann demnächst etwas
mit burst/surge hardening usw. des Ganze anfangen.
soo
ich hätte noch ein zwei fragen zum verhalten von ICP…
1. wird auch ein neuer Input gecaptured wenn das ICF1 bit noch gesetzt
ist? das würde etwas weh tun, da ich einige andere Sachen auch Interrupt
gesteuert mache und dann ggf. die differenz aus 2 ICP events in den
Registern stehen würde
2. ist meine grundidee falsch
1
init{
2
prescaler von Timer1 auf 64 setzen; // damit der Timer auch im langsamsten intervall kein OVF hat
Steffen A. schrieb:> soo> ich hätte noch ein zwei fragen zum verhalten von ICP…>> 1. wird auch ein neuer Input gecaptured wenn das ICF1 bit noch gesetzt> ist? das würde etwas weh tun, da ich einige andere Sachen auch Interrupt> gesteuert mache und dann ggf. die differenz aus 2 ICP events in den> Registern stehen würde
?
Was um alles in der Welt machst du in den anderen Interrupts, dass das
so lange dauert, dass dir eine Kurbelwelle in dieser Zwischenzeit eine
komplette Umdrehung macht?
> 2. ist meine grundidee falsch
Wenn du ständig mit "Timer starten", "Timer stoppen", "Timer
zurücksetzen" rummachst, dann ist das meistens Unsinn.
Einen Timer startet man beim Programmstart einmalig und dann läuft der
durch, bis du den Strom abdrehst. Genau dazu hat man ja den Input
Capture, damit man sich von der Notwendigkeit befreit, genau zum
richtigen Taktzyklus den Timerwert auslesen zu müssen. Wenn der µC
momentan gerade in einer anderen ISR arbeitet, dann ist das mit ICP ja
kein Problem. Der Timer speicher tselbsttätig den Wert zur Flanke
zwischen und bei nächster Gelegenheit holt man sich den Wert. Das
'nächste Gelegenheit' darf natürlich nicht eine halbe Stunde später
sein, aber auf ein paar µs auf oder ab kommt es bei einem
Verbrennungsmotor, der bei jeder Kurbelwellenumdrehung einen Puls
erzeugt nun wirklich nicht an.
brauchst du nicht so kompliziert machen.
Das coole an unsigned Arithmetik ist, dass du dich nicht um Overflows
kümmern musst.
1
ISR(TIMER1_CAPT_vect)
2
{
3
timercapture=ICR1;
4
5
timediff=timercapture-lastcapture;
6
lastcapture=timerCapture;
7
}
in timediff hast du immer den zuletzt gemessenen Differenzwert. Und der
stimmt auch dann, wenn die Messung 'über den unsigned int' drber geht
und der Timer wieder bei 0 angefangen hat.
unsigned int mässig gerechnet ergibt
1 - 65534
nämlich 3. Und genau das ist die Anzahl der Schritte zwischen den
Zählerwerten von 65534 bis zur 1
ohh ja stimmst
ok, aber um den überlauf muss ich mich dennoch kümmern, da ich sonst
ggf. komische messwerte bekomme :P, aber das ist nicht so schlimm, ich
kann einfach gegen alles was <500rpm ist filtern, das geht ja auch
extern ohne weiteres
sooo
es geht weiter… ICP funktioniert nun :) und alles andere abgesehen von
der Bordspannung auch
als Current Sensor kommt nun ein Allegro AC709 zum Einsatz, der sich bei
meinen Versuchen als beste und stabilste Lösung herauskristalisiert hat.
5minuten bei 35A waren kein problem und 1sek bei 100A hat er auch
überlebt zur sicherheit bekommt er aber noch einen kleinen metallenen
Heatspreader verpasst.
Einzig U8Glib macht mir noch etwas zu schaffen, da all die Fonts total
abartig aussehen… da muss ich wohl noch etwas alternatives machen.
es geht nun so langsam ans PCB -.- erstmal habe ich mich voesichtig um
die Spannungsversorgung gekümmert, wobei ich nicht weiß, ob die 250µF
Elko nicht etwas übertrieben sind
http://www.flickr.com/photos/doommeer/8289738208/in/photostream
das 74HC4050 wird sicher noch anders beschaltet… aber das hat Zeit :)