Forum: Mikrocontroller und Digitale Elektronik Hilfe bei Drehzahlbegrenzung


von Kai (Gast)


Lesenswert?

Hi,

Ich habe hier ein "kleines" Luxusproblem,
und zwar sind wir gerade dabei einen kleinen Roller für
die nächste Scooter-Attack (Sehr große Rollertuningmesse)
umzubauen!
Wir haben im Grunde den kompletten Motorblock umgebaut,
und jetzt das Problem:
Der Roller dreht, auch bei richtiger Abstimmung der automatischen
Übersetzung, also die Kupplung, bei vollem Gaszug viel zu hoch!
Der Motor macht in der Minute rund 14.000 Umdrehungen,
deswegen wollen wir eine Drehzahlbegrenzung einbauen!
Bisher gibt es nur die Möglichkeit das Kabel
welches die Zündimpulse führt, das sogenannte Pick-Up,
mit einem Kondensator an masse zu klemmen,
aber das führt dazu das über das gesamte Drehzahlband
die Zündfrequenz um einen Faktor reduziert wird,
also massive Leistungseinbußen!
Das ist natürlich nicht Sinn der Sache,
vor allem da der Roller dann bei höheren Umdrehungen
fast absäuft, da ein 21mm Vergaser drinnen ist (original waren es mal 
14mm).
Deswegen dachte ich mir, da ich ein bischen technisch versiert bin,
es mal mit einen uC zu probieren.
Ich habe leider nie mit einem solchen gearbeitet,
deswegen bin ich auf diesem Gebiet ein absoluter Frischling.
Ich dachte man könnte das Signal durchschleifen,
und einen AVR so programmieren das er
das Signal mit einer Reverenz-Frequenz vergleicht,
und bei erreichen der Reverenz die Frequenz nicht mehr durchschleift,
sonder konstant die Reverenz-Frequenz ausgibt!
Bei sinken der eigentlich Frequenz sollte er natürlich
das Signal wieder einfach durchschleifen, usw...
Die Reverenz-Spannung könnte man ja durch einen Quartz
einstellen, wobei man dann die Reverenz wieder durch einen Kondi an Erde
einstellen könnte,
und damit einstellen wann der AVR abregelt!
Ich wollte jetzt wissen:
Ob jemand hier bereit wäre ein entsprechendes Programm zu schreiben,
weil ich eher aus dem Bereich der Hifi-Elektronik komme,
und deswegn keine Programmiersprache erlernt habe,
und außerdem die Zeit ein bischen drängt.
Weiter wollte ich wissen ob das mit Einstellen der Reverenzspannung
durch den Kondi klappt,
und vor allem:
schafft es, ein AVR ein Signal mit bis zu 18V Peak durchzuschleifen,
und bei erreichen der Reverenz das Signal auch mit bis zu 18V
ausgeben kann.
Kann man das einfach so machen, der der Quartz auf 18V läuft,
bzw. auf der benötigten Spannung, Oder würde das den AVR mit seinen
5V Versorgungsspannung zerstören?

danke schonmal,
Kai

von nop(); (Gast)


Lesenswert?

Wenn die Drehzahl zu hoch wird, sollte man das Gas wegnehmen und nicht 
an der Zuendung schrauben. Fehlende Zuendimpulse bewirken, dass das 
Gemisch in der Abgasanlage zuendet. Das ist nicht gut.

von crazy horse (Gast)


Lesenswert?

Begrenze doch den Gaschieberweg :-)
Was isn das für Ding? Wahrscheinlich Zweitakter mit Magnetzündung oder 
was?
Schon mal überlegt, was passiert, wenn du bei voller Drehzahl und voll 
geöffnetem Vergaser die Zündung wegschaltest? Das Kerlchen wird ganz 
nass...

von Kai (Gast)


Lesenswert?

