Forum: Mikrocontroller und Digitale Elektronik Auswahl des µC für eine Beleuchtungssteuerung für Modellhubschrauber


von Carsten M. (carstenm)


Lesenswert?

Hallo,

ich habe einige Frage zur ATTINY 11,12,13 Familie, wobei ihr mir 
vielleicht weiterhelfen könnt.

Ich habe vor, für einen Modellhubschrauber eine Beleuchtungsanlage zu 
programmieren. Es gibt 2 Positionslampen die blinken sollen, sowie einen 
Suchschweinwerfer. Ich möchte das ganze in C Programmieren.

Folgende Überlegungen habe ich dazu angestellt:

-  2 Kanäle mittels PWM für die blinkenden Positionslampen( pro Kanal 
eine
   PWM)

-  1 Kanal für den Suchschweinwerfer ( kann nur vom Sender ein und
   ausgeschaltet werden)

-  Auswerten des Empfängersignals zum Ein/Ausschalten der Beleuchtung 
bzw. Suchschweinwerfers mittels 2 analoger Eingänge

-  Möglickeit des programmierens der Blinkfrequenz vom Sender und 
dauerhaftes speichern der Einstellung

Bei meinen Vorüberlegungen haben sich dann folgende Fragen gestellt, zu 
denen ich noch keine befriedigenden Antworten finden konnte:

-  Ist die ATTiny 11,12,13 – Gruppe dafür grundsätzlich geeinget (wurde 
aufgrund der kleinen Bauform von 8 Pins gewählt)

-  Reicht 1K Flash dafür aus? Beim R8C/Tiny von Renesas habe ich 
festgestellt, wie schnell ein Programm anwachsen kann

-  Wie kann ich die 4 programmierten Werte für die Blinkfrequenz 
dauerhaft speichern (kann ich die Werte im Flash Ablegen , unabhängig 
vom Quellcode, wenn ja wie?)

Für Anregungen wäre ich sehr dankbar.


Gruß
Carsten

von Michael U. (amiga)


Lesenswert?

Hallo,

eine PWM steuert die Helligkeit, wenn Deine Lampen nur blinken sollen, 
brauchst Du keine. Timer mit der gewünschten Blinkfrequenz und damit 
immer ein- oder ausschalten.

Gruß aus Berlin
Michael

von Fred S. (Gast)


Lesenswert?

Hi Carsten,

wegen des fehlenden RAM sieht es mit C beim Attiny11 und 12 nicht so gut 
aus; da kommt eher der Attiny13 in Frage. Bei den geringen Kosten der 
Prozessoren heute kannst Du doch gleich einen Attiny25 nehmen. In den 
Attiny11 könnte man das Programm sicher mit Assembler hineinbekommen, 
aber der hat kein EEPROM: Du könntest die Werte eben nur "fest" im Flash 
halten. Zudem ist die Frequuenz des internen Oszillators beim Attiny11 
extrem spannungsabhängig. Ich benutze den Chip allerhöchstens mal für 
ganze primitive Blinkaufgaben...

Gruß

Fred

von Hannes L. (hannes)


Lesenswert?

Ein Tiny12 reicht völlig aus, lässt sich aber nicht in C programmieren, 
da C RAM braucht. Er hat zwar keine analogen Eingänge, die werden aber 
auch nicht gebraucht. Wenn man die Schaltfunktion beider 
Funktionsgruppen auf einen Servokanal legt, dann kommt man auch mit dem 
einen verfügbaren externen Interrupt aus.

Der Tiny12 ist allerdingd "altes Eisen", man sollte ihn nicht mehr für 
neue Projekte verwenden, da er irgendwann demnächst nicht mehr lieferbar 
sein wird. Du solltest daher über den Einsatz eines Tiny13 nachdenken, 
der hat dann auch RAM und Analogeingänge und lässt sich auch in C 
programmieren.

Das ASM-Programm eines ähnliche Projektes mit Tiny12 schwirrt hier 
irgendwo im Forum herum, musst mal suchen, ist noch gar nicht lange her, 
dass ich das reingestellt hatte.

...

von Jürgen K. (jk2010)


Lesenswert?

Hallo Carsten !

Schau mal ins RC-Line Forum. Habe unter Koax helis meine Beleuchtung als 
movie. Ist mit einem Tiny12 realisiert. Sourcecode ist unter der Rubrik 
ATMEL Programmierung drin. Belegt 174 Bytes. Ist Assembler, da der 
Tiny12 kein SRAM hat.  RESET Pin sollte so bleiben, damit ich ihn 
nochmal umprogrammieren kann. Deshalb vier Nutzein-bzw Ausgänge
OK, die Programmierung mit der Funke ist net drin. Suchscheinwerfer wird 
über Funke geschaltet.

Heck (rot) bleibt an während  Kanzel oben 2x "blitzt"  (70ms). Dann 
beide aus
und Kanzel unten (klar) "blitzt". Positionslampen rot+grün leuchten 
dauer.

