Forum: Mikrocontroller und Digitale Elektronik Bitte um Kontrolle - Terrariumschaltung


von Manuel S. (doc-snyder)


Angehängte Dateien:

Lesenswert?

hallo

habe mir für dne anfang glaube cih ziemlich viel vorgenommen. Ich wär 
euch dankbar wenn ihr mal über den Schaltplan schaut und mir sagt  ob da 
fehler drin sind.

Danke euch.

von Lehrmann M. (ubimbo)


Lesenswert?

Manuel Schneider schrieb:
> hallo
>
> habe mir für dne anfang glaube cih ziemlich viel vorgenommen. Ich wär
> euch dankbar wenn ihr mal über den Schaltplan schaut und mir sagt  ob da
> fehler drin sind.

1. http://www.mikrocontroller.net/articles/Netiquette es ist eine 
zimeliche Unverschämtheit und Anzeichen für geringe Wertschätzung der 
Forenarbeit wenn man sich derart wenig Mühe bei Rechtschreibung, etc. 
gibt.

2. Ich glaube mich erinnern zu können, das wir dir das schonmal gesagt 
haben (oder?!): Die Entprellung der Tasten macht man in der Software. 
Glaube uns das doch bitte.

3. 32kHz für den Quarz sind für einen Anfänger in meinen Augen zu wenig. 
Den Uhrenquarz als Taktquelle für einen Timer verwenden. Min. 4MHz als 
Primärtakt.

4. Warum I2C Pegelwandler? DOGM-Display und Vcc auf 3,3V absenken. 
http://www.mikrocontroller.net/articles/DOGMxxx_LCD_Routinen
Spart zusätzlich Spannungwandler + Pegelwandler

von Vuvuzelatus (Gast)


Lesenswert?

Weg mit den Tasten-Schmitttriggereien. Sowas ist nur für Leute, die 
zeigen wollen, dass sie nicht wissen, wie man per Software entprellt. Es 
ist Null Problem, Tasten direkt an einen µC zu hängen.

http://www.mikrocontroller.net/articles/Entprellung

von Matthias (Gast)


Lesenswert?

Wie soll man die Schaltung auf Richtigkeit durchsehen, wenn bei div. 
ICs/Baugruppen (I2C-Pegelwandler, LED-Beleuchtung, LCD-Display) keine 
Typenbezeichnung dransteht? Das Hühnerfutter bei den Köpfen hatten wir 
vor ein paar Tagen ja schon.

von Uhu U. (uhu)


Lesenswert?

Vuvuzelatus schrieb:
> Es ist Null Problem, Tasten direkt an einen µC zu hängen.

Bei 32 kHz Systemtakt schon...

von Lehrmann M. (ubimbo)


Lesenswert?

Uhu Uhuhu schrieb:
> Vuvuzelatus schrieb:
>> Es ist Null Problem, Tasten direkt an einen µC zu hängen.
>
> Bei 32 kHz Systemtakt schon...

Achwas das ist doch Unsinn. Für so eine Anwendung reicht eine 
Einfachst-Entprellung mittels 20-25ms Delay aus ... Das einzige Problem 
wird das LCD bei 32kHz wenn man da nicht genügend Erfahrung hat.

von Uhu U. (uhu)


Lesenswert?

Lehrmann Michael schrieb:
> Achwas das ist doch Unsinn.

Man muß eben einen Unsinn mit einem anderen kompensieren ;-)

von Manuel S. (doc-snyder)


Lesenswert?

Okay. Momäääänt, moment! Mir ist da grad, wenn ich mich nicht irre, ein 
riesen Fehler aufgefallen. Systemclock sollte eig 16Mhz sein. Aber 
offensichtlich habe ich das DS nicht genügend studiert. TOSC ist glaube 
ich das Stichwort. Aber mehr kann ich dazu im Moment auch nicht sagen. 
Ich muss selbst nachschaun. Wollt mich nur mal meldent damit ihr nicht 
komplett im Dunkeln wühlt^^.

