Forum: Mikrocontroller und Digitale Elektronik spezielles Projekt -> der sinnvolle Einstieg


von Christian H. (chrikrocontroller)


Lesenswert?

Hallo liebe Forums-Gemeinde,
folgendes Problem: Unsere Schildkröte lebt in unserem Terrarium und ihr 
Tages-Nacht-Rhythmus wird durch zwei digitale Zeitschaltuhren gesteuert. 
Dabei geht morgens als erstes die Lampe für's Tageslicht und 30 Minuten 
später die Wärme-Lampe (als Sonne) an. Abends geht die "Sonne" aus und 
30 Minuten später die Tageslicht-Lampe.
Dummerweise haben diese Billigteile nicht wirklich lange gehalten und 
kommen innerhalb von 50 Tagen um etwa 2 Stunden von der wirklichen 
Tageszeit ab. Nun bin ich keine Schildkröte, allerdings stelle ich mir 
das schon komisch vor, wenn das ganze Jahr über meine Tage gleich lange 
bleiben und ich irgendwann schon um 5 Uhr morgens unter der Sonne sitze 
während mein Herrchen noch am Schlummern ist... ^^
Wir lösen das Problem im Moment, indem wir einfach morgens manuell 
anschalten und abends manuell ausschalten. Für unsere Kröte ist das ok, 
aber nicht optimal. Hier kommt das Projekt ins Spiel. Ich möchte 
eigentlich eine ganz einfache Terrariensteuerung haben.
Kleine Zwischenbemerkung: Mir ist bewusst, dass es schon diverse 
Projekte gibt, die soetwas versuchen umzusetzen. Allerdings habe ich 
wirklich (!) sehr lange gegooglet und kam letztendlich doch zu keiner 
Anleitung, die mich meinem Ziel näher bringt. Ich studiere Informatik, 
aber eben keine technische Informatik oder gar Elektrotechnik. Somit bin 
ich denke ich schon lernfähig und auf jedenfall hochmotiviert, 
allerdings wagt man sich natürlich gerade bei dem ersten richtigen 
Projekt ungerne an 230V...
Ich würde mir ungerne für 70+€ ein Experimentier-Board kaufen um dann 
LEDs blinken zu lassen, denn die Software-Seite wird mir die geringsten 
Schwierigkeiten bereiten.
Letztendlich möchte ich im Grunde aber natürlich doch gerade das machen, 
wobei ich im Grunde meine Komponenten selbst zusammensetzen wollte (ich 
will am fertigen "Produk" da ja kein ganzes Board dran hängen haben). 
Und somit stelle ich mir das folgendermaßen vor:
Ich möchte einem Mikrocontroller die Uhrzeit und das Datum vermitteln. 
Dieser berechnet sich (er kennt meine Zeitzone) den ungefähren 
Sonnenauf- und -untergang. Schaltet die beiden Lampen (meine großen LEDs 
^^) im Abstand von 30 Minuten an und aus. Was bräuchte ich also?
Ich denke: Den Mikrocontroller, einen Spannungswandler 230V auf 5V? eine 
Platine, auf der ich alles verlöten kann, zwei Komponenten, die an 
jeweils einen digitalen Ausgang des Controllers kommen (Relais?) und da 
kommen dann per Kabel verbunden Steckdosen ran.
Meine erste konkrete Frage ist nun: Habe ich hier schon einen 
Denkfehler?
Also weiter gedacht: Es gibt natürlich unterschiedliche Controller, 
welchen nehme ich? Ich habe in meiner Formel nichts Ungewöhnliches, 
allerdings scheinen trigonometrische Funktionen schon darin vorzukommen, 
mit Fließkommazahlen zu rechnen muss also in jedem Fall möglich sein. 
Zwei digitale Ausgänge? Ich kenne mich mit den Controllern noch nicht 
wirklich aus, aber das dürften ja nicht wirklich die anspruchvollsten 
Anforderungen sein. Also welchen sollte ich nehmen?
So... jetzt gehen wir also davon aus, der Controller sei mal gewählt. 
Jetzt stellt sich natürlich die Frage womit ich den Controller 
programmiere. Ich habe schon was von JTAG gelesen. Ob oder ob nicht ich 
ihn damit beschreiben würde, in jedem Fall müsste ich sicherlich in 
einen Programmier-Adapter investieren. Hier denke ich mir halt, wenn ich 
mir schon mal so was anschaffe, dann dürfte es natürlich schon etwas 
sein, was mir auch für andere Komponenten mal zur Seite steht. Also hier 
die Frage: Was für einen Adapter kann ich mir kaufen, damit ich mit der 
Beschreibung kleinerer aber auch größerer Komponenten keine Probleme 
bekommen sollte.
Letztendlich bliebe also nur noch folgende unklar. Gehen wir jetzt mal 
davon aus ich habe einen Programmier-Adapter und meine Controller, ich 
habe den Controller auch schon programmiert. Wie bekomme ich nun meine 
einzelnen Komponenten auf meiner Platine kombiniert (Schaltung), sodass 
ich alles an 230V betreiben kann, dass ich zwei Steckdosen mit den 
digitalen Ausgängen verbunden bekomme ohne dass mir bald nen Brand 
entsteht weil ich was falsches dazwischen gesetzt habe. Denn gerade 
dieser letzte Schritt ist natürlich der "elektronischste" und damit mein 
fachfremdester.
Ich hoffe ihr könnt mir in irgendeiner Form helfen, Tipps, 
Anlaufstellen, oder ähnliches nennen. Gerne Rückfragen stellen. Ich bin 
einfach für alles dankbar und die Schildkröte kann dann hoffentlich bald 
wieder nen 'geregeltes' Leben führen.

von Stefan R. (kroko)


Lesenswert?

Hallo Christian!

Mit deiner Vorstellung wie das aufgebaut wird, liegst du schon im groben 
richtig.

Welchen Controller du nehmen sollst ist schwer zu sagen...
Die einen sagen "kommt darauf an was man machen will" und die anderen, 
denn sie selber verwenden.
In diesem Forum wird stark AVR verwendet, aber auch für alle anderen gut 
verbreitenden µC gibts hier genug Leute die sich auskennen und dir 
helfen können.
Für den Anfang würde ich empfehlen: AVR (Atmega), PIC (18F Serie), 
MSP430 (von TI) oder 8051er (baut Atmel, NXP usw.).

Was du verwendest, musst du entscheiden, können tun sie für die ersten 
Monate, Jahre je nachdem wie viel Zeit man in sowas investiert genug.

Ich verwende die PICs und bin sehr zufrieden damit.

Über das Programmiergerät können wir erst reden, wenn du dich für einen 
µC entschieden hast.

Mfg Kroko

von The_ride (Gast)


Lesenswert?

Hi!

Das könnte man doch über eine Relais Schaltung hin bekommen denke ich 
mal
das ein Relais die "Sonne" anschaltet und das andere das Licht.

und die Relais werden dann über einen µ-Controller gesteuert.
und den µ-Controller Proggst du ja selber.

cya The_ride


Ach ja

Autor: Negerfaust (Gast)
Datum: 12.02.2011 01:02

tl;dr

Toller Vorschlag :(

wenn man nichts zu sagen hat sollte man es auch nicht machen.

von Stefan R. (kroko)


Lesenswert?

Deiner ist auch nicht viel besser, da er das schon selber so geschrieben 
hatte. µC schaltet Relais usw.

Aber auf jeden fall sinnvoller als der von Negerfaust gg.

Mfg Kroko

von Christian H. (chrikrocontroller)


Lesenswert?

Hallo Stefan,

vielen Dank für deine Antwort.

Alleine mal gezielt nach PICs zu suchen hat mir schon sehr weiter 
geholfen. Ich habe bei Reichelt gleich die sehr günstigen PIC 10F 
gefunden. Zum Beispiel dieser hier (PIC 10F222-I/P) hat 4 IO-Pins. Sehe 
ich das falsche, oder würde sogar prinzipiell dieser reichen. Ich 
bräuchte doch nur 2 IOs (Sonne und Tageslicht), oder? Das interessiert 
mich aber eher nur.
Denn selbstverständlich habe ich auch nach der von dir empfohlenen 18F 
Serien geschaut und habe dort festgestellt, dass diese wohl leichter zu 
"brennen?" sind.

Nehmen wir also gerne mal an, dass ich mich für einen Controller aus der 
18F Serie entscheiden würde, könntest du mir dann noch eine Anlaufstelle 
für einen Adapter nennen? Am besten über USB anzuschließen. Wäre 
natürlich schön, wenn man damit auch Controller anderer Serien als der 
18F Serie brennen könnte. Können die 18Fer nicht auch schon JTAG, denn 
das würde mir doch auch später mal die ATMEGAs offen halten, oder?

Viele Grüße
Christian

von Jobst M. (jobstens-de)


Lesenswert?

Ein Controller mit integriertem Bootloader (=kein Programmer 
erforderlich) im DIL-Gehäuse (=Bastlerfreundlich) wäre der DS89C450-MNL+ 
von Dallas.
Das ist ein 2-cycle 8051 mit max. 33MHz - zwar eine Rakete für Dein 
Vorhaben, dafür aber mit den oben genannten Vorteilen.

Wenn Dir ein PLCC-Sockel zu löten nichts ausmacht, dann kannst Du auch 
einen AT89C51... von ATMEL nehmen. Du solltest nur darauf achten, daß 
dieser auch einen Bootloader hat. Einen AT89C51EB2 bekommst Du z.B. bei 
Reichelt.


Ich würde dem ganzen noch ein DCF-Modul spendieren.


Gruß

Jobst

von Björn C. (Firma: privat) (blackmore)


Lesenswert?


von axxxi (Gast)


Lesenswert?

Wie wär das Atmel Butterfly-Board ?

Kostet 20€ bei Kessler Elektronik, hat ein LCD - hat einen Bootloader. 
Und bringt bereits eine Software mit Echtzeituhr mit.

von Also (Gast)


Lesenswert?

ich würde vorher auf jeden Fall erst mal mit der Schildkröte reden !

von Hr.Mischnix (Gast)


Lesenswert?

richtig, sie soll selststaendig das Licht ausmachen wnn sie muede ist

von bitte löschen (Gast)


Lesenswert?

Du hast Dir ein cooles Einsteigerprojekt ausgesucht. :) Dieser Thread 
könnte in den nächsten Monaten lang werden. Als ich vor gut einem Jahr 
mit Mikrocontrollern angefangen habe, habe ich mich (erst mal) für AVRs 
entschieden und bin glücklich damit. Die ISP-Schnittstelle ist nicht so 
mächtig wie JTAG, z.B. fehlt die Möglichkeit des Hardware-Debuggens (was 
ich bisher nicht vermisst habe), aber scheint mir weiter verbreitet zu 
sein, und Programmierhardware gibt es im Eigenbau, z.B. mit minimal 
wenig Bauteilen an der Parallelen Schnittstelle oder z.B. das USB AVRLab 
(http://www.ullihome.de) für die USB-Schnittstelle.
Als AVR-Controller müsste z.B. ein ATtiny24 reichen, wenn Du eine 
Serielle Schnittstelle (s.u.) haben willst. Ich würde hier 
minimalistisch vorgehen und schauen, was gerade ausreicht. Die AVRs sind 
recht gut skaliert.

Für Fließkommazahlen braucht man keine FPU. Es gibt es Bibliotheken, die 
Du verwenden kannst, zumal es in diesem Projekt nicht wirklich auf 
Rechengeschwindigkeit ankommt.
Vielleicht wäre es einfacher, mit 2 Arrays (naSonnenaufgang[365] und 
Sonnenuntergang[365]) mit je 365 Werten zu arbeiten.
Wenn gut 5 min. Genauigkeit reichen, würden hier Bytes reichen, wobei Du 
die Genauigkeit erhöhen kannst, indem Du den Byte-Wertbereich als 
Zeitraum zwischen frühestem und spätesten Sonnenaufgang bzw. 
Sonnenuntergang oder als Zeitdifferenz zum Vortag definierst, und Deine 
Zeiteinheit entsprechend anpasst.

Was ich erst mal für das aufwendigste halte, ist die Geschichte mit der 
Uhrzeit. - Nicht der Zeitgeber, das kann man mit einem Timer machen, der 
einen Interrupt auslöst, hinter dem ein ewiger Kalender steckt, sondern 
das Einstellen. Das wäre eine schöne Gelegenheit, ein Display und Taster 
mit unterzubringen, aber ich denke, für ein Einsteigerprojekt reicht es, 
wenn Du eine RS-232 Schnittstelle implementierst und die Uhrzeit mit 
einem selbst ausgedachten Befehl über ein Terminal-Programm einstellst. 
Das Konzept wäre ausbaubar.

Ich bin gespannt, wie sich das entwickelt.

von Christian H. (chrikrocontroller)


Lesenswert?

Hallo Philipp,
vielen Dank für all deine Anregungen. Du hast richtig geniale 
Überlegungen und ich bin mir sicher, dass einige davon in meinem Projekt 
Platz finden werden.
Kroko war so freundlich und hat mir per PN seine Hilfe angeboten, so 
komme ich denke ich schneller in das Projekt und vor allem aus dem 
Simulator heraus :) Wir sind schon fleißig am Mailen.
Ich bin über all das Feedback hier richtig positiv überrascht und werde 
auf jeden Fall über meinen Fortschritt in diesem Thread berichten.
Als erste kleine Info:
Auch wenn viel weniger reichen würde, haben wir uns für einen PIC18F2553 
entschieden. Die Kosten sind überschaubar und die Fähigkeiten mehr als 
ausreichend für alle möglichen Erweiterungen. Kroko wird ihn mir mit 
einem Bootloader brennen und so kann ich den Controller ohne die 
Anschaffung von zusätzlichen Komponenten dann per USB programmieren.
Zusätzlich würde ich tatsächlich gerne einen DCF77-Empfänger mit 
verbauen, so brauche ich nie kontrollieren ob die Zeit auch noch richtig 
läuft. Die Sache mit dem ausgedachten Befehl per RS-232 hat aber 
trotzdem irgendwie Charme ;)
Ein Display wäre ja dann optional. Aber ich hätte ja genug Platz zum 
Spielen.
Wenn ich aber erstmal in der Materie drin bin, dann fängt sowieso 
wahrscheinlich das große Spielen mit allen möglichen Controllern an. :)
Also nochmals vielen lieben Dank
Christian

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.