Grüße

Jürgen


@Carsten: schau mal hier Beitrag "Anfängerfrage zu AVR Tiny12"
da hat mir Hannes (grosses Dankeschön nochmal) mit seinem Codeschnipsel 
sehr geholfen. Ich habe es bei mir etwas anders gelöst. Aber zum 
Verständnis sehr gut.
Fred. S hat mir da auch ein C Beispiel geschickt. Vielleicht hilft´s 
Dir.

von Carsten M. (carstenm)


Lesenswert?

Hallo,

erst danke für die schnellen Antworten.

@Hannes: Danke für den Hinweis ich werde mal dein Programm suchen.

QMichael: Die PWM ist aus meiner sicht notwendig, da das Tastverhältniss 
nicht 1:1 sein soll und wenn es möglich ist, die Periodendauer 
entsprechend lang einzustellen, sollte das auch klappen und nicht nur 
die Helligkeit einstellbar sein.

Ich werde mich dann wohl mit dem ATTiny 13 bzw 25 anfreunden.

Vielen dank für eure Hilfe sobald ich wieder ein Problem gefunden habe 
werde ich es auch wissen lassen ;)

Gruß

Carsten

von STK500-Besitzer (Gast)


Lesenswert?

>QMichael: Die PWM ist aus meiner sicht notwendig, da das Tastverhältniss
>nicht 1:1 sein soll und wenn es möglich ist, die Periodendauer
>entsprechend lang einzustellen, sollte das auch klappen und nicht nur
>die Helligkeit einstellbar sein.

Wenn deine Lampe 0,5 Sekunden eingeschaltet ist und dann für 1,5 
Sekunden aus ist, ist das zwar eine PWM, aber nicht die, die ein 
Controller i.d.R. als PWM erzeugt.
Eine Periodendauer von 2 Sekunden (ist jetzt einfach nur ein Beispiel 
meinerseits) ist für einen Controller eine Ewigkeit...
Sowas macht man eher in Software.

>-  Auswerten des Empfängersignals zum Ein/Ausschalten der Beleuchtung
>bzw. Suchschweinwerfers mittels 2 analoger Eingänge

Ein Modellbau-Empfänger liefert digitale Signale, die in der Pulsweite 
variieren. Dazu braucht man keine Analogeingänge.

Wie oben schon geschrieben wurde: Wenn du beide Signale auf einen Kanal 
legst, brauchst du nur die Pulslänge eines Kanals messen und dann mit 
zwei Schwellwerten vergleichen (Impulslänge < untere Grenze ==> 
Suchscheinwerfer an/aus, Impulslänge > obere Grenze ==> Blinklicht 
an/aus).

von Hannes L. (hannes)


Lesenswert?

> Wenn deine Lampe 0,5 Sekunden eingeschaltet ist und dann für 1,5
> Sekunden aus ist, ist das zwar eine PWM, aber nicht die, die ein
> Controller i.d.R. als PWM erzeugt.

Aha... - Dann ist das ja auch eine PWM, wenn ich meine Hoflampe jeden 
Abend eine Stunde anschalte, oder? (Tastgrad 1/24)

;-)

...

von Markus L. (lucky79)


Lesenswert?

Hannes Lux wrote:
>> Wenn deine Lampe 0,5 Sekunden eingeschaltet ist und dann für 1,5
>> Sekunden aus ist, ist das zwar eine PWM, aber nicht die, die ein
>> Controller i.d.R. als PWM erzeugt.
>
> Aha... - Dann ist das ja auch eine PWM, wenn ich meine Hoflampe jeden
> Abend eine Stunde anschalte, oder? (Tastgrad 1/24)
>
> ;-)
>
> ...
so is es ;-)

unser eins macht so ziemlich alles was elektrisch betrieben wird mit 
PWM!!
Jeder hat halt da so seine eigenen Tastverhältnisse

von Carsten M. (carstenm)


Lesenswert?

Hallo,

nach Durchstöbern einiger Seiten werde ich das Blinken mit einem 
Interrupt lösen.

Der Interrupt soll zwei Variablen hochzählen, haben diese den Grenzwert, 
reicht werden sie auf Null gesezt und das ganze auf die 2 Ausgänge 
gelegt.

Gleichzeitig kann ich den Interrupt zum Auswerten des Empfängerssignals 
nutzen, wie oben schon beschrieben wurde.

Jedoch muß ich gestehen, das ich mir bis jetzt noch nicht das 
Signalmuster angeschaut habe.

Gruß
Carsten

von Arno H. (arno_h)


Lesenswert?


von Jürgen K. (jk2010)


Lesenswert?

Hi !

Ich habe es so gelöst

http://www.rcmovie.de/view_video.php?viewkey=098c3bdd707c30a687d7

Gruß

Jürgen

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
Noch kein Account? Hier anmelden.