Forum: Mikrocontroller und Digitale Elektronik Doppelblitz Blaulicht und allgemeine Fragen


von Simon (Gast)


Lesenswert?

Hallo zusammen,

eigentlich wollte ich nur für mein RC-Modell ein Blaulicht bauen. Dann 
hab ich im Internet gesucht wie ich das am besten mache. Es gibt häufig 
Anleitungen, die erklären wie man das mit einem NE555 und ein bisschen 
aussen rum macht, oder aber auch mit einem Mikrocontroller.
Ich hab mich für den Mikrocontroller entschieden, da ich schon öfter 
davon gehört habe und es mich einfach Interessiert was damit zu machen.

Die Anforderungen:
Frequenz:
Doppelblitz, sollte etwa so aussehen:
(-=Aus, 1=An)
1-1---1-1---1-1--- etc.

6 "Kanäle":
Ich will nicht, dass alles am Fahrzeug gleichzeitig Blitzt. Die "Kanäle" 
sollen einfach eine leichte zeitliche Verschiebung haben. Zwei davon 
sollen jedoch immer Abwechselnd sein. Ich hoffe ihr versteht was ich 
meine.
Am Controller will ich einen Eingang zum schalten von dem ganzen Spaß.

Nun zur Steuerung:
Ich hab mich in den letzten Tagen im Internet(auch viel hier auf dieser 
Seite...) schlau gemacht zu Mikrocontrollern und allem was dazugehört. 
Jedoch ist das alles sehr Komplex für einen Einsteiger :-)
Und die Infos die man findet lassen sich, gerade wenn man noch nicht 
alles verstanden hat, nicht einfach so auf seinen eigenen Fall 
übertragen.
Ich weiss eigentlich überhaupt nicht, was für ein "System" ich nehmen 
soll.
Zu viel Geld will ich als armer Schüler auch nicht ausgeben ;-) , vor 
allem weil ich vermutlich nicht so viele Mikrocontroller programmieren 
werde(vielleicht kommt mal noch eine Blinkersteuerung für das Modell, 
viel mehr aber eigentlich nicht).

Auf Basis meiner Internet-Recherche(noch einige Verständniss-Lücken) 
würde sich für mich ein Attiny oder Atmega8 anbieten.
Dafür brauche ich dann einen Programmer(hab nur USB). Die sind aber für 
seltene Verwendug ziemlich teuer(~30€).
Wenn ich da einen kauf, kann ich den dann nur für Controller mit gleich 
vielen oder gleich beschalteten Pins nehmen? Oder kann ich auch z.B. 
einen Controller mit 8 Pins in einem Programmer mit 20 Pins 
programmieren?
Und die Programmiersprache: Da hab ich mir kurz die verschiedenen 
angeschaut, und Basic fand ich auf den ersten Blick recht sympatisch :-) 
. Ich hab auch gelesen dass das für Einsteiger gut geeignet sein soll.
Aber weil ich die ganzen Sprachen nicht kann ist mir egal welche ich mir 
so weit anschauen muss dass meine Schaltung funktioniert...
Der Ablauf ist so, oder?: Ich programmiere in der Sprache meiner Wahl, 
dann schicke ich das durch ein Programm das das für den Controller 
verwertbar macht und dann überspiele ich das?

Dann hab ich noch etwas über Arduino gelesen.
Das ist eine eigene Hard- und Software, richtig?
Da ist mir aufgefallen dass es deutlich billigere Programmer gibt :-) 
(~5€).
Aber wenn ich das richtig verstanden habe sind die Arduino-Sachen mehr 
zum experimentieren, also dass die ganze Platine so bleibt.
Ich will aber nicht das ganze Programmer-Teil in mein RC-Fahrzeug 
mitverbauen.
Ist der Mikrocontroller auch funktionsfähig, wenn ich ihn ohne die 
Arduino-Platine verbaue? Ohne zusätzliche Bauteile?
Der Controller für Aruio hat auch einen speziellen Bootloader, oder?
Also ich müsste da spezielle Controller nachkaufen?
Ich hab auch gesehen dass man über einen Arduino eine Attiny 
programmieren kann. Geht das auch mit einem Atmega oder so?

Könnt ihr mir bei meinen Vorhaben helfen?
Was empfehlt ihr mir?(Und bitte immer an die geringen Kostn achten! ;-)
Ich bin über alle Hilfen dankbar! Und nehmt es mir bitte nicht übel wenn 
ich ein paar einfache Sachen noch nicht Verstanden habe! ;-)

Vielen Dank!
Simon

Sorry für den langen Text!

von Ist der Thomas keck mann! (Gast)


Lesenswert?

Hier oben links sind gibt es den Link auf die Artikelübersicht

Da wirst du fündig, z.B.
http://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte

Arduino nimmt dir erst mal den Umgang mit der Hardware ab, man kommt 
schneller zu einem Ergebnis, ist aber auch eingeschränkter, und teurer 
als ein nackter Prozessor und ne Lochrasterplatine.

von Simon (Gast)


Lesenswert?

Wie die Amis will ich's nicht machen, es soll ja ein Deutsches RC-Modell 
sein :-)


Also kein Arduino sondern lieber ein AVR-Controller und Programmer. 
Steckbrett hab ich schon eins.
Muss ich dann in C Programmieren oder kann ich das auch in ner anderen 
Sprache machen?
Ich werde mir da später noch ein paar Artikel aus der Übersicht 
durchlesen.

Schonmal danke für die Antworten!

von Markus (Gast)


Lesenswert?

Schau mal hier Beitrag "Anti collision light mit 555-timer (versch. Intervalle)"
 hinein, da geht es um was Änhnliches.

Als Einstieg finde ich den Arduino eigentlich ganz gut.
Und du kannst ihn notfalls auch als Programmer nutzen, wenn du einen 
Chip ohne Bootloader verwenden willst:
z.B. hier: http://arduino.cc/en/Tutorial/ArduinoISP
oder http://arduino.cc/en/Tutorial/ArduinoToBreadboard

Auch ist Arduino keine eigene Sprache, sondern ist C. Einfach, dass man 
sich Anfangs nicht um die Details im Hintergrund kümmern muss, aber 
kann. (Aber dazu gibt es schon genügen Threads zu dieser Diskussion).
Du kannst auch einen programmierten Chip aus der Arduion-Platine 
herausnehmen und auf einem Lochraster oder so verbauen.

Eine etwas andere Möglichkeit und ein günstiger Einstieg wäre mit 
digispark, welche auch mit der Arduino-Platform arbeitet
http://cboden.de/mikro-controller/digispark/20-mikrocontroller/43-erste-schritt-mit-dem-digispark

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Simon schrieb:
> Könnt ihr mir bei meinen Vorhaben helfen?

Ich habe sowas mal als Ersatz für einen Blaulichtblinker in einem
Playmobil-Auto gebaut.  Das sollte sich beim Drücken des Tasters für
eine gewisse Zeit einschalten und dann irgendwann wieder ausschalten.
Um die blauen LEDs (sicher) mit 2 x LR03 betreiben zu können, habe
ich jeder LED noch einen PR4401 (einfacher step-up-Wandler spendiert)
und diese Kombination dann durch einige parallel geschaltete Portpins
des Controllers angesteuert.

Ich habe keine Doppelblitze gebraucht, wollte aber auch beide LEDs
mit leicht divergierender "Drehzahl" laufen lassen, damit es wie bei
motorisch betriebenen Rundumleuchten aussieht.

Code zum allgemeinen Amüsement anbei.  Du darfst beliebige Teile des
Codes verwenden, wenn du magst, oder dir einfach nur Anregungen 
entnehmen.

