Forum: Mikrocontroller und Digitale Elektronik Eigenbau Zeitschaltuhr mit 2 PWM-Ausgängen


von Soeren (Gast)


Lesenswert?

Hallo,
ich bin beim googeln auf euer Forum gekommen und finde das Thema hoch 
interessant. Ich bin absoluter Neuling was Mikrocontroller angeht bzw. 
die Elektronik. Vielleicht könnt ihr mir ja helfen:
ich möchte mir ein eigene Zeitschaltuhr für meine beiden Aquarien mit 
jeweils 2 Beleuchtungen bauen bauen mit folgendem Möglichkeiten:

Ich habe jeweils pro Aquariumeine 9W LED-Lampe (max 1A, 12V) als 
Tageslicht. Diese würde ich gerne morgens anschalten und abends wieder 
ausschalten inklusive Sonnenaufgangs- und Sonnenuntergangssimulation 
(Dauer der beiden Simulationen ca. 15 min). Kurz vor Ende der 
Sonnenuntergangsimulation (ca. 5 min vor Ende) sollen dann jeweils pro 
Aquarium eine 6W LED-Lampe als Mondlicht für ca 1 Stunde zuschalten. Die 
Schaltung für das Tageslicht möchte ich mit einem Taster überbrücken 
können für Notfälle. Und zu guter letzt möchte ich ein kleines Display 
verbauen was mir nur die aktuelle Uhrzeit anzeigt.

Ich bin jetzt soweit dass ich mir einen Arduino Uno Rev.3 ausgesucht 
habe. Ich habe mich auch soweit eingelesen dass ich eine RTC benötige. 
Aber mit dem Rest komme ich ncoh nicht so recht weiter. Das ganze sollte 
so in dem Bereich von 50 Euro bleiben wenn möglich. Ist das realistsich 
oder eher nicht? Löten wäre für mich auch kein Problem. Könnt ihr mir 
bitte Tipps und Anregungen geben? Bin dankbar für alles und lernwillig 
:-)

Mit freundlichen Grüßen
Soeren

von Karl M. (Gast)


Lesenswert?

Soeren,

kannst Du programmieren ?
Und wenn ja in welcher Sprache und mit welchem können ?
0 Anfänger
:
10 Profi - Jobworker

von Rene Z. (renezimmermann)


Lesenswert?

Hallo,

ich würde einen Controller nehmen der
1. 6 x Ausgänge für das LCD
2. 3 x PWM Ausgänge für die Leuchten
3. 3 x Eingänge für Taster, man will die Uhr ja auch mal stellen

hat.

dann einlesen in
1. Tasteneingaben 
[link]https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Lesen_aus_Registern[/link]
2. PWM 
[link]https://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM[/link]
3. Uhr 
[link]https://www.mikrocontroller.net/articles/AVR-Tutorial:_Uhr[/link]
4. LCD 
[link]https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung[/link]

Der Rest ist dann nicht mehr so schwer.

Gruß Rene

: Bearbeitet durch User
von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

So wie sich das liest, ist es absolut möglich. Dagegen steht allerdings 
Deine Unkenntnis bezüglich Elektronik und Programmierung.
Falls Du eine Fertiglösung erwartest, muß ich Dich leider enttäuschen. 
Die wird es hier nicht geben.
Da mußt Du wohl selber ran, im übrigen, es gibt super Tutorials hier.
Viel Erfolg.

von Rene Z. (renezimmermann)


Lesenswert?


von Michael B. (laberkopp)


Lesenswert?

Soeren schrieb:
> Aber mit dem Rest komme ich ncoh nicht so recht weiter

http://heers.de/automatik-dimmer.html
http://plumladen.com/de/elektronik-und-technik/automatikdimmer-zeitschaltuhr.html

Soeren schrieb:
> Ist das realistsich oder eher nicht?

Na ja, wer nicht programmieren kann, hat mir uC ein Problem.

