Hallo,
ich habe ein Problem mit meinem Motorrad mit den Blinkern.
Da es ein amerikanisches Modell ist, hat es zwei Blinkknöpfe, rechts und
links.
Solange man einen Knopf drückt, blinkt es, lässt man ihn los, hört er
auf.
Da der Lenker allerdings sehr hoch ist und wenn man an der Ampel lenken
muss, ist es nahezu unmöglich, noch an den Blinkknopf zu kommen bzw. ihn
zu drücken.
Daher ist mein Ziel:
Ich lege die Tasten auf Vss und lege sie dann an die Eingänge eines
Attiny 15.
Ich programmiere den Attiny 15 so, dass er an einem seiner 2 Eingänge
einen Tastendruck erkennt und dann einen der Ausgänge solange auf High
setzt, bis der Knopf erneut gedrückt wird.
Den Ausgang schliesse ich dann an einen MOSFET (P oder N, jenachdem ob
der Schalter original plus oder minus durchschaltet) und Drain und
Source werden dann angeklemmt wie vorher der Schalter.
Selbstverständlich wird der Schalter vorher entprellt, dass beim Drücken
der Taste nicht 3-5 mal das Relais an und wieder ausgeschalten wird.
Gesamtfunktion ist dann:
Linke Taste drücken und loslassen: Blinker links an
Linke Taste erneut drücken: Blinker links wieder aus
Rechts das gleiche Spiel, der Attiny 15 hat ja 2 Ein und 2 Ausgänge.
Der Attiny und die 2 Mosfets liegen in SMD Form dar, ausserdem wird ein
Spannungsteiler auf 5V benötigt, was das grösste Bauteil darstellt.
Die Gesamtschaltung ist dann so klein, dass ich sie in dem Gehäuse mit
den Blinkertasten verstecken kann.
Nun das Problem:
Ich studiere Elektrotechnik, allerdings kommen Mikrocontroller erst im
nächsten Semester dran, und da nur der MSP430 und der 80x86.
Programmieren kann ich aber nur in c++ und java, der attiny 15 nimmt
aber nur assembler.
Sprich ich hab keine Ahnung wo ich anfangen soll.
Ich fang an mit
.include "tn15def.inc"
um den Treiber zu laden.
Wie man die Knöpfe entprellt steht im Tutorial, nur wie soll ich die
Rastfunktion machen?
Mit UND-Funktionen könnte ich ein virtuelles RS Flipflop nachbauen, mit
rotate right könnte ich einen anfangsbit 0x10101010 mit dem aktuellen
vergleichen 0x01010101 und bei knopfdruck wird ein 0x00101010 raus,
UND-vergleich und bingo, nochmal rotate macht wieder 00010101 raus,
vergleich negativ und loop zum start, dritte option wär den wert direkt
ins register zu schreiben und auszulesen.
zum entprellen würd ich einfach hergehen und ne vergleichszeit von 100
ms annehmen, den knopf schneller zu drücken wird schwierig ^^
wie gesagt ich weiss nicht direkt was ich machen soll da nur geringe
grundkenntnisse da sind.
Versteht mich bitte nicht falsch: ich will hier niemanden meine arbeit
machen lassen, weil ich faul oder sonst was bin.
Ich will lernen, wie man so was macht, leider steht nur das Entprellen
im Tutorial, ein Vergleich und Speichern wie heir notwendig.
Die Suchfunktion hat ich sehr wohl benutzt und die hat mir zwar das mit
dem Comfortblinker in dem Golf ausgespuckt, aber ich wills ja nicht nur
3 Sekunden haben und den Code haben sie erst recht vergessen zu posten
^^
Ich bin hier um zu lernen, nicht mir meine Arbeit abnehmen zu lassen ^^
also bitte helft mir
Gruss
Morgoth
>usserdem wird ein Spannungsteiler auf 5V benötigt, was das grösste Bauteil >darstellt.
Ja, die sind einfach unverschämt groß.
>Ich studiere Elektrotechnik,
Studier was anderes.
>Programmieren kann ich aber nur in c++ und java, der attiny 15 nimmt>aber nur assembler.
Dann nimm doch was anderes als den;)
Kannste nicht einfach einen anderen Schalter einbauen, der eine
Rastfunktion hat?
Ich mein mit nem uC im Motorad holst du dir nur Probleme an Board, wie
der Schutz der empfindlichen Komponenten vor dem bösen Boardnetz,
Programmierung...
Oder du baust deinen Gedankengang mit RS-Flipflop diskret nach, schau
mal nach Toggle-Mode.
Morgoth schrieb:> Programmieren kann ich aber nur in c++ und java, der attiny 15 nimmt> aber nur assembler.> Sprich ich hab keine Ahnung wo ich anfangen soll.> Ich fang an mit>> .include "tn15def.inc">> um den Treiber zu laden.> Wie man die Knöpfe entprellt steht im Tutorial, nur wie soll ich die> Rastfunktion machen?> Mit UND-Funktionen könnte ich ein virtuelles RS Flipflop nachbauen, mit> rotate right könnte ich einen anfangsbit 0x10101010 mit dem aktuellen> vergleichen 0x01010101 und bei knopfdruck wird ein 0x00101010 raus,> UND-vergleich und bingo,
?
Viel zu komplizert
if Taste_links gedrückt
if Wert_für_Blinker_links == 1
Wert_für_Blinker_links = 0
else
Wert_für_Blinker_links = 1
Du musst hier nicht Bittricksen wie ein Wilder. Platz hast du genug und
für nicht verbrauchtes Flash gibst kein Geld zurück
Den Wert für Wert_für_Blinker_links legst du in einem Register ab, den
Wert für Wert_für_blinker_rechts legst du in einem Register ab. Aus dem
Tutorial holst du dir noch raus, wie man Vergleiche macht und schon bist
du unterwegs.
AVR-Tutorial
PS: Du kannst bei einem Tastendruck auch ganz einfach das entsprechende
Register negieren. Aus 0x00 wird dann 0xFF und umgekehrt. Ist das
Register 0x00, dann wird nicht geblinkt, ist es 0xFF wird geblinkt. Das
Blinken machst du zb mit einem Timer und zugehöriger ISR.
Karl heinz Buchegger schrieb:> Das> Blinken machst du zb mit einem Timer und zugehöriger ISR.
Er will doch nicht blinken, sondern nur den Blinker einschalten.(oder
hab ich das jetzt falsch verstanden?)
MarioT schrieb:> Karl heinz Buchegger schrieb:>> Das>> Blinken machst du zb mit einem Timer und zugehöriger ISR.>> Er will doch nicht blinken, sondern nur den Blinker einschalten.(oder> hab ich das jetzt falsch verstanden?)
Keine Ahnung.
Ich hab beim Durchlesen 3 mal den Faden verloren.
Ich hätt ja einfach einen rastenden Taster oder einen Kippschalter mit
Mittelstellung (für links-aus-rechts) benutzt, aber das ist heutzutage
zu banal.
kbuchegg hat recht
was ich suche ich eine art rastender taster, einmal drücken ein nochmal
drücken aus
Das simuliert dann, dass der knopf gedrückt bleibt und das Blinkrelais
angesteuert wird
Das Geblinke wird von dem übernommen
Das Problem mit RS Flipflop nachbauen ist halt dass das nicht ins
Gehäuse passt, 1 RS, ein UND Glied, Spannungsteiler, MOSFETS und dann
noch Kondensaotrschaltung zum Entprellen, wobei das NIE störungsfrei
ist.
Ich möchte den Attiny nehmen um a)Assembler zu lernen und b)die krieg
ich umsonst :D ausserdem ist er schön klein
>Ich hätt ja einfach einen rastenden Taster oder einen Kippschalter mit>Mittelstellung (für links-aus-rechts) benutzt, aber das ist heutzutage>zu banal.
Den Schalter findet er nicht, weil keine 10MHz drauf stehen
Karl heinz Buchegger schrieb:> Ich hätt ja einfach einen rastenden Taster benutzt, aber das ist> heutzutage zu banal.
Wenn man aber Interresse für µC entwickelt ist auch nicht falsch. Die
original Schalter kann man so verwenden. Ein µC bringt aber am KFZ schon
wieder andere Propleme.
Wie sieht es mit einem bistabielem Relais aus?
Die bistabilen Relais die ich hier habe sind leider zu gross um sie in
das Gehäuse zu bekommen, ich weiss nicht ob es da kleinere gibt
und wie du bereits erwähnt hast ist meine interesse am mC geweckt ^^
Was für Probleme sollen denn dabei auftreten?
Wir reden hier nicht von einem neuen Japanischem Auto mit zig Elektronik
drin sondern nur von einer elektrischen, entkoppelten Zündung einem
Blinkrelais und 6 Glühlampen
Aaaaalso
um das hier mal aufzufrischen
Bistabies Relais kommt NICHT in frage, da einfach zu hoher
PLatzverbrauch.
Die Überspannungen der Zündung werden durch Kondensatoren
herausgefiltert, alles natürlich auf SMD Basis.
Daher zurück zum Thema ^^
Kontakt Schalter-> Ausgang high
Erneuter Kontakt Schalter-> Ausgang low
Danke im Vorraus
Hi
Nun ja, ein Relais ist dir zu groß, dafür möchtest du ja gern den
ATTiny. Aaaber.... Blinkleuchten... 6 W ? pro Stück, mindestens 2 davon
(vorn und hinten) machen bei einer 12 V Anlage schon mal 1 A. Bist du
sicher, im Datenblatt steht, der ATTiny hat 1A Ausgänge ? Ach, sorry,
die Lampen hängen ja am Blinkrelais, und das hat nur ca. 100mA. Da wird
sich aber der ATTiny freuen. ( soweit ich weiß, schaltet der Schalter
auch die Lampengruppe, der Blinker macht nur Tick.Tack...)
So nun ernsthaft, die kleinste Lösung wäre wirklich ein Schalter, links,
mitte rechts. Nix gegen Interesse am µC, aber du hast wenn ich's richtig
verstanden habe "Nichts". Keinen Progger, keine Software, keinen
Controller, keine Kenntniss ... Du wirst für den Anfang schon ein wenig
in die Tasche greifen dürfen. Nutz lieber die Zeit zum Cruisen, denn ein
Controller ist ziemlich eigensinnig. Er wird dir viel Zeit abfordern.
Gruß oldmax
Stimmt der Schalter geht an die Blinker, allerdings geht der Ausgang des
Attiny nicht direkt an die Lampe sondern an den FET, der den Schalter
ersetzt, und dem sind sowohl Frequenzen im Bereich von 2 Hz als auch
Ströme über 2A ziemlich wurscht ^^
Weiterhin hast du auch Recht, ich habe kein Progger, keine Software,
kein Controller und keine Ahnung, aber ich habe einen Professor mit
Progger, Software, Controller und Ahnung aber keiner Zeit, der mir
gesagt hat:
Bring mir das Prog, ich lad es drauf und ätz dir die Platine.
Gruss
Morgoth
Ach und noch was:
Die Idee ein R/S Flip-Flip mit irgendwelchen UND-Gattern nachbilden zu
müssen, legst du am besten gleich mal ad acta. Hier führt dich
ausnahmsweise dein elektrotechnisches Wissen nicht weiter.