Gast
#144177
Hallo zusammen! Für eine Tanzaufführung bin ich gebeten worden, eine elektrische Kerze zu bauen (da offenes Feuer in diesem Raum nicht gestattet ist). Ich habe folgende Schaltung: Ein Mega8 als Steuercomputer soll mittels Pseudozufallszahlen die Helligkeit einer Glühbirne steuern. Momentan hängt an dem Ausgang noch eine LED, die aber durch Transistor oder Mosfet mit der Lampe (9 V) später ersetzt wird. Die Helligkeit wird mittels Timer1 PWM über OCA1 gesteuert. Jetzt habe ich für die Software die Evolution Version von Codevision. Diese kann ja Pseudozufallszahlen erzeugen. Die Lampe flackert am Anfang auch kurz, jedoch stellt sich schnell ein sehr stabiler Zustand ein, so dass die PWM selbst mit dem Oszi nachgemessen immer das selbe Tastverhältnis behält. Zur Software: Ich lasse mir zwei Zufallszahlen generieren. Anschließend setze ich die eine Zufallszahl als Helligkeit und danach warte ich in einer Schleife die andere Zufallszahl ab (damit sich die Helligkeit nicht immer gleich schnell ändert). Der Mega8 läuft mit 1 MHz des internen Taktgenerators. Hie ein Teil der Software (der selbstverständlich in der Programmschleife steht): // Pseudozufallszahl ereugen random = rand(); // neue Lampehelligkeit festlegen brightness = random / 256; // neue Wartezeit festlegen (Pseudozufallszahl) durance = rand(); // Helligkeit (PWM) setzen OCR1AL=brightness; // Durance warten for (n; n<=durance; n++) { for (s; s<=10000; s++) { #asm("nop"); } } Hat jemand eine Idee, warum das ganze nach einer Zeit immer stabil wird? Vielleicht hat jemand einen Vorschlag, wie man das Flackern der Kerze noch naturgetreuer mit obiger Schaltung nachahmen könnte. Vielen Dank & viele Grüße Steffen