Daß der Arduino eine 12V (das wird eine mit eingebautem
Vorwiderstand für 12V sein) LED dimmt, ist einfach
1
+12V ---+-------|>|--+
2
        |       LED  |
3
  +-----------+      |
4
  |  Arduino  |-----|I IRF6201
5
  +-----------+GPIO  |S
6
        |            |
7
Masse --+------------+
Ein Arduino-Programm zu schreiben, daß 1 Stunde von 6 bis 7 hochdimmt, 
11 Stunden hell lässt 1 Stunde von 18 bis 19 runter dimmt, ist auch 
einfach und braucht nicht unbedingt eine RTC (real time clock)
1
int ledPin=5;
2
void setup()
3
{
4
   pinMode(ledPin,OUTPUT)
5
}
6
int msec=0,minute=0,hour=0;
7
unsigned long us,m0=0;
8
void loop()
9
{
10
   us=Micros()-m0;
11
   digitalWrite(ledPin,us<pwm);
12
   if(us>=1000) 
13
   { 
14
      m0+=1000;
15
      msec++;
16
      if(msec>=1000*60)
17
      {
18
         minute++;
19
         if(minute>=60)
20
         {
21
             hour++;
22
             minute-=60;
23
             if(hour>=24)
24
             { 
25
                 hour=0;
26
             }
27
             if(hour<6||hour>19) pwm=0;
28
             else if(hour<7) pwm=1000*minute/60;
29
             else if(hour<18) pwm=999;
30
             else pwm=(1000*(59-minute)/60;
31
         }
32
      }
33
   }
34
}
Aber die Einstellung dieser Uhrzeiten per Display und Tasten, also der 
Bedienkomfort, kostet Mühe.

von Soeren (Gast)


Lesenswert?

Guten Morgen,
danke erstmal für eure Antworten. Ich habe das Problem eher auf der 
Elektronik-Seite. Programmieren kann ich, allerdings nicht C sondern ich 
programmiere beruflich mit Codesys (meisstens ST). Aber ich denke da 
kann ich mich schon reinfinden. Ich könnte auch Steuerungen bei uns aus 
dem Lager nehmen aber die wären zu gross (Abmessungen) und etwas zu 
teurer, vor allem für eine Aquarienbeleuchtung :-).

Eine RTC hätte ich gerne für die Genauigkeit um dauerndes Nachstellen zu 
vermeiden. Hab schon mehrfach gelesen dass die DS3232 richtig gut sein 
soll. Stimmt ihr da zu?

Das mit dem Nachstellen der Zeit über das Display mit Tasten wäre 
natürlich super, hatte ich erstmal verworfen um das budget nicht zu 
sprengen.

Wenn ich ein 12V-Netzteil an das Arduino anschliesse, kann ich diese 
Spannung dann auch für die LED´s an den Ausgängen nutzen oder muss ich 
dafür ein extra Netzteil besorgen? Der Arduino läuft ja mit 5V und 
dementsprechend sind die I/O´s ja auch nur 5V oder? Oder

Also wenn ich jetzt mal alle Informationen zusammen nehme würde bislang 
folgendes an Hardware dabei herauskommen:
- 1x Arduino Uno
- 1x RTC
- 2x Mosfet für die PWM-Ausgänge
- 2x Relais für die 0/1-Schaltungen
- 1x Display mit Tasten

Wies sieht es mit Bibliotheken aus? Gibt es dazu gute und 
funktionierende?

von Soeren (Gast)


Lesenswert?

Achso vergessen, ich möchte auch gar kein fertiges Projekt oder eine 
fertige Zeitschaltuhr aus dem Laden :-).

Der Reiz ist ja gerade so etwas selbst zu entwickeln. Gerade weil ich 
sonst ja nur programmiere und die fertige Hardware immer nur auf dem 
Tisch liegen habe. Nebeneffekt ist einfach so etwas in Grundzügen auch 
mal zu verstehen. Und wenn man dazu Andere mit bereits vorhandenen 
Kenntnissen fragen kann, die einem etwas auf die Sprünge helfen, dann 
finde ich das Prima :-).

