Ich bin gerade dabei eine CDI Zündanlage zu entwickel die für 1 Zylinder
2 und 4 Takt Motoren geeignet ist.
Die Zündelektronik besteht aus einem Atmega8 der von einem
Hallsensor(latch) das signal bekommt (dies könnte man auch für
Unterbrecher konfigurieren).
Auf dem Atmega erfolg die Drehzahlmessung und dann die Zündzeitpunk
errechnung.
Der Zündzeitpunkt darf Maximal +-50° von OT betragen. Wobei ab 19000rpm
nur noch Maximal 45° vor OT da sonst die Berechnung nicht mehr im
Zeitfenster liegt.
Der geber Impuls muss dabei 60° vor OT entstehen mit einer steigenden
Flanke. Und auf OT ein zweiter Impuls mit einer Fallenden flanke. So
wird gewärleistet. Dass der Zündfunke beim starten des Motors auf OT
fällt.
Es kann im betrieb zwischen 3 unterschiedlichen Zündkurven gewählt
werden.
Die neue Kurve wird innerhalb einer Umdrehung geladen.
Maximal Drehzahl ist mit 20000rpm für eigentlich alle halbwegs normalen
Motoren ausreichend.
Zu dem System gehört eine Software die ich in C# geschrieben habe.
Mit ihr können Zündkurven auf dem PC gespeichert und geladen werden.
Zu dem werden die Kurven Grafisch in einem Diagramm angezeigt.
Es können Kurven zur Zeit Linear Interpoliert werden. Später folg noch
eine Kubische Spline Interpolation.
Mit hilfe eines einfachen RS232 Programmer oder später per USB werden
die Daten auf den Atmega8 geschrieben. Wobei ein von mit entwickeltes
Komunikations Protokoll verwendet wird.
Es wird nicht der Atmega neu programmiert!
Einganz wichtiger Punkt ist die Veränderung der Aktiven-Kurve wärend des
Betriebes.
Also wenn der Motor läuft lässt sich in die Zündkurve eingreifen und
Optimieren.
Die erzeugung des Zündfunkens folgender Maßen ab.
Die Grundplatte(Lichtmaschien) liefert eine 300v wechsel Spannung (bei
Motorrädern und Krads so üblich)
dies wird gleichgerichtet und in einem "WIMA MKP10" gespeichert.
Der Atmega ermittelt den Zündzeitpunkt und schaltet über einen "MOC3032"
einen "TIC246M" (Wechselspannungs Tick).
Der Kondensator bildet dann einen Schwingkreis mit der Zündspule. (CDI)
Mit der richtigen Elektronik könnte man auch eine TCI Zündung
realisieren.
Mein Problem ist die Elektronik.
Ich möchte den Prototypen schon gerne auf eine Geätzteplatine löten.
Allerdings kann ich keine Layouts zeichnen. Eagle habe ich mir mal
angeschaut steige ich aber nicht durch.
Den Schaltplan werde ich die Tage mal von hand zeichnen oder so und dann
Anhängen.
Also wenn jemand interesse hat so was zu machen könnte er sich ja bei
mir melden.
Ich Plane auch eine version für Modellmotoren zb Flugzeuge mit
Kettensägenmotoren oder so was in der richtung.
Und Kritik zwecks Optik von der GUI würde ich micht freuen.
Dies ist immerhin mein erstes Programm für PC.
So ich habe mich mal in Eagle versucht und das ist bis jetzt herraus
gekommen.
Ich hab keine Wert an die Bauteile geschrieben da ich nicht genau weiß
was denn zu empfehlen ist.
Das Projekt macht einen sehr interessanten Eindruck, auch wenn ich kein
Modellbauer oder Krad-Fahrer bin. Wenn ich mehr Zeit hätte, würde ich
rein aus Interesse mitmachen wollen.
Für die Eingabe der Kurven (die vielen Edit-Controls links) würde ich
mir etwas dynamisches einfallen lassen, wie eine Zeile zum Eingeben
neuer Werte und einer Listbox mit den Einträgen und "Editieren",
"Löschen", etc.. im Kontext-Menü.
Im "Verbinden"-Dialog würde ich einen ganz normalen Progress-Bar nehmen
und mir die Mühe machen, den prozentualen Anteil der Übertragung zu
berechnen und anzuzeigen.
Hauptfenster: "interpolieren" statt "Interpolieren"
Im Config-Dialog: "Hinweis" statt "Hinweiß"
Eine Frage zur Schaltung fällt mir ein:
Warum hast Du PD2 (INT0) und PD3 (INT1) verbunden?
Sorry erstmal für die Rechtschreibfehler. Werde dass natürlich sofort
verbessern.
Int0 und Int1 sind zusammen, weil Int0 auf steigende Flanke reagiert und
Int1 auf fallende Flanke.
Wenn der Motor aus ist, ist nur Int1 aktiv und der Interrupt für die
zündung auf OT wird unabhängig der Drehzahl ausgelöst.
Wenn die Drehzahl auf über 250rpm steigt gibt es keine Timer1 Overflows
mehr und Int1 wird deaktiviert ,Int0 aktiviert. Damit bekommt das
Programm dann messbare Werte und kann den ZZP berechnen.
Also Int1 ist auf OT und Int0 60° vor OT.
Die "Edit Controls" also Textboxen lassen sich per Pfeiltasten steuern.
Pfeil-Links,Rechts nächste, vorherige Textbox.
Pfeil-Hoch,Runter Wert +- 0,1°.
Das es nervig ist alle wert einzutragen ist mir klar. Deshalb kann man
ja Interpolieren. Mit 6 werten kann man schon verwendbare Kurven
erzeugen.
Wenn man auf Datei klick kann man dort zwischen
Neu
Öffnen
Speichern
Speichern Unter
wählen.
Bei Neu wird derzeit die ausgewählte kurve gelöscht sofern gespeichert.
Speichern kann man die Kurven im *.zzp format ist aber uncodiert.
Wenn man auf Verbinden drückt sendet die Zündanlage ihren Namen in
diesem Fall "MM" und die Version der Software "V 1.0.0".
Zu dem wird gesendet welches die Aktive-Zündkurve ist auf der Zündung.
Dies geschieht recht schnell und da fand ich eine Marquee Progressbar
schöner. Hinter dem Wort Verbinde ist ein Punkt zu sehen dieser wird bis
4 Punkte aufgebaut und beginnt dann wieder von vorne. Dies geschieht
immer dann wenn Daten gesendet oder empfangen werden.
Wenn man die Kurven liest oder schreibt gibt es eine Progressbar die den
tatsächlichen Vortschritt anzeigt.
Interessantes Thema. Wollte ich auch mal machen, habe aber keine zeit
zum Programmieren...
Einige Anmerkungen zum Schaltplan:
- D1..4 ist ein 400V 1A Typ. Das könnte knapp werden.
Ist zu der "300v wechsel Spannung" die Frequenz und der Strom bekannt?
- Jeder VCC Pin des AVR brauch einen 100nF(!)
- AVCC solltest du auch Anschließen (wie VCC mit 100nF)
- GND an AVR Pin 21 fehlt
- IC2 fehlt am Eingang 100nF
Wo kommt die Spannung von Pad 6/7 her?
- Wie gross soll C3 sein?
- Bei T1 währen 180 Ohm am Gate empfehlenswert
- Ein Max232 für die RS232? oder gleich USB?
- Status Led?
- Eingänge zum Umschalten der Kurven?
Generell vermisse ich Bauteile zum Schutz der Schaltung.
Eine Drehzahlbegrenzung hast du vorgesehen?
> Ich Plane auch eine version für Modellmotoren zb Flugzeuge
Hatte auch schon soetwas ähnliches mal gehabt, allerdings ganz brutal in
C geschrieben unter Windows und der dazugehörigen API.
Habs aber wieder verworfen, da ich feststellen musste, dass die
elektronische Zündung für Glühzündermotoren aus dem Modellbau eigentlich
ziemlich überflüssig bis hin zu sinnlos war, da diese nur noch mit
Normalbenzin funktionierten und des öffteren überhitzten.
So ein Programm in Verbindung mit Zündkurven würden erst dann richtig
Spaß machen, wenn man auch noch elektronische Miniatureinspritzdüsen
hätte, mit denen man Vor-, Haupt-, Nach- und Mehrfacheinspritzungen
realisieren könnte, erst dann würde das Ganze im wahrsten Sinne
Turbo-Spaß machen.
Also die Hinweise über die schaltung werde ich mal einbeziehen.
Aber ganz ehrlich hmm Drehzahl begrenzung? Hast du schon mal versucht
einen Motor mit ZZP 45° nach OT zum laufen zubekommen? Mehr als Standgas
wird da nicht mehr drin sein.
Pad6/7 kommt vom Boardnetz/Lipo also ca 10-14V.
Die Wechselspannung ist von Modell zu Modell unterschiedlich.
Angenommen die Schungmasse hat 6 Festmagneten und eine HS Spule.
Dann ändert sich das Potential 6 mal pro umdrehung.
Bei unserem test Motor allerdings nur 2 mal.
10000rpm/60s * 2 = 333Hz
Schneller wird unser Motor nicht.
Aber bei Maximal Drehzahl
20000rpm/60s * 6 = 2000Hz
Also es müssten schon recht schnelle Dioden sein.
Ganz universell kann man es eh nicht machen da es auch Drehstrom
Grundplatten gibt. Es müssten als eh verschiedene Platinen entwickelt
werden.
Ich möchte aber erst mal nur das eine System zum laufen bringen und dann
schauen.
Es gibt solche Systeme schon die liegen im Preis segment zwischen
300-1000€.
Sind dann aber Komplettlösungen.
So ich habe mir überlegt man könnte einen Zündkurven-Wahlschalter
einbauen.
Dazu müsste man nur zwei Pins abfragen welcher auf Gnd ist, wenn keiner
dann wird die Kurve1 genommen.
Zu dem würde ich der Software eine Funktione verpassen mit der man die
Abfrage der Pins abschalten kann.
Wir die Zündung immer per UART umschalten werden. (Über einen Zweiten
Atmega8 im Multicokpit mit RFM12 modul. Also per funk vom Notebook aus)
Den Drehzahlbegrenzer über die Zündkurvelaufen zulassen ist viel
angenehmer als das mitmal der Zündfunke ausbleibt und unverbranter
Kraftstoff in die Abgasanlage gelangt.
Ja bei Glühzündern ist der Aufwand wohl zugroß. Aber für 1:5 Bigscale
Autos und Flugzeuge mit mehr als 30ccm lohnt es sich wieder.
Wie ich anfangs schon geschrieben habe Programmiere ich den EEPROM
gerade per MAX232. Da muss ich aber immer eine extra Stromquelle mit
rumschleppen.
Ich will jetzt so schnell wie möglich einen USB Programmer mit hilfe
eines FT232R realisieren.
Allerdings habe ich mit son einem Chip noch nicht gearbeitet. Mal
schauen was draus wird.
Der FT232R ist ziemlich Simpel zu beschalten.
Im Datenblatt gibt es genügend Beispiele.
Wegen der Spannungsversorgung lies mal:
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23
Hast du den Hochspannungsteil schon mal getestet?
Ich habe da bedenken, dass T1 nicht mehr sperrt.
Als Quarz empfehle ich einen mit möglichst kleiner Bauform.
>Aber ganz ehrlich hmm Drehzahl begrenzung? Hast du schon mal versucht>einen Motor mit ZZP 45° nach OT zum laufen zubekommen? Mehr als Standgas>wird da nicht mehr drin sein.
Dachte das sei so leichter einzustellen. Und nein, mit Motoren kenne ich
mich nicht aus.
So ich habe mir ein paar Gedanken gemacht und möchte die Zündanlage doch
universeller gestalten.
Dazu brauche ich aber eine Schaltung die ein Signal aufarbeitet.
Ich habe schon etwas geschaut und denke das eine Schmidttrigger mit
einem Optokoppler verwendet werden könnte.
Aber ich frage lieber die Elektroprofies wie sie das signal aus dem
Anhang verarbeiten würden.
Das Signal würde von einem Pickup kommen.
Zudem soll von der Zündung zwischen Hall/Unterbrecher und Pickup
umgeschaltet werden können.
Um Sicherheit rein zubringen das ganze mit Optokoplern getrennt und mit
einem Mosfet umschalt bar. Denke so sollte es gehen.
Habe mal meine Ideen in den Schaltplan einfließen lassen. Leider habe
ich keine ahnung was für einen Trigger/Oamp ich verwenden muss!
Ich Hoffe, dass hier auch Leute reinschauen die sich Elektronik
auskenne.
Mal dazu eine ganz andere Frage. Wieviele schreib Zyklen halten die
EEPROMS der Atmegas aus? Fangen die wirklich nach rund 100000 zyklen an
Fehler zu erzeugen?
Gratulation das du es soweit hin bekommen hast. Aber ich muss auch etwas
negatives anmerken: Ohne einen Bezug zur Last wird es sich nicht gut
fahren lassen. Hatte auch mal nen Tuner an meinem Wagen (Zylinderkopf,
Nockenwellen Verdichtung...) und dann wurde die Unterdruckverstellung
des Verteilers dicht gemacht. Die Zündung reagiert also gar nicht mehr
auf eine geänderte Last das Gemisch aber sehr stark. Das Fahrgefühl war
ernüchtern. Am einfachsten das Analoge Signal 0-5V eines
Luftmengen/massenmessers oder Drucksensors auswerten und ein 3D Kennfeld
erstellen. Habe dann auf eigene Faust den Verteiler bearbeiten um die
Unterdruckverstellung angepasst (Endanschlag) und bei der
Fliehkraftverstellung andere Federn verbaut um das Ding besser
abzustimmen.
Zum Pickup:
LM1815 wurde genau dafür gemacht.
Oder den Pickup auf 5V/2 hängen und dann mit 2 OPs auf
>4V und <1V prüfen. Den Eingang mit Dioden und Widerständen
entsprechend schützen. Bei passender Dimensionierung kannst du
an diesen Eingang alle Sensortypen anschließen.
Die 2 Ausgänge der OPs führst du dann getrennt auf INT0/1.
Wenn du zwischen verschiedenen Eingängen umschalten willst
mach das doch mit 2 4081 und 3 Ausgängen am AVR.
>Um Sicherheit rein zubringen das ganze mit Optokoplern getrennt und mit>einem Mosfet umschalt bar. Denke so sollte es gehen.
Schon mal aufgebaut und getestet?
Welche Sicherheit soll das bringen?
Zumal die Eingänge zum umschalten der kurve überhaupt nicht
geschützt sind und auch keinen brauchbaren Pullup haben.
Da du noch genügen Pins am AVR frei hast verstehe ich die Doppelbelegung
der Ports für die LEDs nicht. Die am UART wirst du sowiso kaum leuchten
sehen und die LED1 kannst du auch direkt über den AVR Schalten.
Für was soll D9 gut sein?
Atmel garantiert 100.000 Zyklen für die eeproms. Darüber hinaus kann es
Funktionieren muss aber nicht. Da du eine Motorsteuerung baust solltest
du unter den 100.000 bleiben. Must du dir halt ausrechnen ob es reicht.
Wenn nicht, dann externes Sram / Fram oder eine passende Software
Lösung.
Und vergiss nicht den BownOut Detektor im AVR einzuschalten.
Der VR-Sensor gibt halt bei niedrigen Drehzahlen ein schwaches Signal
aus, deswegen würde ich auf einen Hallgeber setzen der liefert immer ein
sauberes Signal.
Bei niedrigen Drehzahlen wird nur der starke Impuls ausgewertet, den die
größere Aussparung liefert
http://www.picoauto.com/waveforms/images/zoom/tdcaudis2.gif und diese
sitzt dann meist so auf 10-15° vor OT so das das STG beim starten
(Anlasserdrehzahl) erstmals einfach blind hierauf zündet. Es wird also
nur die Schließzeit für diesen festen ZZP berechnet.
Das Kennfeld kann man ja aus dem Flash ins SRAM schreiben.
in Assembler legt man dazu einfach eine Tabelle im .dseg ab einfach vor
dem eigentlichen Programm dann kann man sehr viel einfacher daran
rumspielen ohne ständig das EEPROM zu nutzen.
Oder an programmiert es so das vor dem Programm das EEPROM im SRAm
gespiegelt wird und beim beenden die neuen Daten wieder ins EEPROM
zurückgeschrieben werden, dann hält das EEPROM schon ein Autoleben lang.
Nur als Hinweis: Der Brückengleichrichter aus D5...8 ist verpolt. Und
bei D9 sieht es so aus, als ob die kurzgeschlossen wäre (grüne Linie
durch D9).
Peter
Erstmal Danke an den Moderator der die "Produktiven" Beiträge gelöscht
hat.
Das mit dem Gleichrichter ist mir erst garnicht aufgefallen. Vielen dank
für den Hinweis. Und durch D9 geht tatsächlich noch der Leiter durch.
Soll so natürlich auch nicht sein.
Also die sache mit dem EEPROM ist so, ich habe da 240Byte für die
Zündkurven definiert. und 80Byte im Ram. Wenn der Kontroller
eingeschaltet wird läd er die richtige Kurve in den Ram und Arbeitet
damit.
Die Idee den gesamten EEPROM zu Kopieren finde ich auch richtig gut.
Dann kann man soviele Kurven wie man will laden und ausprobieren ohne
den EEPROM zu benutzen. Beim umschalten der Zündkurve speicher ich auch
gerade jedes mal im EEPROM die aktive Kurve ab.
Das werde ich so umbauen, dass der Controller einen Pin hin und wieder
mal abfrag ob die Betriebsspannung noch anliegt und dann nur beim
Abschalten die nummer der aktiven Kurve speichert, falls es eine andere
ist.
Also muss ein etwas größere Kondensator her. Allerdings muss auch nur
ein Byte gesichert werden, dass sollte nicht so lange dauern.
Zu den VR und Hallsensoren.
Ich werde die Zündanlage immer mit einem Hallsensor betreiben und
versuchsweiße mit original Unterbrecher.
Aber man kann nicht davon ausgehen, dass sich jeder die Arbeit macht und
auf Hallsensor umbaut. Deshalb möchte ich auch VR(Pickups) unterstützen.
Das die aber eine so hohe Spannung liefern wusste ich garnicht.
Aber es gibt da auch Unterschiede zwischen Auto und Roller,
beim Auto hat man ja eine Zahnscheibe mit 60 -1 Zähnen oder änliches.
Beim Roller hat man nur einen langen Zahn. Deshalb gibt es pro Umdrehung
auch nur zwei Signale.
Ich werde jetzt mal bischen über Oamps lesen.
Ja auch von mir Danke an den Moderator, habe beide Beiträge auch selber
gemeldet, das klappt bisher immer sehr gut.
Nun zum VR-Sensor, ja viele Schrecken vom Umbau ab. Die hohe Spannung
die du ansprichst bzw. auf dem Diagramm zu sehen ist tritt ja nur bei
der großen Lücke des Zahnrades auf, die Impulse dazwischen sind ja
eigentlich sehr schwach um die 100mV und bei niedriger Drehzahl
entsprechend niedriger wodurch dieses schwache Signal halt auch
störanfällig ist.
Mit 1 kByte SRAM des ATMega8 sollte man schon weit kommen. Das
Grundkennfeld 16x16=256 evtl. mal 2 umschalten zu können, dann einige
Kennlinien für Motortemp, Ansauglufttemp, einige Variablem im SRAM für
ADC Werte Zwischenergebnisse...da man ja nicht soviele Register zur
Verfügung hat... Mit mehr SRAM könnte man man halt die Kennfelder schon
vorher im PC interpolieren und dann mit z.b. 64x64 = 4096 Bytes ablegen
so spart man sich einige Berechnungen im µC.
wenn du wirklich etwas mit leistung erreichen willst nimm dir gleich
einen größeren controller ..- vielleicht sogar mit CAN Bus anbindung...
AT90CAN128 oder sogar einen XMega.
aber der AT90CAN sollte ausreichen. Hab mcih selber shcon mit dem Thema
beschäftigt und kann dir das nur empfehlen.
Was genau hast du dann damit vor?
Immerhin gibt es in dieser Richtung (Motorsteuergeräte)schon einige Open
Source Projekte.
Danke für die Tips.
Aber eins verwechseln hier viele.
Auto vs Krad.
Meine Zündanlage soll nur für zweiräder sein und selbst dort nicht für
ne Yamaha r1.
Sondern nur Krads aus dem vorigen Jahrhundert.
Und ein Motorrad mit canbus kenne ich nicht. Vielleicht bei BMW oder so.
Bei den Mopped Motoren ist das so,
entweder man stellt den Zündzeitpunkt original ein dann springt das
Moppet gut an. Aber der Motor dreht nur bis ca 6-7000.
Wenn man jetzt den Unterbrecher etwas früher einstellt. Dann dreht der
Motor gut 8-9000 aber man bekommt ihn meist nur durch Schieben an.
Und ich möchte halt einfach nen sauberes startverhalten und eine hohe
Drehzahl vereinen. und dies geht nur mit ZZP verschiebung.
Ich möchte nicht die Leistung oder die Effiziens der Verbrennung
verbessern sondern lediglich das Drehzahlband erweitern.
Klar wären sachen wie Druck, Motor-Temperatur, Abgaswerte,
Drosselklappen öffnung, Luftmasse und Kraftsorten-erkennung ideal um
noch mehr Leistung aus einem Motor zuholen.
ABER das ist nicht mein Ziel.
Ich schreibe jetzt erst mal die EEPROM geschichte um.
Hyronimus Herzberg schrieb:> Und ich möchte halt einfach nen sauberes startverhalten und eine hohe> Drehzahl vereinen.
Deshalb wird im Normalfall im Start (unterhalb Leerlauf) der ZZP nach
spät verstellt und bei höheren Drehzahlen um den Zündverzug nach früh.
Gruß Anja
Hallo Hyronimus
Ohne Zweifel ein Hochinteressantes Projekt.
Ich konstruiere zur Zeit selbst eine Zündanlage für mein Kartmotor ( V2
Motor 630 ccm nichts hochtechnisches).
Eventuell können wir uns ja mal austauschen.
Allerdings muss ich sagen, dass ich einen wesentlich potenteren µC
benutze (Stm32f103rc).
Ich muss zugeben ich bin etwas faul, daher hab ich mir nicht den
kompletten Post durchgelesen.
Zuerst einmal das ganze auf eine fertig geäzte Platine aufzubauen ist
eine ganz schlechte Idee.
Vor allem bei der Aufnahme des OTs entstehen hier Probleme.
Ich benutze hierzu ein Optokoppler in Verbindung mit einem Hallgeber.
In einer erweiterten Version wird zusätzlich noch die
Drosselklappenstellung erfasst.
Bei nennen wir sie mal Holzmotoren ist diese Drosselklappenabhängige
Regelung meiner Meinung nach nicht notwendig, da die Erhöhung der
Drehzahl innerhalb einer Umdrehung nicht gravierend ist.
Von der kubischen Spline Interpolation kann ich dir bei einem Atmega8
eigentlich nur abraten. Selbst die lineare Interpolation dürfte
Rechenzeitkritisch sein wenn du deine Zündzeitpunkte in echtzeit ändern
möchtest, da der Atmega doch soviel ich weiß keinen Hardware Multiplier
und Divisor besitzt oder ?
Deine Idee mit drei verschiedenen Grundkennlinien ist schon sehr gut.
Ich würde es im Programm aber in einem seperaten zweiten Fenster zur
Bearbeitung öffnen und mit einem globalen ZZP arbeiten, der mit dem
drehzahlabhängigen Wert verrechnet wird.
Ich arbeite auch mit einem Triggerrad mit 32 Zähnen um zusätzlich Werte
zu erhalten.
mfg Jan
Achja zu der Sache mit dem Starten.
Ich arbeite mit 2 Modis. Der Startmodus setzt den ZZP direkt auf OT und
gezündet wird auch erst ab einer bestimmten erfassten Drehzahl um ein
zurückschlagen des Motors zu verhindern.
Gleichzeitig ist eine Regelung im Leerlaufbereich noch nicht unbedingt
wichtig. Zusätzlich ist es sinnvoll hier mit festen Werten zu arbeiten,
denn du brauchst einen schnell hochzählenden Timer um auch im hohen
Drehzahlbereich drehzahländerungen noch mit einer guten Auflösung zu
erfassen ( Stichwort Timervariable läuft über).
mfg Jan
Hey Jan finde ich cool das hier jemand etwas ähnliches macht.
Kurz zu der Interpolation.
Der Atmega fürt keine interpolation durch. Dies wäre viel zu aufwändig
für den kleinen Controller.
Das macht nur die Software um die Eingabe zu erleichtern.
Die Software habe ich erstmal komplet übern haufengeschmissen.
Mache eine neue, die so aufgebaut ist wie der WindowsExplorer.
Schade das du nicht alles gelesen hast. Aber ich beschreibe kurz nochmal
meine Zündsystem.
Also ich nehme als beispiel einen Motor mit Unterbrecher Zündung.
Original öffnet der Unterbrecher 10° vor OT und schließt sagen wir mal
30° nach OT.
Nun wird der Unterbrecher so eingestellt, dass er 40-50° vor OT öffnet
und 5° nach OT schließt.
Nun schließt man "mein Zündsystem" an. Startet die Software auf dem Pc
und lässt dort die Zündwinkel erkennung laufen. Nun muss man den Motor
mehrmals durchdrehen(vieleicht kann der Motor auch im standgas laufen,
muss ich erst testen).
Das System ermittelt jetzt einen wert von 52°(imaginär).
Nun stellt man im Korrekturwinkel -5° ein, da der Geber erst 5° nach OT
schließt(diesen Wert muss man selber so gut wie möglich ermitteln. Ich
würde es über den Kreisabschnitt auf dem Rotor erechnen).
Demnach öffnet der Geber 47° vor OT. Diesen Bezugspunkt verwendet die
Software um daraus den richtigen Winkel zuerrechnen anhand der Werte die
man in die Software eingibt.
Die daraus entstehenden Werte werden für den Mikrocontroller noch
verschönert.
Also der Mikrocontroller erkennt das Öffnen und das Schließen des
Unterbrechers.
Einen anderen Mikrocontroller würde ich von Atmel nur nehmen, wenn die
eine bedeutend höhere Taktrate haben. Habe mich aber noch nicht mit den
Xmegas beschäftigt. Mal Schauen.
Ich würde mich natürlich über eine Austausch freuen. Kann jede hilfe
gebrauchen. Und helfe natürlich auch wo ich kann.
Zur aufnahem des Pickup signals habe ich folgendes gefunden
[[Beitrag "Re: Induktivgeber- / Pickup-Signalaufbereitung macht Schwierigkeiten"]]
denke das werde ich noch durch ein RSFlipFlop jagen und dann habe ich
mein Hallsensor änliches Signal.
Werde das mal mit jemande besprechen der mich hier aus dem Forum
angeschrieben hat.
Werde im laufe des Tages Antworten.
Weil Zweifel an der Rechenleistung aufgekommen sind mal eine
Überschlagsrechnung:
Gehen wir mal von 50° vor OT aus und 10° vor OT als frühesten Winkel:
Bei 20.000UPM und 16MHz Schaft der AVR in den 40° 5333 Zyklen.
Für Realwerte könnte da knapp werden, aber eine lineare
Interpolation mit Festkomma Arithmetik ist da 10 mal drin.
Zumal die Mega Serie über einen HW-Multiplier verfügt.
Hytonimus H. schrieb:> Hey Jan finde ich cool das hier jemand etwas ähnliches macht.>> Kurz zu der Interpolation.> Der Atmega fürt keine interpolation durch. Dies wäre viel zu aufwändig> für den kleinen Controller.> Das macht nur die Software um die Eingabe zu erleichtern.>
Tim (Gast) sagte das die Mega Serie einen Hardware Multiplier hat.
Wusste ich gar nicht. Hab nur Attiny benutzt. Dann könnte es sogar
möglich sein müsste man mal ausprobieren.
> Die Software habe ich erstmal komplet übern haufengeschmissen.> Mache eine neue, die so aufgebaut ist wie der WindowsExplorer.
Habe mal ein Bild von meinem Interface angehängt erstellt wurde es mit
QT.
Ist aber noch eine alpha Version.
> Schade das du nicht alles gelesen hast. Aber ich beschreibe kurz nochmal> meine Zündsystem.>> Also ich nehme als beispiel einen Motor mit Unterbrecher Zündung.> Original öffnet der Unterbrecher 10° vor OT und schließt sagen wir mal> 30° nach OT.> Nun wird der Unterbrecher so eingestellt, dass er 40-50° vor OT öffnet> und 5° nach OT schließt.> Nun schließt man "mein Zündsystem" an. Startet die Software auf dem Pc> und lässt dort die Zündwinkel erkennung laufen. Nun muss man den Motor> mehrmals durchdrehen(vieleicht kann der Motor auch im standgas laufen,> muss ich erst testen).> Das System ermittelt jetzt einen wert von 52°(imaginär).>> Nun stellt man im Korrekturwinkel -5° ein, da der Geber erst 5° nach OT> schließt(diesen Wert muss man selber so gut wie möglich ermitteln. Ich> würde es über den Kreisabschnitt auf dem Rotor erechnen).>> Demnach öffnet der Geber 47° vor OT. Diesen Bezugspunkt verwendet die> Software um daraus den richtigen Winkel zuerrechnen anhand der Werte die> man in die Software eingibt.>> Die daraus entstehenden Werte werden für den Mikrocontroller noch> verschönert.>> Also der Mikrocontroller erkennt das Öffnen und das Schließen des> Unterbrechers.>> Einen anderen Mikrocontroller würde ich von Atmel nur nehmen, wenn die> eine bedeutend höhere Taktrate haben. Habe mich aber noch nicht mit den> Xmegas beschäftigt. Mal Schauen.>
Du möchtest deine Schaltung bis 20000 rpm betreiben und benutzt einen
Unterbrecherkontakt ?
Sinnvoller fände ich eine Zündung mit einem OT-Signal ( Hallgeber wäre
am einfachsten)
Denn:
Es ist einfach dem µc zu sagen zünd bei prestart einfach wenn du ein OT
Signal bekommst. Aber wie stellst du sicher das bei der doch sehr
unterschiedlichen Drehzahl beim Starten dein Timer exakt so eingestellt
ist, dass du OT erwischst.
Ich könnte mir vorstellen, dass die Erkennung des Signals 5° nach OT
schwierig ist . Vor allem wenn man auf einem Motorrad per kickstarter
startet.
Mit meinem Triggerrad würde es z.b. nicht funktionieren ein Motorrad mit
einem Kickstarter zu starten, ich benutze es aber aus anderen Gründen (
Kompressionserkennung, wasted Spark u.s.w)
mfg Jan
Ich möchte die Zündanlage verkaufen. Und den Leuten die möglichkeit
geben, entwerde einen Unterbrecher, Pickup oder Hallsensor verwenden zu
können.
Ich werde immer Hallsensoren verwenden.
Solltest dann schon mal ein paar beiträge lesen, habe auch eine lust
alles mehrfach zuschreiben.
Also dein Interface finde ich sehr interessant.
Allerdings ist die ja um alle relevanten Motordaten zuerfassen.
Ich mache ja nur eine Software, mit der man möglichst einfach Zündkurven
erstellen kann.
Am Wochenende werde ich wohl meinen Prototypen testen können.
Wenn du so etwas verkaufen willst für KFZ brauchst du E13 Zulassungen,
musst das Elektronikgesetz beachten (WEEE) und und und
Wenn irgendetwas abfackelt aus deiner Schaltung trägst du die
Verantwortung. Darüber solltest du dich mal genauer informieren, da gibt
es einiges zu stemmen!
Zudem behaupte ich jetzt mal, so wie du schreibst, hast du nicht
wirklich die Ahnung von der Hardware. Ein "Zusammengeschustertes
Produkt" dann zu verkaufen, halte ich für fragwürdig.
Keine Kritik, nur mal ein Denkanstoß!
ich muss mal meinen Bestand durchforsten eine Interpolation in ASM hatte
ich mal gemacht, braucht vielleicht geschätzte 200 Takte oder weniger.
Gemacht habe ich es in etwa so, angenommene Drehzahl=1200 U/Min und
Last=0% also Leerlauf
aus dem Kennfeld ergeben sich nun die Werte 10 und 12° vor OT als ZZP
und die beiden Drehzahlpunkte von 1000 und 1500
Rechenweg
1500 - 1000 =500
12 - 10 = 2
2 / 500 = 0,8
10 + 0,8 = 10,8
Das gleiche müsste man halt auch mit der Last machen. Aber wie gesagt
man könnte das Kennfeld auch am PC z.B. Excel interpolieren und dann so
in den Flash oder EEPROM ablegen, so spart man sich die Berechnung im µC
nur die Kennfelder werden halt sehr groß, aber ein ATMega32 hat ja genug
Flash vorhanden um auch sehr große Kennfelder zu speichern.
So ich habe mal einen Prototypen für die Modellbau Zündanlage zusammen
gelötet.
Allerdings habe ich ein Problem mit den Transistoren für den Zerhacker.
also es sind
zwei BD131 NPN Transistoren.
Die Basis ist mit 100k an GNG und mit 1k an dem µC angeschlossen.
Wenn der µC jetzt den Pin auf VCC zieht schalten die Transistoren nicht
durch.
Woran kann das liegen.
Habe vorher auf einem Steckbrett getestet und mit der kombi 100k/1k hat
es wunderbar geklappt.
Kann es sein, dass die Spannung am Collector mit 12V zugroß ist?
Da ich in die Basis nur mit 5V reingehe
Was ist der geringeste wiederstand, dem ich den µC zutrauen kann.
(beim schalten des BD131 entsteht fast ein kurzschluss (20wdg 0,75mm²
Draht))
Also auch mit nur 1k schalten die Transistoren nicht richtig durch.
Lediglich 0,4A fließen.
Ist zwar schon was aber nicht genug. Sollten schon die 5A des netzteil
geschaltet werden.
Hmm mir ist gerade der Linearregler durchgebrannt. Der mag es nicht wenn
er von der falschen seite 10V bekommt.
Naja hab ja noch nen paar davon.
Ich schätze aber, dass ich wohl Transistoren vor schalten muss. werde
ich dann wohl mal probieren.
Oder wären dort Mosfets besser geeignet?
und das hilft die Transistoren zu schalten oder nur um den Regler
zuschützen?
Ich würde ja jetzt auf zweites tippen.
Im normal fall bekommt der Regler aber die 12V nicht ab.
Ich habe zum Testen die Basis eines Transistor an 12V gelegt und dann
ist der Strom durch den 100k Widerstand in den Regler geflossen.
Passiert normal halt nicht.
Quelle Wikipedia: In einigen Anwendungen empfiehlt sich eine
Verpolungsschutzdiode vom Regler-Ausgang zum Eingang. Von Bedeutung ist
dieser Schaltungszusatz bei großem C4 und wenn gleichzeitig mehrere
Lasten von der ungeregelten Eingangsspannung abzweigen. Dann kann es
passieren, dass beim Ausschalten C1 schneller als C4 entladen wird und
die Ausgangsspannung höher als die Eingangsspannung ist (verpolter
Regler). Eine Schutzdiode bewahrt den Regler dann vor der Zerstörung.
Eine schnelle Diode (z. B. Schottkydiode) ist hier besonders geeignet,
die Sperrspannung muss mindestens so hoch wie die maximale Spannung der
Speisung betragen.
Ein hoher positiver Impuls auf der Ausgangsseite kann das gleiche
bewirken.
So habe eine PR1002L Diode gefunden und diese eingelötet. Denke die
sollte schnell genug sein.
Habe auch zwei Mosfets die ich jetzt statt der Transistoren verwenden
will.
Kann nur leider nichts darüber im Inet finden.
Auf den dingern steht
S150
77
wobei die 77 auch ZZ oder 33 sein könnte lässt sich nicht so recht
erkennen.
Das Internet spuckt einfach nichts dazu aus.
Zudem ist in zwei kleinen prägestempel (wirklich sehr klein) E und BD
geprägt.
Hallo, habe den Autor auch schon darum gebeten, irgendwie gehts hier
nicht weiter, bzw. ich weis nicht wie ich den Hyronimus direkt
kontaktieren kann.
Grüße
Rigi Taler schrieb:> Der vollprogrammierbaren Zuendanlage sind wahrscheinlich aus duftenden> Ohm'schen Gruenden die Bytes empoert weggelaufen.Keine Zuendung mehr.
was heisst das jetzt ?? Gibts keine Infos mehr vom Hyronimus ??
wirklich Schade, hätte grosses Interesse gehabt
Hallo Nyemi
Du scheinst es ja geschafft zu haben?
Hast Du evtl mal einen Schaltplan?
Versuche gerade eine alte Kawa mit ihrer beknakten Zündung wieder zum
Leben zu erwecken.
Merci da Christoph
Hallo, alle miteinander.
Neue Software 12f683, vier Zündverzug Kurve.
Mein Freund getestet: "Ich bin die Firmware in Proteus getestet Verhält
sich wie erwartet. 0 ... 5 Hz (0 ... 300 Umdrehungen pro Minute) - kein
Funke, dann 6 ... 15 Hz (360 ... 900 Umdrehungen pro Minute ) - 3
Funkens und dann höher als 16 Hz (960 Umdrehungen pro Minute), nur einen
Funken bis zu 200 Hz (12000 rpm) und höher als 210 Hz (12600 rpm) ist
kein Funken.
Ich habe versucht, die Spannung auf dem dritten Stift 12F683 und Kurven
eindeutig nur in der Impulsposition des Ausgangs relativ zum Eingang
weil merkliche Veränderung im angegebenen Spannungsbereich geschaltet zu
ändern. "
Bitte testen Sie Ihre gut. Wenn Sie irgendwelche Ideen
Programmänderungen haben.
Danke im Voraus.
Link:www.rcgroups.com/forums/showatt.php?attachmentid=9236676&d=14705537
76
You tube Link:https://youtu.be/u0YNx6cCv60nyemi schrieb:>
Hallo Community,
ich wollte mir auch mal eine elektronische Zündung mit Winkelverstellung
basteln, jetzt bin ich auf diese Seite gestossen. Ich finde das Projekt
ja richtig cool und wollte es schon nachbauen, aber für den Nachbau
fehlt mir im Moment der Sourcecode bzw, das Hex File für den Controller
und die Exe zum parametrieren der Zündung.
Wie komm ich denn an die Daten oder hat die einer?
VG Christoph
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang