PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doppelblitz selber machen



schurald
17.02.2008, 18:04
Hallo zusammen,

ich habe mich mit dem Kosmos Mikrocontroller-Experimentierkasten in die Welt der Mikrocontroller eingearbeitet.

Als Besitzer des LC-15 (http://www.conrad.de/goto.php?artikel=218688) habe ich nun vor, so ein Teil selbst nach meine Vorstellungen zu gestalten.

Dabei bin ich auf ein Problem gestossen, für das ich keine Lösung habe. Die Besonderheit des LC-15 ist nämlich, dass 5 Ausgänge a 100mA zur Verfügung stehen und die je ein Doppelblitzen erzeugen, das unabhängig von den anderen 4 Ausgängen blitzt. Damit erzeugt man einen realistischen Nachbau. Einsatzwagen haben nämlich mit Ausnahme der Frontblitzer keine Kennleuchten, die genau synchron oder genau abwechselnd blitzen.

Die einzige Lösung, die ich sähe, wäre für jeden Ausgang einen IC zu nehmen mit einem eigenen Doppelblitzprogramm. Ein Doppelblitzprogramm habe ich mir auch schon geschrieben. Ich wüsste trotzdem zu gerne, wie die das auf einen IC bekommen haben. Mein Programm läuft einfach nur in einer Schleife immer wieder durch, so dass die möglichen 5-6 Ausgänge immer nur in einer bestimmten Abhängigkeit vvoneinander blitzen können.

Gruss, Sascha

uwegw
17.02.2008, 18:34
Für solche Sachen haben Mikrocontoller einen oder sogar meist mehrere Timer. Diese können voneinader unabhängige Taktzyklen erzeugen, in denen die LEDs geschaltet werden. Das wird auch bei dem Fertigmodul so gemacht, da ist nämlich auch ein Mikrocontroller (PIC12C508A) drauf.

An welchen Controller hast du so gedacht?

In SMD-Bauweise könnte man das Modul auch noch auf die halbe Größe schrumpfen, wenn das nötig ist...

Und wenn der Controller nichts anders zu tun hat, würde es auch ohne Timer gehen:
Für jeden Kanal wird in der Hauptschleife eine Variable weitergezählt, und bei einem festgelegten Höchstwert wieder auf Null gesetzt. Und zwar mit einer Taktzeit, die deutlich über dem schnellsten Blinkrhythmus liegt.
Nun läuft zb einer der Zähler von 0 bis 5 durch:
0
1X
2
3X
4
5

Wenn die LED jetzt zwei mal für ein Zeitintervall an sein soll, dazwischen ein Intervall Pause, dann drei Intervalle Pause, muss sie in den mit X markierten Intervallen an sein.
Man fragt jetzt also für jeden Kanal ab, wo der Zähler gerade steht, und schaltet die Ausgänge entsprechend. Also im Beispiel: Bei 1 und 3 anschalten, bei 2 und 4 ausschalten, bei 0 und 5 nichts machen (Ausgang behält seinen Status).

Und wenn man das System jetzt auf mehrer Kanäle erweitert, sieht es zb so aus:


1 1X
2X 2
3 1X
4 2
1 1X
2X 2
3 1X
4 2
1 1X
2X 2
3 1X
4 2

Ein Kanal läuft von 1 bis 4, der andere nur von 1 bis 2. Macht zwei Blinktakte, die unabhängig voneinander parallel laufen.

In der Praxis würde man aber die Zähler etwas weiter und schneller laufen lassen, und die Ausgänge für mehrere Takte am Stück schalten, zb so:


0X
1X
2X
3
4
5
0X
1X
2X
3
4
5
0X
1X
2X
3
4
5

Damit kann man dann auch nen schnellen und nen langsamen Takt gleichzeitig erzeugen. Zb 1ms Zeit pro Durchlauf. Und dann ein Zähler bis 1000, LED an ab 500 und aus bei 0 für nen 500ms/500ms-Takt. Parallel dazu könnte ein Zähler bis 100 laufen, an bei 0 und aus bei 20 für nen 20ms/80ms Takt...

schurald
17.02.2008, 18:53
Hallo Uwe (nehme ich an),

erstmal ist mir wichtig, dass ich solche "Bausteine" selbst herstellen möchte und sie nicht mehr kaufen muss.

Meine Hobbys sind Kamerakran bauen mit Remotehead (z.b. Schrittmotorsteuerung)
RC-Modellbauschiffe,
Polizeikram (Lightbars, Leuchten).

Deshalb arbeite ich mich gerade ein. Leider stehe ich nun vor dem Problem, dass ich nicht herausbekomme, welchen ICs ich nehmen soll. Habe ein Modellbaubuch, das mit PIC-Controllern arbeitet. Das Experimentierboard arbeitet mit dem, was ich auch bei myavr.de finden würde (auf dem Board ist ein Attiny2313-20su). Und zu allem Überfluss habe ich dann auch hier noch ein eigenes RN-board gefunden.

Bin also leider ratlos, welchen IC ich nehmen soll. Weiss noch nicht mal welches Board, weil ich mir auch nicht so sicher bin, ob man aus so einem Board (bzw. aus welchem) man einfach einen IC einsteckt, programmiert und dann in den Zielbaustein einsetzt.

Siehste, von TIMERN habe ich beim Experimentierkasten nichts gelernt. Hatte eher vermutet, dass man evtl. mehrere Programme (also in meinem Fall 5) in einen IC brennen könnte und die sich nur durch andere Pausen bei den Doppelblitzen unterscheiden.

uwegw
17.02.2008, 19:02
Also hast du schon mal etwas mit AVRs gemacht (RN-Control, Tiny2313)? Dann hast du doch bestimmt auch nen ISP für das RN-Control, oder? Das wäre schon alles, was du brauchst. Ein kleiner AVR im 8Pin-Gehäuse wäre dann das richtige für dich. Nen Tiny13 für 1,20€ hat alles was du für 5 Kanäle brauchst. Dann ne kleine Platine löten mit den Treibertransistoren, Sockel für den AVR und ISP-Anschluss. Und wenn kein Platz ist, eine externe Programmierplatine mit Sockel und ISP-Anschluss.

schurald
17.02.2008, 19:50
Ich habe das hier

http://kosmos.de/kosmos/wrs/wrs.nsf/$WebFirstSourceDiashow/FS17B6A7426758D433C1257268001E4EED/$File/dia2_4002051614515_Packshot.jpg.jpg


Der kleine Atmel kann PWM, hat 6 I/O und alle Widerstände sind schon auf der Platine angelötet, so dass man ihn nur mit einer Versorgungsspannung von 9V versorgen muss.


Meine Entscheidung fällt mir noch so schwer, weil ich noch nicht raus habe, in welchen Funktionen sich PIC und Atmel unterscheiden. Bei AVR weiss ich nicht, welches Board das Richtige ist. Wollte auf jeden Fall eins mit USB.

Ob das hier was wäre? http://www.myavr.de/shop/article.php?artDataID=55 Welche Sprache ich erlernen muss, ist mir eigentlich egal. Habe bei Amazon ein Buch über C gefunden für 10€, das sehr gut bewertet wird (für Anfänger)

Will mich nicht vorschnell auf einen IC festlegen. Wie du an meinen Hobbys siehst, habe ich einiges vor.

Noch was zum Experimentierkasten: auf einer Platine ist schon alles drauf (IC, Widerstände, Quarz) und eine IR-diode mit der ich über einen USB-IR-Empfänger meinen PC koppeln kann. Eine Software erlaubt dann das "schreiben" von kleinen Programmen. Man kann ca 20 Befehle (pdir portout gosub c*goto if and or) mit Variablen kombinieren und zusammenpuzzeln (man gibt als nicht selbst Befehle ein sondern stellt sie aus mehreren Auswahlfenstern zusammen ins Hauptfenster).

uwegw
17.02.2008, 20:00
Eigentlich bräuchtest du nur den ISP selbst. Den Rest kannst du recht einfach selbst zusammenlöten, wenn du etwas Elektronik-Erfahrung hast.
Und wenn du dich jetzt für nen AVR entscheidest, kannst du mit der Ausrüstung (ISP und Compiler) ja die gesamte AVR-Famile verarbeiten, um kleinen Achtpinner bis zur größten Variante mit 100 Pins.