{"id":2039,"date":"2025-12-24T22:09:06","date_gmt":"2025-12-24T21:09:06","guid":{"rendered":"https:\/\/www.g-heinrichs.de\/wordpress\/?page_id=2039"},"modified":"2026-01-11T15:30:34","modified_gmt":"2026-01-11T14:30:34","slug":"das-i2c-bus-system","status":"publish","type":"page","link":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/informatik\/das-i2c-bus-system\/","title":{"rendered":"Das I2C-Bus-System"},"content":{"rendered":"<h3><strong>Aufbau, Funktionsweise und <\/strong><strong>Micropython-Programmierung<\/strong><\/h3>\n<h3><strong>Eine Einf\u00fchrung mit dem TTGO T-Display\u00a0<\/strong><strong>und den I2C-Modulen\u00a0PCF8574 und LM75A\/B<\/strong><\/h3>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2034 aligncenter\" src=\"https:\/\/www.g-heinrichs.de\/wordpress\/wp-content\/uploads\/2025\/12\/i2c_bus_titelbild.jpg\" alt=\"\" width=\"441\" height=\"279\" srcset=\"https:\/\/www.g-heinrichs.de\/wordpress\/wp-content\/uploads\/2025\/12\/i2c_bus_titelbild.jpg 1401w, https:\/\/www.g-heinrichs.de\/wordpress\/wp-content\/uploads\/2025\/12\/i2c_bus_titelbild-300x190.jpg 300w, https:\/\/www.g-heinrichs.de\/wordpress\/wp-content\/uploads\/2025\/12\/i2c_bus_titelbild-1024x648.jpg 1024w, https:\/\/www.g-heinrichs.de\/wordpress\/wp-content\/uploads\/2025\/12\/i2c_bus_titelbild-768x486.jpg 768w\" sizes=\"(max-width: 441px) 100vw, 441px\" \/><\/div>\n<div>\u00a0<\/div>\n<div>In diesem Skript geht es nicht darum, m\u00f6glichst viele verschiedene I2C-Projekte zu pr\u00e4sentieren. Vielmehr m\u00f6chte ich die Funktionsweise des I2C-Busses an Hand einiger typischer Beispiele ausf\u00fchrlich erkl\u00e4ren und auf dieser Grundlage eine Reihe von Micropython-Programmen f\u00fcr ESP32-Mikrocontroller (z. B. TTGO T-Display) entwickeln. Ich beginne mit einer Darstellung des I2C-Busses und des I2C-Bus-Protokolls.\u00a0 Auf dieser Grundlage werde ich entsprechende Programme f\u00fcr die Daten\u00fcbertragung vorstellen. Bei diesen Programmen greifen wir zun\u00e4chst nicht auf fertige Micropython-Funktionen zur\u00fcck; stattdessen kontrollieren wir die Zust\u00e4nde der Signal-Leitungen direkt \u00fcber das Setzen und Lesen der Aus- bzw.\u00a0 Eing\u00e4nge (Bit-Banging).<\/div>\n<div><span style=\"color: #ffffff;\">x<\/span><\/div>\n<p>Danach werden wir uns intensiv mit den Modulen PCF8574 (8-Bit-Expander) und LM75A bzw. LM75B (mehr als nur Temperatur-Sensoren) besch\u00e4ftigen. Auch hier werden wir immer wieder hinter die Kulissen schauen: So werden wir uns u. A. mit der Darstellung von negativen Zahlen im Zweiersystem besch\u00e4ftigen und die Funktionsweise von I2C-Micropython-Methoden mit Hilfe von Signal-Diagrammen analysieren.<\/p>\n<p><strong>Inhaltsverzeichnis<\/strong><\/p>\n<p>1. Grundlagen<br \/>1.1 Der I2C-Datenbus<br \/>1.2 Das I2C-Bus-Protokoll (\u00dcberblick)<br \/>1.3 Das I2C-Bus\u2013Protokoll genauer betrachtet<br \/>1.4 Aufzeichnen und Analyse einer I2C-Daten\u00fcbertragung<\/p>\n<p>2. I2C-Master und -Slave programmieren<br \/>2.1 Bit-Banging-Programm f\u00fcr einen einfachen Master<br \/>2.2 Bit-Banging-Programm f\u00fcr einen einfachen Slave<br \/>2.3 Verkabelung und Tests<br \/>2.4 Bew\u00e4hrungsprobe: Bit-Banging-Master steuert PCF8574-Modul<\/p>\n<p>3. Die I2C-Klasse von Micropython (ESP32)<br \/>3.1 Umgang mit Bytes-Typen<br \/>3.2 Noch einmal den PCF8574 steuern &#8211; diesmal mit der I2C-Klasse<br \/>3.3 Port-Zustand beim PCF8574 lesen<br \/>3.4 LM75-Modul: Temperaturwerte lesen (1 Byte, 2 Bytes)<\/p>\n<p>4. Noch mehr zum LM75: Mit verschiedenen Registern arbeiten<br \/>4.1 Register: schreiben und lesen<br \/>4.2 Die I2C-Methoden readfrom_mem und writeto_mem<br \/>4.3 Der OS Compare Mode<br \/>4.4 Ein einfacher Thermostat<\/p>\n<div>Beitr\u00e4ge zu weiteren I2C-Modulen<\/div>\n<div>Quellen<span style=\"color: #ffffff;\">x<\/span><\/div>\n<div><span style=\"color: #ffffff;\">x<\/span><\/div>\n<h4>Materialien: Skript (ca. 30 Seiten), Datasheets, Programme und Videos\u00a0 <div class=\"sdm_download_button_box_default\"><div class=\"sdm_download_link\"><a href=\"https:\/\/www.g-heinrichs.de\/wordpress\/?sdm_process_download=1&download_id=2096\" class=\"sdm_download green\" title=\"I2C-Materialien\" >Jetzt herunterladen!<\/a><\/div><\/div><\/h4>\n<p>\u00a0<\/p>\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/www.g-heinrichs.de\/wordpress\/wp-content\/uploads\/2026\/01\/LM75_OS_3c.mp4\"><\/video><\/figure><div class=\"wp-block-media-text__content\">\n<p><strong>Thermostat mit LM75B<\/strong><\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aufbau, Funktionsweise und Micropython-Programmierung Eine Einf\u00fchrung mit dem TTGO T-Display\u00a0und den I2C-Modulen\u00a0PCF8574 und LM75A\/B \u00a0 In diesem Skript geht es nicht darum, m\u00f6glichst viele verschiedene I2C-Projekte zu pr\u00e4sentieren. Vielmehr m\u00f6chte ich die Funktionsweise des I2C-Busses an Hand einiger typischer Beispiele ausf\u00fchrlich erkl\u00e4ren und auf dieser Grundlage eine Reihe von Micropython-Programmen f\u00fcr ESP32-Mikrocontroller (z. B. TTGO <span class=\"ellipsis\">&hellip;<\/span> <span class=\"more-link-wrap\"><a href=\"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/informatik\/das-i2c-bus-system\/\" class=\"more-link\"><span>Read More &rarr;<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":190,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/2039"}],"collection":[{"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=2039"}],"version-history":[{"count":46,"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/2039\/revisions"}],"predecessor-version":[{"id":2125,"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/2039\/revisions\/2125"}],"up":[{"embeddable":true,"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/190"}],"wp:attachment":[{"href":"https:\/\/www.g-heinrichs.de\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=2039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}