Beiträge von psycho_fe

    Hallo, ich weiß, dass sich lang nichts mehr getan hat, aber man hat es nicht vergessen. Zurzeit sieht es so aus, dass ich für mein derzeitiges Projekt nur die Endstufe gebaut habe. Noch funktioniert\'s nicht so richtig, aber man ist auf dem richtigen Weg. Wenn ich dann wieder elwas Luft habe, wird zwischen die Lichtschranke (die natürlich startk auf Frühzündung gestellt werden muss) und der Zündendstufe oben beschrieben Konstellation aus µControllern geschaltet.


    Fortschritte seit dem letzten Post:


    Meine AVR-Kenntnisse haben sich stark verbessert und das Programm wurde verfeinert. Das Layout und die Beschaltung machen mir noch Kopfzerbrechen, aber das bekommt man schon irgendwie in den Griff.


    Ich versuche das Moped jetzt erstmal so zum laufen zu bringen und werde die Technik dann schrittweise verfeinern, denn was bringt mir die beste Zündung, wenn der Motor, in dem sie Verbaut ist, nur Kinderkrankheiten besitzt. Außerdem habe ich mir noch ein paar Gedanken um die Programmierung der Kurven gemacht. Der Gedanke geht dahin, das eventuell über die IRDA-Schnittstelle des Handys zu realisieren. Das wäre der Traum, aber man weiß ja, wie\'s um Träume bestellt ist...


    MfG Psy

    Schaltpläne gibt\'s noch nicht, aber einige Details werden von Charlie 01 Zeichnung übernommen.
    Vorerst kommt sowieso eine Freiluftverdrahtung zum Einsatz, da ich keine Lust habe, mir immer wieder ein Platine zu ätzen.


    Wenn das Basismodell steht und seinen Dienst zuverlässig verrichtet, dann könnte man auch eine Vermarktung denken. Grob geschützt wäre das Steuerteil dann für 40 bis 50 € erhältlich. Das Programmiergerät den gleichen Preis, da das Display die ganze Geschichte ziemlich teuer macht. Aber mal schauen. Ich denke, das wird dann so\'n wenn 10 Kaufen, baue ich mal 10-Ding werden oder RT bzw. LT zeigen Interessse. Wäre natürlich nicht schlecht. Du bekommst nen Motor mit passendem Chip. Der EEPROM kostet eh nur knapp 2 €, also wäre das für die Tuner auch kein Genickbruch. Die Frage ist nur, wie teuer wird das alles, wenn klein Psy und der LT/RT beide daran verdienen wollen?
    Ich gebe mich ja schon mit 5€ pro Arbeitsstunde zufrieden, aber ich muß auch keine Steuern abführen... oder besser gesagt: Ich werde den Teufel tun, Steuern abzuführen... :)
    Oder Ebay...


    Außerdem steht ja noch die Frage mit den Kennlinien. Der eigene Prüfstand befindet sich ja schon seit einem halben Jahr im Bau, oder besser, meine Stahlrolle ist nach 6 Monaten immer noch nicht da...


    Naja, erstmal fertig werden und dann wird weiter gesehen.




    MfG Psy

    Ich programmiere Assembler. Och Mensch, ich hab jetzt 3 Wochen gebraucht, um in den Atmel rein zu wachsen... :frown:
    Es würde auch mit einem gehen, aber so ist die ganze Geschichte zuverlässiger, schneller und genauer, da sich nie Interrupts überschneiden, bzw. der Berechnungsprozessor µC2 keine Wartepausen wie der µC3 hat und man bzgl. Taktung auch noch einige Einstellungen machen kann, um das System besser zu gestalten. Beispiel:
    Der maximal Verstellbare Winkel liegt bei cirka 45° (ja, ich weiß, dass das zuviel ist... nur Beispiel) das heißt, dass ich den µC1 je nach verwendeter Zündung (Vape 6 Perioden/Umdrehung, PVL eine Periode/Umdrehung)
    Ich habe mir das schon gut überlegt. Der ATMEGA 32 hat nutzbare 2000 byte SRAM, also 2000 Messwerte. Es wird auch nicht der interne EEPROM, sondern ein externer benutzt, der auf einem lösbaren Klemmsockel sitzt, damit auch jeder Newby seine Kennfelder/-linien wechseln kann.


    Zu Beginn wollte ich alles mit dem ATMEGA 32 machen. Folgende Probleme traten auf:
    -Beim Start wurde ein äußerst ungenauer ZZP erzeugt.
    -Die Länge und Modulation der Zündspannung war sehr umständlich und hat den µC ausgebremst.
    -Drehzahlmessung war sehr ungenau. Bis die berechneten Daten verwendet werden konnten, verging immer eine Umdrehung --> Ungenauigkeit bei schnell hochdrehenden Motoren.
    -Die Berechnung des ZZP hat zu lang gedauert --> Grenze bei 14.000 U/Min, da ja der Winkel berechnet wird und nicht eine vorgegeben Zeit gewartet wird, bis der Zündfunke kommen soll --> Sehr weiches Verhalten, da kein \"Treppenmuster\" entsteht. Besonders die Leute aus der Production Racer Szene, wissen jedes halbe Grad vor OT zu schätzen.


    Glaube mir, ich habe mir schon etwas bei dieser umständlichen und 10 € teureren Schaltung gedacht.


    Aber trotzdem danke. Schön, dass es auch noch andere Leute gibt, die sich über sowas Gedanken machen und nicht einfach sagen: \"Geht nich!\"


    MfG Psy

    So, nach einem Monat hier das Update.


    Ich bin mittlerweile auch auf die Atmels umgestiegen und zumindest im AVR Simulator klappt alles wunderbar. Hier der Plan:


    Begriffe:
    µC...Microcontroller
    Int...Interrupt: Bei einem Ereigniss (Timer läuft über, ein Eingang wird auf hi geschaltet,...), läuft ein Programm los


    Die Zündung beinhaltet insgesamt 3 µC.
    1. ATMega8, der die Drehzahl abnimmt.
    Hardware

    Ein Int ist an einen A**log Comparator angeschlossen, der wiederum mit dem Wechselspannungsausgang der Zündung verbunden ist, da die Drehzahl damit sehr schnell und zuverlässig erfasst werden kann, was besonders beim Start Vorteile bringt.
    Der Timer wird extern über 1,00 MHz getaktet.
    Software
    Interrupt-->Timer stoppen-->Wert lo/hi auslesen und im Register speichern-->Timer zurücksetzen-->Timer starten-->Lo und Hi über Prots ausgeben.


    2. ATMEGA32, der die Berechnung durchführt
    Hardware

    16 Leitungen führen zu µC1, 5 zu µC3. Der Timer wird extern mit 2 MHz getaktet
    Software
    Beim Start holt der µC sich alle Werte aus dem EEPROM und schreibt sie in den SRAM. Das erleichtert die Programmierung.
    Sobald ein Interrupt vorliegt, wird der Startwert eines Timers gesetzt und dann gestartet. Sobald der Timer überläuft, kommt es wieder zum Interrupt und es wird ein PIN auf hi geschaltet. Alle Berechnungen werden hinter diesem Interrupt ausgeführt.
    Dieser generiert den Zündfunke. Die 5 Leitungen zu µC3 sind
    Bit 0... Zündfunke auslösen
    Bit 1,2...Dauer des Funkens
    Bit 3,4... generierte Frequenz--> Zündspannung


    3. ATtiny2313, der den Funken auslöst, Dauer und Stärke bestimmt
    Hardware

    5 Leitungen kommen von µC2. Erklärung siehe oben. Ein Ausgang führt zur Zündendstufe.
    Software
    Sobald Bit 0 den Int auslöst, generiert der µC eine hochfrequente Wechselspannung (ca 30 kHz), um den Funken schneller zu entzünden und eine extrem hohe Spannung zu erreichen, um das Gemisch ohne großen Zündversatz zu zünden. Nach dieser Hochfrequenzphase, die cirka 0,2 ms dauern sollte, folgt eine 1 bis 3 ms lange Brennphase mit einer sehr niedrigen Zündfrequenz (ca. 2 kHz), die den Funken noch weiter brennen lässt.


    Aktuell
    - Die Programme sind so gut wie fertig
    - Die Schaltung ist kein Problem
    - WICHTIG: Im Gegensatz zu anderen Ideen ist hier nicht der Zündversatz, sondern der Zündwinkel im EEPROM hinterlegt. Die Berechnung des Versatzes erfolgt im µC2


    Was wäre noch denkbar?
    - Es wäre noch ein Anschluss für Servos möglich (z.B. Auslasssteuerung, Drehzahlmesser)
    - Man kann noch Sensorik (Temperatursensor,etc.) anschließen und über eine Änderung im Programm auch ein Zündkennfeld statt einer Zündkurve integrieren
    - Temperaturreglung durch Wasserpumpe/Lüfter möglich
    - Drehzahlbegrenzer
    - \" Phantom-Kurve\" ... per Knopfdruck wird bei der Berechnung des ZZP ein Unterprogramm gestartet, dass den ZZP weiter auf spät stellt und sich das Gemisch so erst nach OT entzündet. Es solltet dann eine so starke Drosselung auftreten, mit der man selbst große Motoren als 50cm³ tarnen kann...
    - Ein ansteckbares Programmiergerät, mit dem man selbst seine Zündkurven erstellen, bearbeiten kann. Dabei wird nur der EEPROM umprogrammiert beim Neustart des Systems, werden die Daten dann aktualisiert. Ich stelle mir dieses Programmiergerät als einen 100x70x30 mm großen Kasten mit einem 16x4 Zeichen Display (Siehe Avatar von Charly 01) und ein paar Tasten drauf, vor. Es könnte ein eingebautes Batteriefach haben, so dass man die Daten auch noch fix in der Box ändern kann. Zusätzlich sollte es auch mehrerer Zündkurven speichern können. Jo...


    MfG Psy

    SUPER POST!!!! Nach soetwas suche ich schon ewig und bin noch nie fündig geworden.


    Man unterscheidet statische und dynamische Kennlinien (oder Kennfelder). Die statischen Kennlinien werden oft in sogenannten CDI-Zündungen verbaut. Diese sind nur drehzahlabhängig. Das ist eine super Sache bei Alltagsfahrzeugen, da man schon enorme Vorteile in der Leistungsentfaltung hat. Das beste Beispiel in der Simsonszene ist Selettra.
    Bei einer Kennfeldzündung werden noch mehr Werte berücksichtigt. So beispielsweise Temperatur, Last, etc. Man geht diesen Schritt darum, um immer an der Grenze des Machbaren, also an der Klopfgrenze zu arbeiten, an der die maximale Leistung möglich ist.


    Für diejenigen, die einfach noch etwas mehr aus den Motoren heraus holen wollen, ist eine Kennlinie okay. Ein Kennfeld ist dagegen nur etwas für den Nutzer, der noch auf\'s letzte Zehntel arbeitet. Also besonders interessant für den Harzring oder die Viertelmeile. Um das zu realisieren, ist nur eine gehörige Portion Programmieraufwand, zwei A/D (Last, Temperatur) und zwei digitale Eingänge (z.B. Zündunterbrecher beim Schalten) nötig.


    Ein Kennfeld ermittelt man indem man den ZZP immerweiter zuürck stellt, bis es zu klopfen beginnt. Dann stellt man wieder leicht nach vorn und schon hat man den idealen ZZP. Das Problem bei dieser Gradwanderung ist, dass der ZZP abhängig von Gemischzusammensetzung, Kraftstoff, Lufttemperatur, -feuchtigkeit und -druck ist. Um die Sensorik zu reduzieren, wurden darum sogenannte Klopfsensoren entwickelt. Das sind Körperschallmikrofone, die im Fall des Klopfens eine starke Amplitude eines Frequenzbereichs abgibt. Fraglich ist, ob das auch bei dem Einzylinder funktioniert.


    Diese Werte zu finden wird zukünftig, wenn mein Prüfstand fertig ist, kein Problem (mit Ausnahme des Zeitaufwandes) sein. Eine individuelle Abstimmung wäre auf jeden Fall von vorteil, da allein schon ein anderer Kraftstoff ein modifiziertes Kennfeld erfordert.


    MfG Psy

    Hey,


    Super Post. Danke. So habe ich mir das auch vorgestellt. Das Signal für den ZZP bekomme ich von der Elektronik-, bzw. Vape-Zündung. Das Ausgangssignal dann wieder in die Zündspule. welche das wird, weiß ich noch nicht. Schade nur, dass kein Schaltplan abgebildet ist.
    Was jedoch sehr interessant war, das die Schaltung zwischen 3 und 15 A für die Zündspule schalten muß. Ich hätte nie gedacht, dass das soviel ist. Ich glaube, dass bei uns jedoch ein FET besser wäre, da man ja die Zündspule gleich über den hochfrequenten pulsierenden Gleichstrom des PWM-Signals erregt. Da die Flanken sehr steil sind, müsste dadurch eine äußerst hohe Spannung induziert werden.


    MfG Psy

    Moin,


    Das dürfte kein Problem sein, da man die Werte nach oben und unten rundet und einfach interpoliert. Der wohl einfachste Weg, wäre der, wie auch Automotoren funktionieren. Die haben ein vorprogrammiertes Kennfeld und manche sind sogar selbstlernend. Selbstlernend bedeutet, die Zündung stellt Umdrehung für Umdrehung die Zündung weiter zurück. Sobald der Klopfsensor reagiert, stellt sie die Zündung etwas vor und wandert dann wieder zurück. So\'n Klopfsensor wäre auch ne klasse Sache und mit der ensprchenden Beschaltung mit OPVs könnte das auch funktionieren. Das ist aber noch Zukunftsmusik...


    http://rcswww.urz.tu-dresden.de/~s3886627/1.pdf


    Für den Anfang würde es aber erstmal reichen, die Zündkurve nur anhand der Drehzahl und der Last über ein Gleichung zu verstellen. Näherungsweise wäre das möglich. Wenn man jedoch das letzte heraus holen will, braucht man ein Kennfeld, dass sich aus Last und Drehzahl aufspannt und noch die Temperatur berücksichtigt.


    Ich würde darum erst einmal vorschlagen:
    Ich besorge mir den ATMega32 mit Programmer und baue mir eine Vorrichtung, in der ich eine Zündung aufspannen kann. Das dürfte mit dem Strobo machbar sein.
    Ich glaube, he wir uns jetzt mit optionalen Sachen beschäftigen, sollten wir erstmal die grundlegenden Sachen auf die Reihe bringen.


    Mein Moped hat halt eine elktrische Pumpe für die Wasserkühlung. Das dürfte kein Problem sein. Da brauche ich nur 3 Digitalausgänge, ein paar Widerstände und nen Transistor bzw. FET. Das dürfte kein großer Programmieraufwand sein.


    MfG Psy

    So, ich habe mich gerade über den AVR-Atmega belesen und habe gemerkt, dass das ganze einfacher ist als ich dachte.


    Hier das Blockprogramm:


    Hauptprogramm, dass ständig läuft:
    ...
    -->
    Werte holen (Temperatur, Last, Drehzahl,...)
    -->
    Passenden Wert aus DB holen und in RAM ablegen
    -->
    Ausgabe der Werte (Auslassteuerung, Regelung Wasserpumpe, evtl Display,...)
    -->
    ...


    Interrupt als Stack (Unterprogramm)


    Stack1
    Sobald externer Interrupt geschalten-->Interrupt
    -->
    Timer auf 0 setzen
    -->
    Timer aktivieren


    Stack2
    Sobald Timer>=Wert --> Interrupt
    -->
    Pin zum Zündfunken über PWM auslösen und das Signal 1 ms erhalten bleiben lassen. (Wechselspannung, mit der man wunderbar einen Strom in der Zündspule erzeugen kann; Natürlich muss noch eine Verstärkerstufe nachgeschaltet werden)
    -->
    Timer deaktivieren.


    Laut AVR bleibt das Hauptprogramm während der Stacks stehen.
    Ich habe mich einmal umgesehen


    So könnte ich mir vorstellen, dass das funktioniert.
    Ich würde darum in Richtung ATMega16 bzw. 32 tendieren.


    Langsam werde ich, was das Projekt angeht, optimistisch :smile: Ich werde mir doch einmal das eine oder andere AVR-Zeug bestellen... Nach Weihnachten...


    MfG Psy

    Also ich komme bei einem Takt von 16 MHz auf eine Schwingungsdauer von 6,25*10EXP(- 8 ) Sekunden. Das bedeutet, man kann bei 12000 U/min sen Zündwinkel auf 1/222 Grad genau stellen. Ich sag\'s mal so, die Ganuigekiet dürfte dann damit reichen, jetzt hofft man nur, dass sich das in der Realität auch so (in etwa) verhält.
    Denn falls der AVR die Daten seriell verarbeitet wäre ein Grad gerade einmal 222 verarbeitet Bits... nicht viel. 8 Bit Parallel wären dann natürlich fast 1778 Bits, was ausreichen dürfte. Eine For-To Anweisung hatte ja im 16bit-System irgendetws um die 192 bit oder so. Damit könnte man schön genau Takten.


    Tja, bleibt nur die Hoffnung, dass das auch alles so funktioniert.
    Hast du eine gute Seite, auf der man sich über den AVR informieren kann (Blegeung, Programmierung) Welchen würdest du bevorzugen? ATMega32 zum Beispiel? Viel interner Speicher müsste da sein, um das Kennfeld ordnungsgemäß zu speichern. Kann man auch auf den Speicher wie in einem Dateisystem zugreifen?
    Beispiel:
    geg: 20%Last
    70°C Motortemp
    9000 U/Min
    Lös: Suche Wert 20709000 --> 10°


    Naja, ich bin halt kein E-Techniker und erst recht kein Informatiker...


    MfG Psy

    Das guuuuuut. Ich weiß ja nicht, welche Abstände du mit den Timern einstellen kannst. Man sollte schon auf 1° genau nachstellen können. Das bedeutet, der Timer sollte auf 0,014 ms genau gehen. Wenn das möglich ist?


    Klar, diie Zündung wird extrem früh gestellt, was bedeutet, dass man den ZZP beim Starten äußerst weit verdrehen muss. Da jedoch die Drehzahl beim Antreten von Umdrehung zu Umdrehung stetig schwankt, sehe ich da ein kleines Problem.


    Die Last wird einfach über ein Poti gemessen, das von dem Gasgriff betätigt wird. Das ist wichtig, da die Flammfrontgeschwindigkeit auch vom Druck abhängt. Von der Sache her kann man das aber auch erst später machen. So ein Poti anzuschließen ist nun wirklich kein Problem und für den Anfang würde es ja schon reichen, wenn man nur anhand der Drehzahl den ZZP verstellt. Der Rest ist dann nur noch Programmiersache.


    Hier ist ein Skript meines Profs http://rcswww.urz.tu-dresden.de/~s3886627/1.pdf
    Das ist 33 Seiten lang und ziemlich ausführlich.


    Ich wollte mir zu Beginn eine alte Kurbelwelle nehmen, die doppelt lagern, Zündung drauf gebaut und mit einem Motor z. B. von einer Oberfräse den Spaß antreiben. Ein Strobo hab ich auch, sodass da schon ein paar Sachen unproblematischer werden. Aber damit das alles Sinn macht, braucht es eine vernünftige Messtechnik, damit ich erst einmal die Schaltung aufbauen kann.


    So, ich geh jetzt erstmal zu Aldi und erlege mein Abendbrot...


    MfG Psy

    Hallo


    Wenn du sagst der schafft das, dann glaube ich dir das auch. Dann könnte man folgendermaßen vorgehen:
    Zuerst stellt man die Zündung die Gradzahl zurück, die maximal möglich ist. Logisch, sonst müsste man ja knapp 360° versetzen.


    Jetzt zum Schaltplan:
    Von der Geberspule geht man in einen sogenannten Komparator mit Hysterese, der in einen Interrupt des Atmels geht. Das ist wichtig, damit man am Ausgang ein abslut binäres Signal mit TTl-Pegel (ungefähr +5V / 0V) braucht. Die Hysterse macht dadurch Sinn, weil man wirkungsvoll Störungen vermeiden kann.


    Um das mal zu erklären: Ein Interrupt ist ein Input, mit dem ein Programm direkt gestartet werden kann.


    Dann brauch man noch die Sensorik. Die dRehzahl würde ich von der Lichtmaschine abnehmen, da man eine richtige Sinuswelle hat und solch gute Bausteine wie der LM2907/2917 daraus eine schöne (fast) lineare Kennlinie bastelt, mit der man in einen A**log-Input gehen kann. So, da fehlt nur noch ein Temperaturfühler. Klare Sache. Hier würde ich auch wieder mit einem OPV-basierten Instrumentenverstärker arbeiten, sodass man bei -20°C 0V und bei 140°C 5V hat.


    Jetzt zum Programm:
    ...
    -->
    Interrupt wird ausgelöst
    -->
    Zählschleife beginnen (For 1->A to B do begin end; {A} laufende Variable, {B}Endvariable)
    -->
    Digitalport auslösen (über FET {rückkopplungsfrei} mit Zündspule verbunden)
    -->
    Werte holen (Drehzahl, Temperatur, Last)
    -->
    Anhand von Werten Variable B aus der Datenbank suchen
    -->
    B ablegen
    -->
    Warten auf Interrupt
    -->
    ...


    Ich weiß, dass so ein Microcontroller sehr schnell ist, aber gerade bei der Abfrage der Werte aus der Datenbank und bei dem Holen der Werte von den Sensoren vergeht sehr viel Zeit. Außerdem, wie will man das beim Start realisieren? Der Zündversatz wäre enorm. Man könnte höchstens einen zweiten Abnehmer einbauen, den man einfach ausschaltet, wenn ein bestimmter Zustand eintritt (höhere Drehzahl bzw. Motortemperatur).


    Das größte Problem wäre natürlich alle Werte zu bekommen. Gut, wenn denn endlcih meine 140 kg Stahl kommen würden, dann wäre der Prüfstand auch schon weiter.


    Ich find mein System mit dem Phasenschieber vom Elektronikaufwand zwar größer, aber von der Programmierung her einfacher, da man weniger Werte braucht, da ich ja den Winkel versetze und nicht eine Zeit.


    Wir solten aufhören nur darüber zu reden und uns daran machen, das in die Tat umzusetzen, aber wer hat schon ein Oszi und einen Funktionsgenerator in der Garage stehen und kann sich als Elektronikgott bezeichnen?


    MfG Psy