von Rush (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Ich habe sowas mal als Ersatz für einen Blaulichtblinker in einem
> Playmobil-Auto gebaut

Ziemlich aufwändiger Code für das bisschen Blaulicht.
Aber danke für die Veröffentlichung...

von Helge A. (besupreme)


Lesenswert?

Vielleicht läßt sich das hier auf deine Bedürfnisse anpassen - 
http://www.strippenstrolch.de/5-1-6-weichblinker.html
Da brauchts nur ein Seriell Kabel zum programmieren.

von Franzose (Gast)


Lesenswert?

Hi Simon,

da Du dir ja viele Fragen über den Einstieg in die Microcontroller-Welt 
stellst, beschreibe ich Dir mal meinen Einstieg, der so low-cost wie 
möglich war.

Kommt natürlich darauf an, was die Bastelkiste hergibt, und wie fit du 
mit Elektronik im allgemeinen bist.

Hab mir damals eine Hand voll verschiedener Atmegas zugelegt(8, 328, 
644), der Rest war vorhanden. Dann den Programmer von Ullihome.de gebaut 
und mit PonnyProg und Parallelportadapter geflasht. Danach ein einfaches 
Experimentierboard gebaut(mit dem 644 wegen der Bastelfreundlichkeit des 
dip40 Gehäuses), das mann nun unter Avrstudio mit hilfe des zuvor 
gebauten Programmers(mit avrisp mk2 Firmware) programmieren kann.
Sobald nun alles läust, wird das Programm an den gewünschten Controller 
z.B. Atmega 8 angepasst.
Sprache natürlich C, dank des Tutorials auf dieser Seite und zig 
Beispielen und Erklärungen im Netz.

Aber: was Du brauchst ist viel Zeit...Zeit...

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Jörg Wunsch schrieb:
> Um die blauen LEDs (sicher) mit 2 x LR03 betreiben zu können, habe
> ich jeder LED noch einen PR4401 (einfacher step-up-Wandler spendiert)

die genannten PR4401 kann man aus 50 ct LED-Funzeln ausm Baumarkt 
rausoperieren

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wegstaben Verbuchsler schrieb:
> die genannten PR4401 kann man aus 50 ct LED-Funzeln ausm Baumarkt
> rausoperieren

Man kann sie aber auch für 68 Cent bei Reichelt kaufen, wenn man
das braucht. ;-)  OK, man muss natürlich dann auch noch eine
Speicherinduktivität dazu kaufen, andererseits bestimmt diese auch
den effektiven LED-Strom.

Ist allerdings die Frage, ob Simon dieses Problem (Betrieb einer
blauen LED aus zwei Alkali-Mangan-Zellen) überhaupt hat …

von Digi S. (digispark)


Lesenswert?

Hier:

http://cboden.de/mikro-controller/digispark/2-uncategorised/46-modellbau-ampelsteuerung

geht es zwar um eine Baustellen-Ampel ... aber das Prinzip ist das 
gleiche. Hier kannst Du sehen, wie einfach die Umsetzung einer 
entsprechenden Steuerung mit der Arduino-IDE ist. Die Software sollte 
eigentlich selbsterklärend sein und lässt sich sicher mit geringem 
Aufwand auch für Deine Bedürfnisse umwandeln. Die feste Zeitsteuerung 
kann man auch durch eine Zufalls-Komponente erweitern und so den 
Rhythmus weniger vorhersehbar gestallten.

Als Hardware kommt dabei ein Digispark für weniger als 9 Euro zum 
Einsatz (wurde weiter oben ja schon mal erwähnt). Der kann zum 
Programmieren direkt in den USB-Port gesteckt werden, so dass weder ein 
Programmer noch ein Adapterkabel oder sonst was notwenig wird.

Darüber hinaus ist er so klein und ohne zusätzlichen "Overhead", dass er 
ohne Probleme später direkt im Modell verbleiben kann.