Also,
das man dann nicht weiter aufdrehen sollte ist auch klar;)
Zum Gasschieber:
Das kleine Biest zieht beim beschleunigen solche Mengen an Sprit,
da kann ich nix machen!
Nur wenn die Variomatik durchgeschaltet ist,
dann dreht das dingen in die Gefährliche Gegend hoch!
Es geht nur darum ne Art Trainings-Begrenzung zu bauen,
außerdem wollen wir damit verhindern das der Motor
beim Geschwindigkeit-Test auf dem Rollenprüfstand zu hoch dreht,
dort kriegt der alte Piaggio-Motor leider Gottes ja keine Luft!
Für den Umbau auf Wasserkühlung ist das Budget leider schon zu 
aufgeschöpft!
Die Zündung ist original,
das heißt da ist ein kleiner Kontakt der so etwa 2-3° nach dem oberen
Totpunkt schaltet.
Dieses Signal geht dann durch das Pick-Up in die CDI,
wobei dessen Impuls dann direkt in die Zündspule
läuft, von da an die Zündkerze!

Die Schaltung hätte einfach den massiven Vorteil
das wir, bevor uns der jetzt rund 600€ teure Motor fliegen geht,
er absäuft!
Die Schaltung soll einfach während der Trainingsphase
vor Schäden bewahrt werden,
vor dem Sprintrennen wird sie natürlich deaktiviert!

Wäre super wenn jemand ideen hätte,
ciao
Kai

von Kai (Gast)


Lesenswert?

Wollt mich nochmal auf deinen Post beziehen crazy horse,
also, ich will ja mit dem AVR verhindern das
der Motor die volle Drehzahl erreicht,
das Problem ist, das wenn ich nur mit nem Gasschieberanschlag
dran gehe, das mir einfach das Drehmoment während
des Beschleunigens fehlt,
und er dann, wenn er die mit dem Gasschieberanschlag das maximum
an Geschwindigkeit erreicht hat, er trotzdem durch den
Schwung weiter beschleunigt,
der kleine läuft dann einfach trocken,
das wäre natürlich nicht so gut,
da riskier ich lieber in der Trainingsphase,
und während des einfahrens des Motors das er etwas zu fett läuft!
ciao
Kai

von nop(); (Gast)


Lesenswert?

Das Gas kann man sehr einfach ueber ein Servo nehmen. Ein schnelles 
Servo hat eine Regelzeit in den 10ms.

von Frank (Gast)


Lesenswert?

Also einfach einen einfachen Frequenzmesser aufbauen der dann mit einem 
Relais (oder auch per FET) die Zündung kurzschliesst wenn die gewünschte 
Maximalfrequenz/Drehzahl erreicht ist.

bye

Frank

von Power (Gast)


Lesenswert?

Ich würde auch die Drosselklappe per servo steuern. Falls das zu 
unsicher sein sollte, einfach eine zweite in den Ansaugweg setzen die 
nur zur Drehzahlbegrenzung dient und den 'Hahn zudreht'. Das Drehmoment 
beim Beschleunigen und auch das sonstige Verhalten des Motors bleib wie 
vorher auch.

von Kai (Gast)


Lesenswert?

@all
Das mit der Drosselklappe ist ne wirklich gute Idee!
Jetzt müsste ich nur wissen wie genau ich die Frequenz mobil
messen kann, ich wollte jetzt nicht unbedingt ein Oszi in den Roller 
quetschen;)
Ich könnte dann auch, der Einfachheit halber,
einfach die Zündung mit nem wirklich Großen Kondi (so 2,2uF,
für die Anwendung ist das gigantisch;)) die Zündung wieder gegen
Erde schalte,
so hab ich einen einfachen kleinen Aufbau,
und vor allem kann ichs einfach einstecken, zum einfahren
und ohne große Umbauten dann auch bei Bedarf ausbauen,
bei ner Drosselklappe müsste ich dann noch einen längen Ansaugsweg
einbauen,
bei nem 2-Takter nicht ganz unkompliziert,
da ich dann die Boost-Bottle (im grunde ein umgekehrter Blasebalg
welcher überschüssiges Gemisch aufnimmt, und beim nächsten
Trakt wieder abgibt) anpassen, damit die sich nicht direkt voll
saugt!
außerdem mag ein selbstschmierender 2-takter es nicht,
wenn man ihm den Saft abdreht, da läuft der innerhalb
von 1-2takten direkt ohne schmierung!

ciao
Kai

von Frank (Gast)


Lesenswert?

