Forum: Projekte & Code LED Uhr Thermometer RTC DS1307 TWI I2C DS18B20 DS18s20 DS1822 1wire ATmega8 1MHz Assembler


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ein kleines Beispiel einer Uhr mit Thermometer.

Kurz nach Programmstart wird die aktuelle Uhrzeit aus dem RTC geladen

und der Familycode des Sensors angezeigt,

dannach richtet sich das Temperatur-Berechnungsverfahren.

Beispiel: "FA:10" steht für einen DS18s20 -> Familycode x10

Da der AVR ohne Quarz, sondern nur mit seinem ungenauen 
RC-Generatorläuft, ist es besser, wenn die Zeit 1x pro Stunde erneut aus 
dem RTC geladen wird.

Minütlich wechselt die Anzeige zwischen Zeit und Temperatur.

Mit den beiden Tasten lässt sich die Uhrzeit einstellen, bei jedem 
Tastendruck ändert sich der Minuten bzw. Stundenwert.

Die neu eingestellte Zeit wird sofort in den RTC geschrieben und zur 
Kontrolle nochmals ausgelesen und angezeigt.

Blinkt die gelbe LED am RTC im Sekundentakt, dann war die 
RTC-Programmierung erfolgreich.

Die Helligkeit der LEDs ist für meine Anwendung ausreichend, steht in 
einer dunklen Ecke, bei Bedarf können diverse Treiber verwendet werden.

Nach der Temperaturmessung wird sofort der 1wire Pin gegen LOW gezogen, 
um eine unnötige Erwärmung des Sensors zu unterdrücken.

Zwei Testausgänge stehen zur Verfügung 1kHz und 500kHz.


Stromaufnahme: ca. 40mA

Bernhard

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Bernhard S. schrieb:
> Die Helligkeit der LEDs ist für meine Anwendung ausreichend, steht in
> einer dunklen Ecke, bei Bedarf können diverse Treiber verwendet werden.

Tja, also Faulheit
Beitrag "Re: 2x3 LED Strom Spannung einfache Kalibrierung Justierung per Software - ATmega8 Assembler"

Beitrag #6497516 wurde von einem Moderator gelöscht.
von Bauform B. (bauformb)


Lesenswert?

Bernhard S. schrieb:
> Da der AVR ohne Quarz, sondern nur mit seinem ungenauen
> RC-Generatorläuft, ist es besser, wenn die Zeit 1x pro Stunde erneut aus
> dem RTC geladen wird.

Du könntest den Sekundentakt von der RTC über PD0 einlesen und die 
Software-Uhr damit betreiben (bzw. synchronisieren). Statt der 
Sekundentakt-LED könnte dann ein Dezimalpunkt blinken.

Noch besser: wenn du zwei von den 7-Segment-Anzeigen um 180 Grad gedreht 
einbaust, dann sehen die mittleren Dezimalpunkte fast wie ein 
Doppelpunkt aus.

Nur der Form halber: die BAT48 verbraucht im Sommer mehr Strom als die 
RTC. Da du sowieso 5 Volt runter teilst, musst du an der Stelle nicht 
sparen und kannst eine 1N4148 nehmen.

von Bernhard S. (bernhard)


Lesenswert?

> Sekundentakt von der RTC über PD0 einlesen...

> sparen und kannst eine 1N4148...

Danke "Bauform B.", sehr gute Tipps, Daumen hoch :-)


> Tja, also Faulheit

Nein, ich nenne es ökonomisch, Greta würde sich freuen.

Ach übrigens, wir dürfen nie nachdenken, wir müssen vordenken ^^

Wenn ich diese LEDs zu hell betreibe, steigen nicht nur die Stromkosten,

sondern meine bessere Hälfte würde das Blendwerk fürchterlich stören.

: Bearbeitet durch User
von Bernhard S. (bernhard)


Lesenswert?