Edit:
Auslöser war also der Abschnitt Low-frequency Crystal Oscillator im DS:
"To use a 32.768 kHz watch crystal as the clock *source* for *the* 
device, the Low-frequency Crystal Oscillator must be selected by 
setting the CKSEL fuses to “1001”. The crystal should be connected as 
shown in Figure 12."
Und in Figure 12 steht XTAL. Naja ich hab nicht daran geglaubt das 
tatsächlich jemand den Mega mit 32KHz laufen lassen will und dachte mir, 
dass der Mega den XTAL dann als asynchronen Zeitgeber nutzt. Mein 
Fehler.

von Manuel S. (doc-snyder)


Angehängte Dateien:

Lesenswert?

Jetz muss ich noch kurz was zu den vorigen posts sagen:
> 1. http://www.mikrocontroller.net/articles/Netiquette es ist eine
> zimeliche Unverschämtheit und Anzeichen für geringe Wertschätzung der
> Forenarbeit wenn man sich derart wenig Mühe bei Rechtschreibung, etc.
> gibt.

Hast Recht war nicht gerade höflich. Ich hatte es etwas eilig.

> 2. Ich glaube mich erinnern zu können, das wir dir das schonmal gesagt
> haben (oder?!): Die Entprellung der Tasten macht man in der Software.
> Glaube uns das doch bitte.

Ja aber wenn ich es doch schon in Hardware gelöst habe dann muss ich 
mich nicht mehr drum kümmern. Dazu muss ich noch sagen, dass, solange 
auf der Europlatine noch Platz ist, finde ich das die elegantere Lösung.

> 3. 32kHz für den Quarz sind für einen Anfänger in meinen Augen zu wenig.
> Den Uhrenquarz als Taktquelle für einen Timer verwenden. Min. 4MHz als
> Primärtakt.

Wie erwähnt war das mein Fehler. Natürlich sollte der Systemtakt nicht 
auf 32KHz laufen.

> 4. Warum I2C Pegelwandler? DOGM-Display und Vcc auf 3,3V absenken.
> http://www.mikrocontroller.net/articles/DOGMxxx_LCD_Routinen
> Spart zusätzlich Spannungwandler + Pegelwandler

Ja, aber 1. bin ich dessen nicht mächtig oder es kostet mich wieder ca 
20 - 30 Stunden mehr. Und 2. bekomme ich den Pegelwandler geschenkt - 
find ich ein nettes Feature - und auf den Spannungsregler kann ich ja 
nicht verzichten, weil die 5V brauche ich ja zumindest für das 
Backlight. DS:
http://www.yaoyu-lcm.com/english/admin/Software/20086171462569145.pdf . 
7,5V brauche weil vor dem TLC je 2 Leds in Reihe hängen. 3. mit 3,3V 
komme ihc nicht auf 16MHz



Also gut ich will eigentlich 16MHz nutzen, nur bisher dachte ich noch 
dass der Mega intern 16 Mhz macht. Allerdings habe ich jetz gelesen, 
dass der halt max 8MHz macht.

Kann ich da jetz jeden x-beliebigen Quarz nutzen? 
http://www.pollin.de/shop/t/ODE4OTA5OTk-/Bauelemente_Bauteile/Passive_Bauelemente/Quarze_Oszillatoren/Quarze_und_Quarzoszillatoren.html?ts=7 
z.B.? aber da ist kein Datenblatt dabei... Sind die Kondesatoren die ich 
brauche nicht vom Quarz abhängig? Ohne DS bin ich da ja jetz ziemlich 
angeschmiert...

Muss ich überhaupt einen Uhrenquarz verbauen? Ich habe in einem anderen 
Thread gelesen, dass man eine Uhr mit dem Systemtakt genauer hinbekommt. 
Dem kann ich aber nur bedingt glauben schenken, da der 16MHz-Quarz ca 
50ppm, (habe ich aus einem anderen DS) der Uhrenquarz aber nur 10ppm 
Fehlerrate hat und dazu noch mit einer niedrigeren frequenz läuft.

von Chris (Gast)


Lesenswert?

Manuel Schneider schrieb:
> Muss ich überhaupt einen Uhrenquarz verbauen? Ich habe in einem anderen
> Thread gelesen, dass man eine Uhr mit dem Systemtakt genauer hinbekommt.
> Dem kann ich aber nur bedingt glauben schenken, da der 16MHz-Quarz ca
> 50ppm, (habe ich aus einem anderen DS) der Uhrenquarz aber nur 10ppm
> Fehlerrate hat und dazu noch mit einer niedrigeren frequenz läuft.