Frequenzen messen kann so ein AVR doch ganz gut ohne Oscilloscope. 
Beispiele gibts doch hier schon zur Genüge. Einfach nen Draht ums 
Zündkabel wickeln und ran an nen Pin (vielleicht noch ne 
Sicherheitsdiode oder gar einen Optokoppler dazwischen), etwas 
Timerprogrammierung und schon wird gemessen. Besonders viel hat er ja 
nicht zu messen, son Motor fällt ja nicht grad unter HF....
Guck dir mal das Multimeter hier im Forum an, da ist auch ein 
Frequenzmesser mit drin.

bye

Frank

von Kai (Gast)


Lesenswert?

Das ist natürlich super!
Dann einfach einen Pin eben als Input konfigurieren,
nen anderen als Schalt-Ausgang wenn eine bestimmte Frequenz
erreicht wird!
Da würde ja der ATM 16 mehr als locker reichen;)
Über den Output wird dann ein Transistor
durchgeschalltet, der das Zündsignal per Kondi
an Masse schaltet!
GENIAL!
Jetzt muss ich mir nur was überlegn wie ich die
bestimmte Frequenz einstellen kann ohne direkt
den ATM neu programmieren zu müssen,
und schon ist fertig!

ciao
Kai

von Frank (Gast)


Lesenswert?

häng ein Poti an einen Analogeingang und schon kannste drehen wie an nem 
Dampfrad. Da reicht sogar noch ein Tiny13 für. Natürlich kannste das 
auch mit nem Drehgeber verwirklichen, dann wäre aber irgendeine Anzeige 
sinnvoll. Man kann auch mehrere Werte vorspeichern und als Presets 
einfach aufrufen. Alles Geschmacksfrage.

bye

Frank

von Kai (Gast)


Lesenswert?

Also mir gefällt die Lösung mit dem Poti am besten,
macht einfach am meisten Sinn!
Ich wüsste nur nicht wie ich das programmieren kann,
ich glaub das wird doch ein länger angelegtes Projekt
enttäuscht guck;)
naja, dann werd ich mir mal den sehr langen thread über das multimeter
reinziehen,
und die scripts für die frequenzmessung rausziehen.
ciao
Kai

von Frank (Gast)


Lesenswert?

einfach den AD-Wandler auf linksbündig setzen und den 8-bit Wert aus dem 
High-Register lesen, dann haste ne prima Potisteuerung. 256 Stufen 
sollten allemal reichen.

Wandler vorbereiten:

         ldi      zl,0b00100011  ;PB3 wird als aktiver
  out  ADMUX,zl    ;ADC gewählt und Freilauf
  ldi  zl,0b11101000
  out  ADCSRA,zl
  ldi  zl,0b00000000
  out  ADCSRB,zl


und mit
        in  zl,ADCH

lesen

So läufts bei mir in nem T13.

bye

Frank

von Kai (Gast)


Lesenswert?

Frank:

Danke für die ganzen Tipps,
aber wenn ich solche skripts lese krieg ich echt
Minderwertigkeitskomplexe,
weil ich effektiv nichts davon verstehe...;)
So, ich lade mir grade das scheinbar seeeehr große Datenblatt
vom T13 runter, um mal wenigstens die Hardware zu verstehen;)
Bisher hatte ich mehr mit TDA's und OP-Amp's zu tuen :D
Jetzt muss ich nur noch wissen wie ich die Frequenz einlese,
und die Poti-Aussteuerung mit einer bestimmten
Grenzfrequenz in verbindung setzte,
und das bei erreichen der eingestellten Grenzfrequenz
ein weiterer Kanal auf High, also 5V geschaltet wird.
wie teuer sind die Bücher eigentlich? :D

ciao
Kai

von Kai (Gast)


Lesenswert?

ach ja,
wäre das hier ein geeigneter Tiny?
ATTINY 13V-10PU
also ich rede jetzt vom Gehäuse,
das ist ein PDIP-8?
Ach ja: welches Programmer-Board würdest du empfehlen?

ciao
Kai

von crazy horse (Gast)


Lesenswert?

würde von Potis im Fahrzeug abraten. Je nach Typ brechen die bei 
Vibrationen gerne ab, verstellen sich, haben Probleme mit Feuchtigkeit, 
bringen wechselnde Werte usw.
Einfacher wohl ein DIP-Schalter, es würden 4 Stück genügen. 
Grundfrequenz 10.000 U/min, 16 Möglichkeiten a 250 U/min.
Anderer Ansatz: serielle Schnittstelle dran und per PC in den EEPROM 
speichern.
Oder ein IR-Empfänger, dann könte man das auch mit ner normalen 
Fernbedienung (RC5 z.B.) machen, aber das wird dann von der Software 
aufwendiger als für den Zweck nötig.