Jetzt muss ich auch noch die Versorgungsspannung etwas drosseln,

die 7-Segmentanzeigen sind noch zu hell in der dunklen Ecke,

es gab Beschwerden und das kurz vor Weihnachten.

von MaWin (Gast)


Lesenswert?

Bernhard S. schrieb:
> Jetzt muss ich auch noch die Versorgungsspannung etwas drosseln,

da wird ja der Helligkeitsunterschied der 1 und 8 bei 18.00 Uhr noch 
krasser,

Das macht man natürlich nicht auf diese Art, sondern in dem die AN-Zeit 
während des Multiplexens kürzer gemacht wird zu Gunsten einer längeren 
AUS Zeit während des Umschaltens.

Elegant programmiert durch einen Timer dessen Overflow-Interrupt das 
Multiplexen und Compare-Interrupt das blanking steuert.

von Ozvald K. (Gast)


Lesenswert?

Bauform B. schrieb:
> Bernhard S. schrieb:
>> Da der AVR ohne Quarz, sondern nur mit seinem ungenauen
>> RC-Generatorläuft, ist es besser, wenn die Zeit 1x pro Stunde erneut aus
>> dem RTC geladen wird.
>
> Du könntest den Sekundentakt von der RTC über PD0 einlesen und die
> Software-Uhr damit betreiben (bzw. synchronisieren). Statt der
> Sekundentakt-LED könnte dann ein Dezimalpunkt blinken.

Ja, entweder so wie Bauform B es vorgeschlagen hat, oder konfiguriere 
die Pins so um, dass INT0 oder INT1 frei wird, dann kannst du auch 
Interrupt gesteuert die RTC einlesen. Interrupt auf fallende Flanke 
einstellen und mit SQW/OUT der RTC verbinden. So habe ich das gemacht.

von Bernhard S. (bernhard)


Lesenswert?

> INT0 oder INT1 frei wird, dann kannst du auch
> Interrupt gesteuert die RTC einlesen

Das wäre auch eine mögliche Variante.

Oder auf einen freien Pin den Sekundentakt legen und diesen Pin mit dem 
1kHz Timer sampeln ;-)

> 1 und 8 bei 18.00 Uhr noch krasser

Sorry, aber ein Helligkeitsunterschied ist nicht erkennbar


> Das macht man natürlich nicht auf diese Art

Warum auf dieser Art nicht? Ist es verboten? Ist wieder alles 
schrecklich, nur weil Du es wieder nicht verstehst?


Lieber Moderator, git es irgendeine Möglichkeit gewisse User hier im 
Forum zu blocken; und zwar genau diese, welche gern alles beschmutzen 
und selber nichts vernüftiges vollbringen. Sogenannte 
Beitrags-Wichsmaschinen.

Danke

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Beispel einer batteriebetriebenen LED-Uhr

mit Thermo- und Hygrometer TWI HYT939.

Nach Betätigung der Taste wird zuerst die aktuelle Uhrzeit angezeigt und

nach einigen Sekunden die Temperatur, die Luftfeuchte und die

Batteriespannung.

: Bearbeitet durch User
von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

...das fertige Gerät, Bilder und ein kleines Video...

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Oberaffengeiles Gehäuse!

Wenn jetzt der Taster noch unsichtbar wäre... Ein kapazitiver 
Touch-Sensor muss doch nicht direkt berührt werden?

von Manfred (Gast)


Lesenswert?

Bauform B. schrieb:
> Wenn jetzt der Taster noch ..
.. anstatt aus Pollin-Ostzonenresten ein flacher aus Metall wäre, sähe 
das perfekt aus.

> Ein kapazitiver Touch-Sensor muss doch nicht direkt berührt werden?
Muss und will man nicht unbedingt haben.

https://www.pollin.de/p/drucktaster-pbs-28b-2-schliesser-420567
https://www.pollin.de/p/drucktaster-oe-18-mm-30-v-3-a-421222

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.