von Amateur (Gast)


Lesenswert?

Komisch, hier werden schon Programmfragmente publiziert, obwohl noch gar 
nicht feststeht, dass die Lampen dimmbar sind.
Darauf würde ich aber bei fertigen LED-Lampen nicht wetten...

von Soeren (Gast)


Lesenswert?

Da gebe ich dir recht: das habe ich noch nicht geprüft. Allerdings kann 
ich dann immernoch die PWM weglassen und normal einschalten. Aber wollte 
mich gerne erstmal über dir Komponenten schlau machen.

von Soeren (Gast)


Lesenswert?

So ich habe jetzt schon einiges gelesen über die Hardware und dazu auch 
ebay durchsucht. Dort gibt es ja schon wirklich viele Sachen zu echt 
guten Preisen. Dabei sind auch viele Nachbauten von  arduino uno und 
so...kann man die ruhig

Ich möchte gerne die Programmierung in C machen. Aber welches Programm 
soll ich dafür nehmen und woher bekomme ich es? Woher bekomme ich die 
Bibliotheken?

von Karl M. (Gast)


Lesenswert?

Hallo,

$Linux: mit apt-get installiert man avr-gcc binutil avrdude und andere 
Programme.

Das Paket heißt AVR GCC, das Programm für den ISP Programmer avrdude

von Karl M. (Gast)


Lesenswert?

Das was man als avr gcc libc erhält, ist hier dokumentiert:

http://www.nongnu.org/avr-libc/

von 1N 4. (1n4148)


Lesenswert?

Hab sowas auch mal angefangen aber bin dann über einen 30€ 5-Kanal 
Timer/Dimmer für Aquarien gestossen und hab's sein lassen.

https://www.amazon.de/niceeshop-DC12-24V-Multifunktion-Programmierbar-Controller/dp/B00OH9ENVW

Gabs vor kurzem für 29,95€ mit Prime Versand ;)

von Rene Z. (renezimmermann)


Lesenswert?

>Komisch, hier werden schon Programmfragmente publiziert, obwohl noch gar
>nicht feststeht, dass die Lampen dimmbar sind. Darauf würde ich aber bei
>fertigen LED-Lampen nicht wetten...

Was ist denn damit?
Geht PWM oder brauchst du regelbare Konstantstromquellen?

Library für RTC, Tasten und Lcd gibt es.

: Bearbeitet durch User
von Soeren (Gast)


Lesenswert?

Die beiden LED-Leuchten sind dimmbar.Bei den jeweiligen Herstellern gibt 
es sogar Module zu kaufen für einen hohen Preis.

Wo bekomme ich den die passenden Librarys her? Müssen die immer speziell 
für das jeweilge Bauteil sein oder gibt es allgemein gültige für z.b. 
alle RTC´s?

Arduino bietet eine eigene freie Software zum Programmieren. Kann man 
die gut nutzen?

von The D. (thedaz)


Lesenswert?

Soeren schrieb:
>...
> Arduino bietet eine eigene freie Software zum Programmieren. Kann man
> die gut nutzen?

Arduino ist besonders für Anfänger sehr gut geeignet. Jede Menge fertige 
libraries nehmen dir allerdings den direkten Kontakt zum uC.

von Wolfgang (Gast)


Lesenswert?

The D. schrieb:
> Jede Menge fertige libraries nehmen dir allerdings den direkten
> Kontakt zum uC.

Welche Library nimmt einem den Kontakt zum µC? Die Dinger sind nicht 
verschlüsselt und jeder Mensch, der in der Lage ist, einen Texteditor zu 
benutzen, kann gucken, was da passiert.

Die Libraries zwingen einen allerdings nicht dazu.

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.