: Bearbeitet durch User
von Hugo (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Code zum allgemeinen Amüsement anbei.  Du darfst beliebige Teile des
> Codes verwenden, wenn du magst, oder dir einfach nur Anregungen
> entnehmen.

Mich interessiert, wie diese Zeile im Code erzeugt wird?!
/* $Id: blinky.c,v 1.2 2012/10/08 12:20:16 j Exp $ */

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hugo schrieb:
> Mich interessiert, wie diese Zeile im Code erzeugt wird?!

> /* $Id: blinky.c,v 1.2 2012/10/08 12:20:16 j Exp $ */

Die erzeugt das VCS (version control system; Versionsverwaltung) beim
Auschecken des Codes aus dem Repository.  In diesem Falle handelt es
sich noch um ein altes CVS, würde aber bei SVN oder Mercurial ähnlich
aussehen, nur die Versionsnummern sind dann andere.

von Hugo (Gast)


Lesenswert?

Ah vielen Dank.
Ist dann Datum und Uhrzeit vom Auschecken, oder vom Einchecken?
Was ergibt mehr Sinn?
Das Datum der Änderung (also vom Einchecken) ist doch eigentlich 
wichtiger...

von Hugo (Gast)


Lesenswert?

Jörg Wunsch schrieb:
>> /* $Id: blinky.c,v 1.2 2012/10/08 12:20:16 j Exp $ */
>
> Die erzeugt das VCS (version control system; Versionsverwaltung) beim
> Auschecken des Codes aus dem Repository.

Sorry für Offtopic:
Kann mir jemand ein Stichwort nennen, wie das bei SVN heißt?
Ich finde dazu nichts.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hugo schrieb:
> Ist dann Datum und Uhrzeit vom Auschecken, oder vom Einchecken?

Das Datum ist das des Commits (also Check-In), es wird aber beim
Auschecken eingetrage in die Arbeitskopie.

Hugo schrieb:
> Kann mir jemand ein Stichwort nennen, wie das bei SVN heißt?
1
svn propset svn:keywords "Author Id Date" *.c

Kann man auch über die auto-props machen.  Bitte eröffne dafür einen
eigenen Thread in "PC-Programmierung".

von Hugo (Gast)


Lesenswert?

Ganz kurz noch ein Link dazu:
http://tobias-seckinger.de/2011/05/svn-platzhalter/
und der Hinweis, dass man es über Tortoise SVN -> Properties 
entsprechend einstellen kann.
Vielen Dank!!!

von Simon (Gast)


Lesenswert?

Erstmal vielen Dank für eure Antworten!
Da sieht man mal wieder wie viele Wege man hat um an das Ziel zu kommen!

Ich hab mir die ganzen Beiträge durchgelesen und auch die Links 
angeschaut und denke, dass es nicht ganz falsch sein wird mit einem 
Arduino zu arbeiten, um erstmal die Grundlagen kennen zu lernen!
Ich mach mich noch ein bisschen schlau, aber es wird vermutlich auf 
einen Arduino Uno hinauslaufen.
Die Programmiersprache dazu ist C mit einigen vorgefertigten Sachen, um 
das mal einfach auszudrücken, oder?
Ich denk Arduino ist für den Einstieg ganz gut, weil einem da wie schon 
jemand geschrieben hat einige Arbeit an der Hardware abgenommen wird, es 
recht viele Anwender von Arduino gibt und ich ja später mit dem 
Arduino-Board andere Controller Programmieren kann.

Vielleicht noch was zu meinen allgemeinen Elektronik-Kenntnissen:
Ein paar Bauteile und ein Steckbrett hab ich rumliegen, und wenn ich was 
nicht weiß kann ich das ja immer im Internet nachlesen, meist ist das 
nicht ganz so kompliziert wie jetzt der Eistieg in die 
Mikrocontroller...(solange man nichts sehr spezielles bauen will). Löten 
ist eigentlich auch kein Problem.

Spricht irgednwas gegen dieses Vorhaben?

Ich bin jetzt nicht auf jede einzelne Antwort eingegangen, auch für die 
Tips die ich jetzt nicht erwähnt habe Vielen Dank!

Simon

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon schrieb:
> Die Programmiersprache dazu ist C mit einigen vorgefertigten Sachen, um
> das mal einfach auszudrücken, oder?

Eher C++, glaub' ich.  Ja, es gibt erstmal viel vorgefertige Dinge
für die Standardaufgaben.  Damit solltest du einen schnellen Start
haben.  Das sowie die Auswahl an Zusatzhardware ist gut an einer
solchen Lösung.

Auf der Negativseite steht, dass die Arduino-IDE ein großer,
monolithischer Java-Klumpen ist, den man so nehmen muss, wie er ist.
Also irgendwelches "privates Fine-Tuning" ist da nicht drin, und du
bekommst natürlich die unterste Ebene der Hardwareansteuerung mit
dieser Methode nicht zu Gesicht.  Allerdings steht es dir natürlich
jederzeit frei, deine Kenntnisse später in so eine Richtung zu
erweitern, indem du die Arduino-IDE verlässt, den Compiler "zu Fuß"
(oder mit einer anderen IDE deiner Wahl) benutzt und dann vom
Arduino-System nur noch die Hardware selbst weiternutzt.

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.