Nö, Du hast doch einen DCF-Empfänger vorgesehen. Der reicht zusammen mit 
dem quarzbasierten Systemtakt völlig aus.
http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC

von Tip (Gast)


Lesenswert?

Manuel Schneider schrieb:
> Ja aber wenn ich es doch schon in Hardware gelöst habe dann muss ich
> mich nicht mehr drum kümmern. Dazu muss ich noch sagen, dass, solange
> auf der Europlatine noch Platz ist, finde ich das die elegantere Lösung.

Wenn du unbedingt die Europlatine auffüllen mußt, hast du natürlich 
Recht. Andererseits gibt es die tollsten fertigen Entprellroutinen, so 
dass du dir die Zeit zum Auf-/Einlöten von dem ganzen Tüddelkram einfach 
sparen könntest.

von Manuel S. (doc-snyder)


Lesenswert?

nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die 
Displaybeleuchtung vergessen habe. I_max ist 480mA.

Meint ihr es ist okay wenn ich die Anode direkt an 5V anschließe und die 
Kathode über einen BC818 gegen Masse schalte?

Ich tu mich schwer Trasistoren zu verstehen also wär es nett wenn ich 
mir sagt ob folgendes richtig ist.

Dem DS http://www.pollin.de/shop/downloads/D130821D.PDF entnehme ich 
dass (zumindest für den BC817) bei einem Collector Current (zu 
schaltender Strom?) von 480 mA Current Gain (Verstärkungsfaktor?) noch 
ca 150x ist.
Also brauche ich ca 3 mA zum schalten, oder?
Nach URI sind das bei 5V 1,6kOhm an der Base. Richtig?

Hat ein Transistor auch so etwas wie einen Widerstand den ich bei 
berechnen des Schaltstromes berücksichtigen muss?

von aaaaa (Gast)


Lesenswert?

BITTE DATENBLATT LESEN!
Wenn die Beleuchtung eine LED ist geht sie vermutlich kaputt, wenn du 
sie zwischen VCC, Transistor, Masse hängst

von Jobst M. (jobstens-de)


Lesenswert?

Manuel Schneider schrieb:
> nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die
> Displaybeleuchtung vergessen habe. I_max ist 480mA.
>
> Meint ihr es ist okay wenn ich die Anode direkt an 5V anschließe und die
> Kathode über einen BC818 gegen Masse schalte?

Wieviel Spannung benötigt das Display denn dabei? Wieviel bleibt dann am 
Transistor über? Welche Leistung bleibt am Transistor dabei hängen? 
Verträgt der das?


> Ich tu mich schwer Trasistoren zu verstehen also wär es nett wenn ich
> mir sagt ob folgendes richtig ist.
>
> Dem DS http://www.pollin.de/shop/downloads/D130821D.PDF entnehme ich
> dass (zumindest für den BC817) bei einem Collector Current (zu
> schaltender Strom?) von 480 mA Current Gain (Verstärkungsfaktor?) noch
> ca 150x ist.
> Also brauche ich ca 3 mA zum schalten, oder?

Ja, 3.2mA - solange der Transistor kalt bleibt.

> Nach URI sind das bei 5V 1,6kOhm an der Base. Richtig?

1,3kΩ


> Hat ein Transistor auch so etwas wie einen Widerstand den ich bei
> berechnen des Schaltstromes berücksichtigen muss?

Naja, wenn Du einen festen Strom definierst, ist der Widerstand recht 
hoch.
Spannungsquellen sind niederohmig.


Schalte zum Backlight lieber einen passenden Widerstand in Reihe, den 
Transistor dazu und diesen dann voll durchsteuern. Mit 1kΩ oder weniger 
an der Basis.


aaaaa schrieb:
> Wenn die Beleuchtung eine LED ist geht sie vermutlich kaputt, wenn du
> sie zwischen VCC, Transistor, Masse hängst

Nicht wenn man den Transistor als Stromquelle betreibt. Allerdings wird 
das, so wie er sich das dachte nichts.


Gruß

Jobst

von Chris (Gast)


Lesenswert?

Manuel Schneider schrieb:
> nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die
> Displaybeleuchtung vergessen habe. I_max ist 480mA.
Sicher? Hört sich etwas viel an.

