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
Morgoth schrieb: > Daher zurück zum Thema ^^ > Kontakt Schalter-> Ausgang high > Erneuter Kontakt Schalter-> Ausgang low > Danke im Vorraus Wofür? Sag blos, du bist immer noch nicht fertig? http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten
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
Morgoth schrieb: > Bring mir das Prog ... > ich habe ... und keine Ahnung Du hast hauptsächlich eines: Ein Problem Aber ok. Nimm dir das Assembler Tutorial vor und fang an zu lesen. Ist zwar nicht ganz dasselbe aber auch mit dem AVR Studio kannn man mit dem Simulator einfache Dinge entwickeln. Das Kapitel über I/O http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen und Vergleiche http://www.mikrocontroller.net/articles/AVR-Tutorial:_Vergleiche sind deine Vorstufen. Wenn du die verstanden hast, gehst du über zu http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten Und dort findest du schon fast genau das was du suchst. Um das letzte Kapitel zu verstehen, sind die ersten beiden Vorbedingung.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.