von Frank (Gast)


Lesenswert?

das mit dem Poti tut schon. Man sollte allerdings schon vollgekapselte 
Typen mit Metallgehäuse und Metallachse nehmen.
Ich hab ein Pollin-Board im Einsatz. Das ist billig und reicht für die 
meisten Fälle gut aus.

bye

Frank

von Kai (Gast)


Lesenswert?

Also das mit dem Poti im Fahrzeug wäre kein Problem,
nach geeigneter Einstellung würd ich einfach nen Kohlenschichtwiderstand
reinklatschen, mit passendem wert;)
Das Poti wäre zum abstimmen ganz gut, aber wenn der Widerstand
ermittelt ist,
ein richtiger rein, und dann entfallen alle oben genannten
Problem auf einen Schlag,
außerdem habe ich bereits 3 Potis eingestellt,
1-Mal um den Schaltdruck des Piranha-Kits (allseits bekannt als NOS;
bzw. Lachgas) zu regeln, 1mal um den Bordstrom
nachregeln zu können, da bei zu wenig Zündungs-widerstand gerne
mal der Laderegler durchbrennt,
und einmal um die LED's im Radkasten einstellen zu können;)

ciao
Kai

von Kai (Gast)


Lesenswert?

Also nen Attiny 2313 hab ich bei pollin gefunden,
aber kein ProgrammierBoard?
ciao
Kai

von Frank (Gast)


Lesenswert?

der 2313 hat zwar einige Beinchen mehr aber keine AD Wandler drin. 
Momentan scheints die Eva-Boards mal wieder nicht zu geben. Da hilft nur 
abwarten. Wenn man die Frequenz nicht selbst (mit dem Controller) messen 
will kann man auch z.B. mit nem LM2907 ne Spannung draus machen und dann 
nur die Spannungen miteinander vergleichen.

bye

Frank

von nop(); (Gast)


Lesenswert?

Die Zuendung abzuschalten ist eine schlechte Idee. Wenn die Drehgzahl 
erreicht ist, zuendet's nicht mehr und die Drehzahl faellt wieder, dann 
zuendet's wieder und das vorher nicht gezuendete Gemisch im Auspuff 
kommt noch. Dann hat man dauernd (jedes 3.Mal oder so) Zuendung in den 
Auspuff hinein. Der macht das nicht lange. Der Sound ist zar toll.

von Gast123 (Gast)


Lesenswert?

Man könnte ja eine Hysterese einsetzen, falls das hilft :)

von PeterL (Gast)


Lesenswert?

ich sage: Zündung abschalten ist in Ordnung!!
wird auch vielfach gemacht (habe sowas sogar schonmal bei einer 
MotoCrossmaschine repariert)
wenns laut ist, gibt man gerne wieder weniger Gas ;-)

Peter

von Christian M. (crischi)


Lesenswert?

Hallo,

hat BMW auch schon so gemacht. Bei alten BMW316 und ähnliche mit 
Vergaser gab es einen speziellen Zündfinger. Dieser hatte intern eine 
Feder, die einen Kontakt zum Mittelpunkt gedrückt hat, bei zu hoher 
Umdrehung und daher hoher Fliehkraft/Zentripetalkraft wurde der Kontakt 
geöffnet. Rein mechanisch also. Das hat auch funktioniert, sah man bspw. 
wenn man sehr schnell auf der Autobahn war und nur ein 4-Gang-Getriebe 
hatte. Dann hat er ausgesetzt. Ganz schön archaisch ;-)

Gruß
Christian

von Kai (Gast)


Lesenswert?

Ja,
aber Motocross, also zumindestens die die ich kenne,
sind 4-takter, der bmw genauso;)
Deswegen will ich die zündung nicht komplett ausschalten,
sondern nur durch großen kondi erden,
ist im endeffekt das selbe, nur das bei meiner methode
trotzdem hin und wieder gezündet wird um die drehzahl konstant
zu halten;)

