ROBO Pro Coding I²C Blöcke von fischertechnik GitLab: ft_Controller_I2C
I²C Module | I²C Hardware, Software | I²C Quellcodedateien, Blöcke
I²C Programmierbeispiele im Überblick
qwiicmux_rx (RX Controller mit I²C Multiplexer, 10 I²C Module)
Im Beispiel werden 10 I²C Module vom RX Controller gesteuert:
- SparkFun Qwiic I²C Multiplexer
- SparkFun Qwiic LCD Display 16x2 Zeichen
- Grove OLED Display 128x128 Pixel
- Grove OLED Yellow&Blue Display 128x64 Pixel
- SparkFun Qwiic EEPROM
- Grove - High Precision RTC (Real Time Clock)
- SparkFun Qwiic OpenLog (Speicherkarte)
- SparkFun Qwiic Keypad - 12 Button
- SparkFun Qwiic GPIO
- SparkFun Qwiic Ultrasonic Distance Sensor - HC-SR04
Der I²C Multiplexer kann 8 I²C-Busse einzeln oder gemeinsam an und aus schalten. Gebraucht wird das unter anderem, um mehrere I²C Module mit gleicher I²C-Adresse gleichzeitig zu benutzen.
Der Multiplexer ermöglicht aber auch dem RX Controller mehr als 2 bis 3 I²C Module anzusteuern. Der Grund ist nicht bekannt, aber der RX Controller scheitert an zu vielen I²C-Adressen, nicht an zu vielen I²C Modulen.
Wenn mit dem Multiplexer immer nur ein Kanal mit 1 oder 2 I²C Modulen (= I²C-Adressen) zugeschaltet wird, kann der RX Controller 10 und mehr Module ansteuern. An der 3,3V Stromversorgung scheitert das nicht. Die Displays zeigen Datum und Uhrzeit an. Das große OLED Display zeigt abwechselnd eine Analoguhr und 16 Dateinamen von der Speicherkarte an. Aus dem EEPROM kommen die Pixel, damit OLED Zeichen anzeigen kann. GPIO liest 8 Tasten von der Modelleisenbahn Tastatur und zeigt diese binär und als ASCII Zeichen an. Mit dem Keypad kann die Uhr gestellt werden. Der Abstand vom Ultraschallsensor wird ebenfalls angezeigt.
- Quellcodedateien: i2cCode, oled, oled_geometrie, qwiiceeprom, qwiicgpio, qwiickeypad, qwiiclcd, qwiicmux, qwiicopenlog, rtc, s_qwiicultrasonic, qwiicmux_rx
- I²C Module: 10
- Laden von fischertechnik GitLab: I2C_Multiplexer
Zum Vergrößern auf das Bild klicken.
- Beispiel qmux_rx1 kann beim Programmstart aufgerufen werden.
- Projekt kann für TXT 4.0 Controller konvertiert werden.
- Programm läuft auch ohne Verbindung zur App ROBO Pro Coding.
Beim RX Controller muss I²C beim Programmstart initialisiert werden.
Block Programmstart
Im Hauptprogramm kann zur Kontrolle aller I²C Module jeder Kanal vom Multiplexer einzeln an geschaltet und i2c_scan aufgerufen werden.
- Quellcodedateien: zusätzlich advanced
- list_hex befindet sich in advanced, i2c_scan in i2cCode.
- Zur Ausgabe in Konsole muss der Controller mit der App ROBO Pro Coding gekoppelt sein.
- Die Anzeige der I²C Adresse 0x08 ist wahrscheinlich ein Fehler beim RX Controller.
Ausgabe in Konsole:
Start [‘0x70’]
0 [‘0x8’, ‘0x2a’, ‘0x70’]
1 [‘0x8’, ‘0x4b’, ‘0x70’]
2 [‘0x8’, ‘0x70’, ‘0x72’]
3 [‘0x8’, ‘0x27’, ‘0x70’]
4 [‘0x8’, ‘0x9’, ‘0x70’]
5 [‘0x8’, ‘0x3d’, ‘0x50’, ‘0x70’]
6 [‘0x8’, ‘0x51’, ‘0x70’]
7 [‘0x8’, ‘0x3c’, ‘0x70’]