Zum Hauptinhalt springen

RTC

Was dieses Beispiel zeigt​

Das Beispiel stellt Uhrzeit und Datum der integrierten Echtzeituhr (RTC) ein, liest die Uhrzeit anschließend zurück und zeigt sie an. Dabei wird der gesamte Bildschirm alle 10 Sekunden aktualisiert. Das Panel unterstützt kein partielles Update, deshalb füllt das Beispiel vor jedem Neuzeichnen das Feld hinter der Uhrzeit mit Weiß.

Beispielcode​

"""Use the onboard RTC."""

# Include all the required libraries
from inkplate7spectra import Inkplate
import time

# Create Inkplate object
inkplate = Inkplate()

# Initialize the display, needs to be called only once
inkplate.begin()

inkplate.set_text_size(3)

# This is how to set the RTC's time
# Arguments are hour, minute, seconds
inkplate.rtc_set_time(9, 39, 10)
# And this is the date
# Arguments are weekday, day in month, month and year
inkplate.rtc_set_date(2, 9, 2, 2026)

# Box that the time text is drawn into -- must be cleared before each redraw,
# since we redraw the whole screen every tick (this board has no partial-
# refresh support)
box_x, box_y, box_w, box_h = 100, 100, 300, 60

# Infinite loop
while True:
rtc_data = inkplate.rtc_get_data()

hour = rtc_data["hour"]
minute = rtc_data["minute"]
second = rtc_data["second"]

if hour < 10:
hour = "0" + str(hour)
if minute < 10:
minute = "0" + str(minute)
if second < 10:
second = "0" + str(second)

inkplate.fill_rect(box_x, box_y, box_w, box_h, inkplate.WHITE)
inkplate.set_cursor(box_x, box_y)
current_time = str(hour) + ":" + str(minute) + ":" + str(second)
inkplate.print(current_time)
inkplate.display()

# Let's wait 10 seconds
time.sleep(10)

Verwendete Funktionen​

Inkplate()returns Inkplate

Erstellt das Display-Objekt aus dem Modul inkplate7spectra.

ReturnsDas Display-Objekt.

inkplate.begin()returns bool

Richtet das Board einschließlich der RTC sowie einen weißen Framebuffer ein. Einmal aufrufen.

ReturnsTrue.

inkplate.set_text_size(s)returns None

Legt den Skalierungsfaktor des Textes fest, hier 3.

ReturnsNichts.

inkplate.rtc_set_time(rtc_hour, rtc_minute, rtc_second)returns None

Schreibt die Uhrzeit in die RTC.

ReturnsNichts.

inkplate.rtc_set_date(rtc_weekday, rtc_day, rtc_month, rtc_yr)returns None

Schreibt das Datum in die RTC und markiert es als gesetzt. rtc_yr ist das vollständige Jahr, zum Beispiel 2026.

ReturnsNichts.

inkplate.rtc_get_data()returns dict

Liest die RTC aus.

ReturnsEin Dictionary mit den Schlüsseln second, minute, hour, day, weekday, month und year (vollständiges Jahr).

inkplate.fill_rect(x, y, w, h, c)returns None

Zeichnet ein gefülltes Rechteck, hier in Weiß über der alten Uhrzeit.

ReturnsNichts.

inkplate.set_cursor(x, y)returns None

Legt fest, wo print() beginnt.

ReturnsNichts.

inkplate.print(text)returns None

Zeichnet Text an der Cursorposition in den Framebuffer.

ReturnsNichts.

inkplate.display(leave_on=False)returns None

Sendet den Framebuffer an das Panel und aktualisiert es.

ReturnsNichts.

Was Sie erwarten können​

Die Uhrzeit erscheint in Schwarz bei (100, 100), in dreifacher Basisgröße, im Format HH:MM:SS, beginnend mit 09:39:10. Der Bildschirm wird alle 10 Sekunden mit der neuen Uhrzeit aktualisiert. In der Shell wird nichts ausgegeben.

🔗Vollständiges Beispiel öffnen

examples/inkplate7spectra/rtc.py

→