Das einzige was ich bräuchte wäre ein ATtiny 13,
und eine empfehlung für ein passendes board;)
Bei pollin habe ich vorhin den TLL-Wandler gefunden,
der laut Datenblatt dafür gedacht ist:
Best-NR: 94-100 911

Wäre der was?
Dann bräuchte ich halt nur noch ein Script, das:
ein Frequenz ausließt,
eine eine Poti-Einstellung, also einen widerstand,
so interpretiert das es eine maximal-Frequenz gibt,
und sobald diese frequenz erreicht ist,
wird ein Pin von Low (also 0V) auf High geschaltet wird,
um daran nen Transistor zu hängen!

ciao
Kai

von Kai (Gast)


Lesenswert?

Also,
Frank, dein Poti-Script hat ja 256 Stufen,
das heißt ich könne in 40Hz Schritten die Frequenz
zwischen 3000 und 13.000 Hz als maximum setzen,
oder?
Das wäre so der Berreich,
den wir bräuchten!
Um den Zylinder einzufahren brauchen wir so um die 4-5k rpm.
Außerdem kann ich in diesem Berreich super die Variomatik
abstimmen,
weil wir dann die Leistungs-drehzahl bestimmen können,
und dann während der Rennen nachvollziehen können,
unter welchen Drehzahlberreich wir nicht fallen sollten,
um aus den Kurven schön rausbeschleunigen zu können;)

ciao
Kai

von Gast123 (Gast)


Lesenswert?

Naja, Board braucht man nicht wirklich, das sind ja nur eine Hand voll 
Bauteile.

Und das Programm (nicht Script) wirst du dir schon selbst schreiben 
müssen. Ich glaube nicht, dass das jemand "blind" für dich entwickelt. 
Bei Problemen kannst du natürlich schon fragen, aber etwas 
Eigeninitiative muss schon dabei sein. Ich persönlich würde aber als 
Programmiersprache C empfehlen, nicht Assembler. Das ist aber 
Geschmackssache. Als Compiler eignet sich evtl. Codevision. Der hat auch 
einen "Wizard", der dir alle möglichen Register einstellt. Du musst im 
Prinzip nur noch ein paar Zeilen Code einfügen.

von Kai (Gast)


Lesenswert?

@Gast123
Ein Versuch wars ja wert;);)

Also,
Ich denke die Ausgabe kann selbst ich noch recht einfach
abhaken, was mir sorgen macht ist das TeilProgramm
was die Poti-Einstellung einer Frequenz gleichsetzt,
Und die Konfiguration der einzelnen Pins,
das sind so uC-typische Befehlszeilen,
mit denen ich mich z.Zt. versuche außeinanderzusetzen.

ciao
Kai

von PeterL (Gast)


Lesenswert?


von Kai (Gast)


Lesenswert?

@PeterL
Wow, ok, das kann ich schon als wirklich krass bezeichnenXD
Ich muss im Grunde nur noch den entsprechenden Quartz ranhauen,
und eben auf 2-Takter-Modus modifizieren, also das
Verhältnis zwischen Eingangs-Frequenz und Drehzahl abändern,
in Abhängigkeit zum Quartz.
Dann anstatt der LED's einfach Transistoren einbauen,
und dann dürfte es an sich fertig sein, oder?
Kann ich das Eingangssignal einfach per Draht ums Zündkabel
einbinden?
Nen Optokoppler brauche ich natürlich auch dafür!
Auf welcher Spannung soll ich das Eingangssignal
eingeben? wäre 5V i.o.?
Das könnte ich dann direkt von der Spannungsversorgung
für den uC abgreifen.
Kann ich, wenn ich einen 8Mhz Quartz nehme,
den Wert "240000000" einfach duch 120000000
ersetzen? ein 2Takter zündet in der Zeit wo ein 4-Takter
einmal zündet 2mal, deswegn.
Den uC würde ich dann auch übernehmen!
Kann ich die Pins die eigentlich für die Segment-Anzeige
vorgesehen sind auch für LED's, also Ausänge nehmen?
Also einfach die ProgrammCodes für die LED-Outputs
kopieren und die Pin-Namen ändern?
Dann könnte ich ja noch mehr versch. Outputs machen,
also in 500rpm-Schritten die Sperr-Frequenz abgreifen kann?

ciao
Kai

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.