-
Hab ich glaub schonmal geschrieben ...
Was das PWM angeht, du braucht nicht unbedingt ein PWM, und schon garnicht 4 PWMs, bei dem was du vor hast ... es reicht vollkommen eine Multiplexer oder Matrixschaltung ...
Bedenke: Das menschliche auge nimmt nicht mal mehr 100Hz Taktungen wahr (100Hz TV) ... dein AVR taktest du warscheinlich mit 10MHz (10.000.000Hz) ... das sieht dein Auge überhauptnicht ...
Wenn du die Multiplexerschaltung nutzt, und jede LED nacheinander anfährst, dann kannst du mit entsprechenden High / Low Signalen die LED dazu bringen, das die hell / Halbhell / oder wie du möchtest, leuchtet.
Das einzigste Problem, was sich dabei ergibt, ist, das die LEDs eventuell nicht ganz so einfach zu kontrolieren sind, wie mit PWM, aber mit ein bisschen Timing.Korecktur im AVR-Programm,ist das ganz leicht, udn ganz schnell behoben.
Zumal die schaltung dann auch nur auf 1x AVR, 2x Widerstände, 1 Kondensatoren und 1 Multiplexer beschränkt wird. (eventuell noch n Stabi [7805], 2 kondis, und ne Diode) ... du sparst allso massiv bauteile, udn massiv Platz. Sowie massiv Strom, den du dabei verschwenden würdest.
JimJim
XUN
-
Ich glaube, er versteht dich nicht. Ich auch nicht 100%. Poste mal Beispiel...
MFG
-
@ 1hdsquad
mein Bruder ist 11, kann eig. ganz gut löten, passt schon ;)
@xunwichtig
doch ich versteh dich. Aber pwm find ich schwer genug, und das so komplex ist mir dann doch etwas zuviel auf einmal.
So wie es jetzt ist kann ich einfach alles ein/ausschalten (für mich viel einfacher).
Kla der bauteil Aufwand ist sehr hoch, aber egal, habs ja fast.
Denke Ende der Woche hab ich es.
Ich mach mir mehr sorgen bzg. des IR Senders.
Weiß den keiner wie ich einfach ein RC5 Signal senden kann?
Mfg
-
hmm ... also .. ich glaub, das RC5 is komplizierter, als PWM :-&
@1hdsquad
Hmm .. wie erklär ich dir das am besten ..
Also .. mal so versuchen ..:
Gegeben: Du hast 8 LEDs am Multiplexer ...
-Funktion-
Im AVR existiert eine schleife. Zusätzlich existiert ein Speicher für jede LED (z.B. ein Byte pro LED für 255 Helligkeitsstufen)
Auserdem ein Byte-Speicher für die Zeit (muss ein Byte sein, damit es mit der Helligkeitsausgabe kompatibel ist, sonst erhällt man zeitversetzungen)
Zuerst zählt man den Zeit-Speicher jeweils um 1 herauf. ( bei 255 zurück zu 0)
Danach wird in der Schleife zuerst eine LED gewählt (nacheinander von 1 bis 8, und dann wieder von vorne)
Nun überprüft man, ob der Zeitspeicher eine Wert besitzt, der kleiner oder gleich dem Wert des Helligkeits-Speichers für die LED besitzt (z.B. Zeit: 10 ... Helligkeit: 50) . Wenn dem der fall ist, dann kann die LED eingeschaltet werden. Wenn dem nicht so ist, wird kein High ausgegeben.
anschliessend durchläuft man diesen Vorgang mit allen weiteen 7 LEDs.
Wenn dies erfolgte, wird wieder von ganz vorne begonnen (Zeitzählen + 1)
Fertig.
Das ergebniss ist, Das die LEDs nur für eine bestimmtezeit Strom bekommen, udn für diese Zeit auch leuchten.
Das Problem jedoch ist, das durch die hohe geschwindigkeit des Ablaufs man evenentuellgarnicht sieht, das die LED dunkel ist. Das muss man dadurch kompensieren, das man z.B. entweder einen grösseren Speicher nutzt, als Byte, um die stufen zu erhöhen, und damit auch die zeit ( welcher auch erhöht werden muss), oder man baut eien kleine "Wartefunktion" ein, bis man den Zeitzähler um1 erhöht, um so auf ein angemessenes Mass an Taktung kommt. Das muss jedoch individuell für die anzahl der LEDs geschehen, um keinen Versatz zu bekommen.
Wenn man z.B. alle 50sek. TZakten mächte, und man hat 1MHz Taktfrequenz vom AVR, bei 10LEDs, dann sollte man pro Befehl ca. 1 bis 2 IPS rechnen diese durch die 1MHz teilen, und das ergebniss durch die anzhal der LEDs (10) .. dann erhält man den wert, welchen die Wartefunktion abwarten muss, bis er den Zähler um 1 erhöht, udn die LEDs noch einmal durchläuft.
Bedacht werden muss jedoch noch, das NUR der Zähler +1 erhöht erden muss, bei der wartefunktion, sonst bleiben alle LEDs für die wartezeit aus, ohne das sie Ihren aktuellen wert darstellen.
Hoffe, ichhabs verständlich rüber gebracht.
JimJim
XUN
-
Gibt es nicht in Bascom den Befehl sendrc5?
Getrc5 gibt es und es ist einfach.
Wenn ja kann mal bitte einer die Hilfe davon posten, wäre echt nett, glaub das ist einfach in Bascom.
Hat den echt noch keiner son Ding gebaut??
Notfalls sehr leg ich ne Fernsteuerung.
-
Ok, ist klar.
Was gibt es für Probleme bei RC5???
Haste Bascom?
Gehste inne Hilfe, tippst "sendrc5" oder so ähnlich, und siehe da ;-)
Man kann sich das Leben auch schwer machen...
MFG
-
Jo, aber bei mir öffnet sich nichts, deshalb.
Einfach eine IR Dioden per Widerstand an den AVR hängen?
Welchen AVR könntet ihr mir emfehlenen?
Muss halt möglichst klein sein.
Postet bitte mal was in der hilfe steht.
Mfg
-
Klein = ATtiny 13? http://optimize.ath.cx/avr/RSCN00631.jpg
Ich habe an meinem PC kein Internet und an diesem kein Bascom, kann ich morgen posten...
Aber es war ungefähr so simpel.
Der AVR schaltet sie ja nur an/aus, eigentlich müsste es esrtmal egal sein, wei die LED angeschlossen ist, solange sie arbeitet.
Ich glaube das war so:
dim command = byte
dim togbit = byte
dim address = byte
SENDRC5 address , togbit , command
Adresse ist bei TV glaub ich 0.
MFG
-
Da schau:
http://sprut.de/electronic/ir/rc5.htm
Achja: Google hat auch dich lieb, ob du es glaubst oder nicht ;-)
-
Jo Danke erstmal.
Dachte mir doch das es nicht schwer ist.
ich habe natürlich auch gegoogelt, aber kein bascom beispiel gefunden.
Werd das demnächst mal testen, der ATtiny 13 sieht optimal für mein Zweck aus! Muss nurnoch gucken wie ich an die 5V komme.
Wenn das lauflicht steht werd ich es mal versuchen danke ;)