Manuel Schneider schrieb:
> Meint ihr es ist okay wenn ich die Anode direkt an 5V anschließe und die
> Kathode über einen BC818 gegen Masse schalte?
Auf gar keinen Fall. Verwende einen Vorwiderstand. Vorwärtsspannung 
(auch Durchlassspannung genannt) des Display aus dem Datenblatt 
ermitteln und dann diesen berechnen.

Und erarbeite dir bitte mal bitte die nötigen Grundlagen:
http://www.mikrocontroller.net/articles/LED
http://www.elektronik-kompendium.de/sites/bau/0201291.htm
http://www.elektronik-kompendium.de/sites/slt/0208031.htm

von Tip (Gast)


Lesenswert?

Manuel Schneider schrieb:
> nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die
> Displaybeleuchtung vergessen habe. I_max ist 480mA.

Wo hast du diesen Wert für I_max her? Das ist doch keine Heizung. Im 
ganzen Thread taucht leider keine Angabe zum Display Typ auf. Die 
üblichen 2x16 LCDs haben LEDs als Hintergrundbeleuchtung mit typisch 20 
mA IF. Schon ein paar mA reichen normalerweise, d.h. das geht ohne 
Treiber. Die brauchen unbedingt einen Vorwiderstand, evtl. ist der 
bereits auf dem Display-Modul vorgesehen/vorhanden oder mit 0 Ohm 
bestückt. Datenblatt lesen und nachmessen! Das LCD kannst du 
wahrscheinlich auch im 4-Bit Modus betreiben und dann noch vier I/O-Pins 
am Prozessor sparen.
MfG

von Manuel S. (doc-snyder)


Lesenswert?

Ist die Verschaltung allgemein okay so?

