Hi, also ich habe hier nen Atmega8-16PU und möchte ihn gerne für eine Lightshow benutzen! Der Atmega soll in einen "Casemod" (neudeutsch -> Gehäuse das wie ein Tannenbaum leuchtet) und zwar habe ich hier nen Taster und LED's und ich habe auch schon so basis wissen in C und möchte das wenn ich auf den Taster drücke immer ein anderer Code ausgeführt wird sozusagen Programmwechsel! Wenn das alles klappt möchte ich evt. noch ein Display reinmachen wo dann noch steht welches Programm gerade ausgewählt ist und wenn das auch geht denke ich über eine Temperaturanzeige im Display nach! Frage1:. Geht das alles mit einem Atmega8 bzw mit einem AVR? Frage2:. Muss ich den Schalter genauso anschließen wie eine Led (Port und GND?) Frage3:. Welches Display (Schwarz-Weiß/Grün) sollte ich denn nehmen? Ich würd gerne ein einfaches portsparendes nehmen! Frage4:. Der AVR wird mit 5V betrieben reicht das aus für alles? Ach hier übrigens mein Vorhaben bezüglich der LED's! Ich hab hier kleine Streifen von einer Lochraster Platine die ich mit Roten und Blauen LED's besetzt habe! Ich möchte nun das einmal alle Roten LED's, dann alle Blauen LED's dann so einen Knight Rider Effekt. Aber! bei meinen ersten Versuchen hatte ich Probleme mit der Geschwindigkeit! Mach ich den Takt zu hoch sieht man das Blitzlich kaum! mach ich nen Timer rein wird das ganze zu lahm und es sieht nicht wie Kinght Rider sondern es sieht so aus wie als wenn die einzeln nach einander Blinken! Ich hoffe ich versteht mich ;) mfG
Hallo Deniz! Zu Frage1: Klar! Sollten die I/Os nicht ausreichen könntest du unter Einsatz von 2 I/Os einen I2C Bus Programmieren und darüber die Anzahl Schaltbarer Kanäle um ein vielfaches erweitern. Zu Frage 2: Sollte dein µC über interne Pullup Widerstände verfügen würde das im groben und ganzen Klappen. Vielleicht solltest du über eine RC Entprellung nachdenken. Zu Frage 3: Ich denke das unterliegt ganz deinem Geschmack. Von der Ansteurung sind die meistens gleich. Zu Frage 4: Wofür konkret soll das denn reichen? Um LEDs anzusteurn und das Display reicht das in der Regel! Solltest du "viele" LEDs ansteuern wollen so solltest du einen Wald und Wiesen Transistor als Schalter einsetzen um deine I/Os nicht zu überlasten. Gruß Philipp
Hi, danke nun das mit der Temperatur vergess ich mal :P Also es sind 8 LED's -> 4 Blaue und 4 Rote ! Der Schalter ist aus nem alten CD Laufwerk,ich würde jetzt als erstes gerne mal wissen wie ich einen Schalter benutze was ja eigentlich ganz einfach ist oder? Und dann muss ich halt abfragen welches Program derzeitig aktiv ist und was das nächste Programm ist,außerdem würde ich gerne wissen wie das mit dem Knightrider Effekt hinbekomme : http://www.youtube.com/watch?v=0aNuVRNh1xg mfG
auf dem microcontroller läuft immer nur ein programm ... du kannst dem natürlich verschiedene leuchtmodi verpassen und zwischen diesen umherschalten. lauflicht: led1 an (warten) led1 aus und led2 an (warten) ... usw. warten kann man über warteschleifen oder mit dem timer... alles lässt sich so schnell oder langsam einstellen wie man lustig ist (in bestimmten grenzen)
Hi, danke das Problem ist nun auch gelöst ;) So ich test das mit dem Schalter jetzt mal und meld mich dann! mfG
Deniz Kökden wrote: > Hi, > danke das Problem ist nun auch gelöst ;) Prust. Der war gut :-)
Der Knight Rider Effekt ist doch eigentlich eine "Leuchtschlange" die durchläuft. Also: 00000000 00000001 00000011 00000111 00001110 00011100 00111000 01110000 11100000 11000000 10000000 00000000 und zwichen den schritten ca. 100ms warten. Das mit den Pausen bekommst du hin? MfG
Hi, ja pausen mach ich mit
1 | sleep_ms(1000); |
Richtig? mfG
Deniz Kökden wrote: > Hi, > ja pausen mach ich mit
1 | sleep_ms(1000); |
Richtig?
> mfG
Kommt drauf an welchen Compiler du benutzt, da schlafen kein
C-Standardkonstrukt ist.
Beim WinAvr heist das dann
_delay_ms( 1000 );
Aber als eifriger Tutoriumsleser weißt du das natürlich.
wenn du solch eine Funktion schon eingebunden hast, und diese auch funktioniert, sollte das passen. Wäre dann ne Pause von einer Sekunde. Allerdings kenn ich diese Funktion auf anhieb nicht. Ist sie selbst geschrieben oder hast du sie aus einem vorgefertigten Projekt.
Hi, nun ist aus nem Tutorial vom Roboternetz... ich hab übrigens schon viel gebastelt am Code ist ja echt ne Schande für den Atmega8 das der so was leichtes machen muss^^ mfG
Hi, also das ist mein Code derzeitig! Ich habe ihn schon getestet leider blinkt da alles einfach so! Bei Knopfdruck/Langem Knopfdruck passiert nur etwas bei den ersten LEDs ;( Ich könnte mir vorstellen das ich das auschalten der LED's/die programmauswahl nicht in die while schleife machen sollte an kopf fass Ich Programmier das mal schnell um und teste nochmal! Wenn ihr euch das mal anschauen könntet währe es echt net ;) PS: Der Code ist aus basis vom Schalter Code hier aus dem Forum! Den rest habe ich mit hilfe von meinem C++ buch gemacht ...
Darf ich einen Vorschlag machen: Vergiss erst mal die einzelnen Blinkprogramme und die Tasten. Konzentrier dich auf einen Blinkablauf und sieh zu, dass du den hinkriegst. Und dann liest du in deinem Buch über Arrays nach und überlegst dir, wie du die Blinkabfolge über ein Array regeln kannst, anstatt jedes LED Ein/Ausschalten einzeln auszuprogrammierern. Wenn du denkst, dass du Arrays verstanden hast, baust du dein vorhandenes Blinkprogramm so um, dass es über ein Array gesteuert wird. Wenn das klappt, dann wirfst du die Zeitsteuerung so wie du sie hast raus und liest hier im Tutorial nach, wie man über einen Timer eine Zeitsteuerung machen kann. Dann baust du alles so um, dass keine delay mehr vorkommen, sondern der Timer sich aus dem Array bedient um die jeweils nächsten LED einzuschalten. Und wenn das dann klappt, kommen die Taster wieder ins Spiel. Sie schalten einfach für die Zeitsteuerung ein anderes Array (welches das abzuarbeitende Blinkprogramm enthält) durch. Und vergiss fürs Erste gotos. Das ist für dich momentan noch ein sicherere Weg ins Chaos.
Hi, hey danke das werde ich machen! Arrays genau das wort ist mir nicht mehr eingefallen... denn Logischerweiße wenn der irgendwohin geht muss ich ja sagen hier ist er gerade und wenn du da bist dann geh nicht auf blau sondern auf rot :P Nuja ich denk ich mach das erstmal so das alle Blinkabläufe sauber gehen! mfG
Hi, so also ich habe mein Programm nun fertig geschrieben. Danke nochmal an alle!
Tach! Ich bin da mal nen bischen neugeirig... :-) Gibt es davon Bilder odern am beseten ein Video vom Case in action ;-) MfG C4ve
Hi, noch nicht muss mir jetzt mal die ganzen LED's einbauen ;) Dann hab ich halt parallel noch 2 Projekte... Ich melde mich 100% wenns so weit ist! mfG
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.