> Wieviel Spannung benötigt das Display denn dabei? Wieviel bleibt dann am
> Transistor über? Welche Leistung bleibt am Transistor dabei hängen?
> Verträgt der das?
Ich werde aus dem Datenblatt( 
http://www.yaoyu-lcm.com/english/admin/Software/20086171462569145.pdf ) 
nicht schlau.

Power supply for backlight 3.0 V
Forward Current 480mA
Forward Voltage 4.2V (typ.)

Was heißt das für mich?


>Nicht wenn man den Transistor als Stromquelle betreibt. Allerdings wird
>das, so wie er sich das dachte nichts.

Was ist falsch daran. Allgemein die Schaltung oder fehlen irgendwo 
Bauteile. Also soll der Transistor vor das LCD, oder wie? So dass ich 
die Stromzufuhr regle und nicht das abfließen?

von Manuel S. (doc-snyder)


Angehängte Dateien:

Lesenswert?

Sorry Bild vergessen. Bild einfügen geht beim bearbeiten nicht.

von Manuel S. (doc-snyder)


Lesenswert?

Habe für dieses Thema mal einen eigenen Thread aufgemacht.
Beitrag "LCD Backlight schalten"

von Gero N. (geronimo76)


Lesenswert?

Werd auch mal meinen Senf dazu geben, da ich momentan an einem 
vergleichbaren Projekt arbeite.

TIPP 1:
16Fxxxx Pics sind zu klein !!! da reicht bei der komplexität die Stack 
nicht aus. das musste ich leider schmerzvoll lernen

TIPP 2:
Die Tasten sollte man per PortB-Change interrupt abfangen... Habe das 
vorher einfach per PortPin Status abfrage innerhalb der main-schleife 
gemacht, das bei steigendem Quellcode und Berechnungsaufwand dazu 
führte, das die taste bis zu 0,5s gedrückt werden musste, bis was 
passiert

TIPP 3:
wenn du komfort haben möchtest, dann kann man noch einen DCF77 empfänger 
anschließen, um die akt. Zeit empfangen und nutzen zu können. Ich hab 
das z.b. um licht und heizung temp & zeitgesteuert schalten zu lassen... 
in diesem fall solltest du mit dem gedanken spielen, einen 40pin'er zu 
nutzen, um freiraum bei der gestaltung zu haben

TIPP 4: Taktquelle von 20MHz ... je komplexer das ganze wird, desto 
langsamer wird das teil in der abarbeitung

..............................................
Mein Projekt sieht momentan so aus.
- DCD77 Empfänger für Uhtzeit
- 4 Tasten für Eingabe (schnelltasten /menuführung)
- 3 seperate Temp.Sensoren um an 3. verschied Orten messen zu können
- LCD Display (4x20) (grafik wäre mir lieber) um Temp und zeit anzeigen 
zu lassen
- 5 Ausgänge für Lampen/Thermometer => Über SolidState Relais
- LCD Backlight Steuerung (zeitabhängig)
- Configuration der Schaltzeiten und Schalt-Temp's per Software (Menu)
- Speicherung der Settings im Internen eeprom
- Datenlogger für Temps (ein sensor = Außentemp)

von Manuel S. (doc-snyder)


Lesenswert?

> TIPP 1:
> 16Fxxxx Pics sind zu klein !!! da reicht bei der komplexität die Stack
> nicht aus. das musste ich leider schmerzvoll lernen

Hmm kenne die Daten nicht und kann deshalb nicht vergleichen. Ich hoffe 
der Mega32 reicht aus. Ich dachte anfangs er sei zu groß :-D

> TIPP 2:
> Die Tasten sollte man per PortB-Change interrupt abfangen... Habe das
> vorher einfach per PortPin Status abfrage innerhalb der main-schleife
> gemacht, das bei steigendem Quellcode und Berechnungsaufwand dazu
> führte, das die taste bis zu 0,5s gedrückt werden musste, bis was
> passiert

Ich habe gerade mal die Vektoren angeschaut bei AVR gibt es sowas 
scheinbar nicht. Aber ich habe dei Knöpfe extra auf die höherwertiuegn 
Bits gelegt damit ich nachher nur noch abfragen muss, ob der PORT > 32 
ist.

> TIPP 3:
> wenn du komfort haben möchtest, dann kann man noch einen DCF77 empfänger
> anschließen, um die akt. Zeit empfangen und nutzen zu können. Ich hab
> das z.b. um licht und heizung temp & zeitgesteuert schalten zu lassen...
> in diesem fall solltest du mit dem gedanken spielen, einen 40pin'er zu
> nutzen, um freiraum bei der gestaltung zu haben

DCF ist geplant:-D.

> TIPP 4: Taktquelle von 20MHz ... je komplexer das ganze wird, desto
> langsamer wird das teil in der abarbeitung

ich kann leider 16MHz max. Aber ich hoffe es reicht. Ich habe auch nicht 
all zu viel rechenintensiven Code. Die Sensoren können ohnehin maximal 2 
Mal in der Sekund messen wegen der Eigenerhitzung.

> Mein Projekt sieht momentan so aus.
> - DCD77 Empfänger für Uhtzeit
> - 4 Tasten für Eingabe (schnelltasten /menuführung)
> - 3 seperate Temp.Sensoren um an 3. verschied Orten messen zu können
> - LCD Display (4x20) (grafik wäre mir lieber) um Temp und zeit anzeigen
> zu lassen
> - 5 Ausgänge für Lampen/Thermometer => Über SolidState Relais
> - LCD Backlight Steuerung (zeitabhängig)
> - Configuration der Schaltzeiten und Schalt-Temp's per Software (Menu)
> - Speicherung der Settings im Internen eeprom
> - Datenlogger für Temps (ein sensor = Außentemp)

Witzig, genau meine Peripherie! Aber cih muss ganz erlich sagen ich kann 
mir nicht vorstellen, dass so eine Messstation wirklich so viel 
Ressourcen frisst. Schau mal ob sich dein Code optimieren lässt.
Auf die schnelle fällt mir da I²C-Bus ein. Die Schnipsel im I-Net kannst 
du vergessen. Die verbringen 99% mit Busy-Wating. Ich habe mir eine 
eigene Interrupt gesteuerte I²C Routine geschrieben und bin pro Messung 
von 66ms (Ziemlich genau das was der SHT25 für die Messung braucht) auf 
1 ms effektiv genutzte Zeit, die ich in der Messroutine verbringe, 
gekommen.

Zeitrauber und auch noch Deadlockfalle ist halt:
1
while(!TWINT){
2
    ;
3
}
Kein Spaß genau das stand in jedem TWI/I²C-Schnipsel den ich fand. Für 
mich der Coding-Fauxpas schlechthin.

grüße

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.