LCD Modul 16x02 I2C: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(42 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:


== Einleitung ==
== Einleitung ==
Die Inertiale Messeinheit (Engl. intertial measurement unit, IMU) ist ein 9-Achsen-Positionserkennungsmodul, das die folgenden Sensoren kombiniert:
Das I<sup>2</sup>C 1602 LCD Modul besteht aus einem zweizeiligen Display mit je 16 Zeichen pro Zeile und einem I<sup>2</sup>C Modul HW-061 auf der Rückseite. I<sup>2</sup>C benötigt einen Takt- (SCL) und eine Datenverbindung (SDA) sowie +5VDC und GND. Über den [https://de.wikipedia.org/wiki/I%C2%B2C I<sup>2</sup>C-Bus] kann das Display mit nur 4 Anschlusskabeln betrieben werden.
* 3-Achsen-Gyroskop
* 3-Achsen-Beschleunigungssensor
* 3-Achsen-Magnetfeldsensor (Erdmagnetfeld/Kompass)
 
Ein Digital Motion Processor (DMP) ist zudem in einer winzigen Gehäusegröße von nur 3x3x1&thinsp;mm verbaut. Das Modul kann über einen I<sup>2</sup>C-Bus angesprochen werden. Der MPU-9250 ist ein Multi-Chip-Modul welches die MPU-6500 (Geschleunigung und Gyro) via I<sup>2</sup>C mit dem AKM-8963 (Magnetometer) verbindet.


== Technische Übersicht ==
== Technische Übersicht ==
{| class="wikitable"
{| class="wikitable"
|+ Tabelle 1: Eigenschaften des MPU-9250/6500
|+ Tabelle 1: Eigenschaften des LCD Modul 16x02 I2C
! style="font-weight: bold;" | Eigenschaft
! style="font-weight: bold;" | Eigenschaft
! style="font-weight: bold;" | Daten
! style="font-weight: bold;" | Daten
|-
|-
| Artikel || MPU-9250/6500
| I<sup>2</sup>C Adressbereich  || 0x20 bis 0x27 (Standardadresse: 0x27)
|-
| Spannungsversorgung || 5&thinsp;V DC
|-
|-
| ADU || 3x 16-Bit Analog-Digital Konverter für Gyro, Beschleunigung und Magnetfeld
| Rücklicht/Text || Blau/Weiß
|-
|-
| Schnittstelle || I2C und SPI Schnittstelle
| Kontrast || einstellbar über das Potentiometer des I<sup>2</sup>C-Interfaces
|-
|-
| Spannungsversorgung || 3&thinsp;V bis 5&thinsp;V
| Größe|| 80&thinsp;mm x 36&thinsp;mm x 20&thinsp;mm
|-
|-
| Messbereich Gyroskop || einstellbar: ±250, ±500, ±1000 and ±2000&thinsp;°/s
| Sichtbereich || 66&thinsp;mm x 16&thinsp;mm
|}
 
== I<sup>2</sup>C Modul HW-601 ==
[[Datei:HW-061.jpg|400px|thumb||right|Abbildung 2: I<sup>2</sup>C Modul HW-061 ]]
Abb. 2 zeigt die Einstellmäglichkeiten des I<sup>2</sup>C Modul HW-601. Tabelle 2 erläutert die Einstellfunktionen, Tabelle 3 die Pinbelegung und Einstelloptionen und Tabelle 4 erläutert die Anpassung der HEX-Adresse des Moduls ()
{| class="wikitable"
|+ Tabelle 2: Einstellungen des I2C Modul HW-601
! style="font-weight: bold;" | #
! style="font-weight: bold;" | Funktion
|-
|-
| Messbereich Beschleunigung || einstellbar:  ±2g, ±4g, ±8g and ±16g
| <big><big>&#9312;</big></big>  || Hintergrundbeleuchtung
|-
|-
| Messbereich Magnetometer || ±4800&thinsp;µT
| <big><big>&#9313;</big></big>  || Kontrastanpassung
|-
|-
| Hersteller || InvenSense, TDK
| <big><big>&#9314;</big></big> || Anpassung der I<sup>2</sup>C-Adresse
|}
 
{| class="wikitable"
|+ Tabelle 3:  Pinbelegung und Einstellungen des I2C Modul HW-601
! Pin #
! colspan="2" | Bezeichnung
! Typ
! Funktion
|-
| 1 ||!! style="background-color: black;" |&nbsp; || GND ||Versorgung || Spannungsversorgung, GND
|-
| 2 ||!! style="background-color: red;"  |&nbsp; || VCC ||Versorgung || Spannungsversorgung, +5&thinsp;V
|-
| 3 ||!! style="background-color: yellow;" |&nbsp; || SDA || I/O|| A4, Serielle Datenleitung
|-
| 4 ||!! style="background-color: green;" |&nbsp; || SCL || CLK|| A5, Serielle Taktleitung
|-
| A0 ||  || A0 ||Lötverbindung || Optionale Adressänderung A0 (vgl. Tabelle 4)
|-
| A1 || || A1 ||Lötverbindung || Optionale Adressänderung A1 (vgl. Tabelle 4)
|-
| A2 || || A2 ||Lötverbindung || Optionale Adressänderung A2 (vgl. Tabelle 4)
|-
| Beleuchtung || ||  ||Steckbrücke|| gesetzt: Hintergrundbeleuchtung an, offen: Hintergrundbeleuchtung aus
|-
| Kontrast || ||  ||Potentiometer || Kontrastanpassung
|}
edes I²C Modul hat eine sogenannte „HEX Adresse“. Über diese Adresse reagiert das I²C-Modul auf die Daten, die vom Arduino auf dem Datenbus an genau diese Adresse gesendet werden. Viele I²C-LCDs haben auch die gleiche HEX-Adresse. Das bedeutet, dass beim Verwenden von zwei Displays beide Displays auf die gesendeten Daten vom Arduino-Board reagieren würden. Man könnte also auf zwei Displays keine unterschiedlichen Daten darstellen.
 
Die HEX-Adresse kann bei dem Display mit Hilfe der A0, A1 und A2 Lötstellen jedoch verändert werden. Im unveränderten Zustand sind alle drei Lötstellen nicht verbunden. Je nach Kombination, welche der Stellen man mit einer Lötstelle überbrückt, sind also 8 verschiedene Adressen möglich. Abhängig vom Display Typ kann diese Adresse anfangs 0x27 oder 0x3F sein (kann mit dem Adressen „Scanner“ herausgefunden werden, dazu später mehr).
 
Tabellen 4 zeigt die HEX Adressen je nach verlöteten Stellen ( | = verbunden, : = nicht verbunden). Standardeinstellung ist 0x27.
{| class="wikitable"
|+ Tabelle 4:  Einstellungen des I2C Modul HW-601 <big><big>&#9314;</big></big>
! style="font-weight: bold;" | A0
! style="font-weight: bold;" | A1
! style="font-weight: bold;" | A2
! style="font-weight: bold;" | HEX Adresse
! style="font-weight: bold;" | HEX Adresse
|-
|: ||  : || : || '''0x27''' || 0x3F
|-
|&#124; ||  : || : || 0x26 || 0x3E
|-
|: ||  &#124; || : || 0x25 || 0x3D
|-
|&#124; ||  &#124; || : || 0x24 || 0x3C
|-
|: ||  : || &#124; || 0x23 || 0x3B
|-
|&#124; ||  : || &#124; || 0x22 || 0x3A
|-
|: ||  &#124; || &#124; || 0x21 || 0x39
|-
|&#124; ||  &#124; || &#124; || 0x20 || 0x38
|}
|}


== Datenblätter ==
== Datenblätter ==
*[[Medium:MPU-9250-InvenSense.pdf|InvenSense: Datenblatt MPU-9250 Rev. 1.4]]
*[[Medium:I2C-LCD-interface.pdf|Datenblatt: I2C 1602 Serial LCD Module]]
*[[Medium:PS-MPU-9250A-01-v1.1.pdf|InvenSense: Datenblatt MPU-9250 Rev. 1.1]]
*[[Medium:Serielle Schnittstelle I2C fur LCD Displays Datenblatt.pdf|Datenblatt: Serielle Schnittstelle I2C fur LCD Displays (HW-061)]]


<!--
<!--
Zeile 47: Zeile 108:
== Messschaltung ==
== Messschaltung ==
-->
-->
== Tutorial ==
* [https://funduino.de/nr-19-i%c2%b2c-display Funduino Anleitung - I<sup>2</sup>C Display]
* [https://funduino.de/nr-06-zwei-i%c2%b2c-displays-gleichzeitig Funduino Anleitung - zwei I<sup>2</sup>C Displays an einem Controller]
== Library ==
*[https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/ LiquidCrystal I2C von Frank de Brabander, Marco Schwartz (v1.1.2)]
*[https://github.com/johnrickman/LiquidCrystal_I2C LiquidCrystal Arduino library for the DFRobot I2C LCD displays]


== Video ==
== Video ==
{{#ev:youtube|https://youtu.be/PWmn5U86RtA| 600 | |Arduino Tutorial - 12. I2C Display (LCD)|frame}}
{{#ev:youtube|https://youtu.be/PWmn5U86RtA| 600 | |Arduino Tutorial - 12. I2C Display (LCD)|frame}}
{{#ev:youtube|https://youtu.be/BajgkmIGN80| 600 | |Quicktip: I²C-Adressen schnell und einfach herausfinden!|frame}}


----
----
→ zurück zum Hauptartikel: [[Arduino]]
→ zurück zum Hauptartikel: [[Arduino]]

Aktuelle Version vom 4. Juli 2023, 12:48 Uhr

Abbildung 1: I2C LCD Modul

Autoren: Prof. Schneider


Einleitung

Das I2C 1602 LCD Modul besteht aus einem zweizeiligen Display mit je 16 Zeichen pro Zeile und einem I2C Modul HW-061 auf der Rückseite. I2C benötigt einen Takt- (SCL) und eine Datenverbindung (SDA) sowie +5VDC und GND. Über den I2C-Bus kann das Display mit nur 4 Anschlusskabeln betrieben werden.

Technische Übersicht

Tabelle 1: Eigenschaften des LCD Modul 16x02 I2C
Eigenschaft Daten
I2C Adressbereich 0x20 bis 0x27 (Standardadresse: 0x27)
Spannungsversorgung 5 V DC
Rücklicht/Text Blau/Weiß
Kontrast einstellbar über das Potentiometer des I2C-Interfaces
Größe 80 mm x 36 mm x 20 mm
Sichtbereich 66 mm x 16 mm

I2C Modul HW-601

Abbildung 2: I2C Modul HW-061

Abb. 2 zeigt die Einstellmäglichkeiten des I2C Modul HW-601. Tabelle 2 erläutert die Einstellfunktionen, Tabelle 3 die Pinbelegung und Einstelloptionen und Tabelle 4 erläutert die Anpassung der HEX-Adresse des Moduls ()

Tabelle 2: Einstellungen des I2C Modul HW-601
# Funktion
Hintergrundbeleuchtung
Kontrastanpassung
Anpassung der I2C-Adresse
Tabelle 3: Pinbelegung und Einstellungen des I2C Modul HW-601
Pin # Bezeichnung Typ Funktion
1   GND Versorgung Spannungsversorgung, GND
2   VCC Versorgung Spannungsversorgung, +5 V
3   SDA I/O A4, Serielle Datenleitung
4   SCL CLK A5, Serielle Taktleitung
A0 A0 Lötverbindung Optionale Adressänderung A0 (vgl. Tabelle 4)
A1 A1 Lötverbindung Optionale Adressänderung A1 (vgl. Tabelle 4)
A2 A2 Lötverbindung Optionale Adressänderung A2 (vgl. Tabelle 4)
Beleuchtung Steckbrücke gesetzt: Hintergrundbeleuchtung an, offen: Hintergrundbeleuchtung aus
Kontrast Potentiometer Kontrastanpassung

edes I²C Modul hat eine sogenannte „HEX Adresse“. Über diese Adresse reagiert das I²C-Modul auf die Daten, die vom Arduino auf dem Datenbus an genau diese Adresse gesendet werden. Viele I²C-LCDs haben auch die gleiche HEX-Adresse. Das bedeutet, dass beim Verwenden von zwei Displays beide Displays auf die gesendeten Daten vom Arduino-Board reagieren würden. Man könnte also auf zwei Displays keine unterschiedlichen Daten darstellen.

Die HEX-Adresse kann bei dem Display mit Hilfe der A0, A1 und A2 Lötstellen jedoch verändert werden. Im unveränderten Zustand sind alle drei Lötstellen nicht verbunden. Je nach Kombination, welche der Stellen man mit einer Lötstelle überbrückt, sind also 8 verschiedene Adressen möglich. Abhängig vom Display Typ kann diese Adresse anfangs 0x27 oder 0x3F sein (kann mit dem Adressen „Scanner“ herausgefunden werden, dazu später mehr).

Tabellen 4 zeigt die HEX Adressen je nach verlöteten Stellen ( | = verbunden, : = nicht verbunden). Standardeinstellung ist 0x27.

Tabelle 4: Einstellungen des I2C Modul HW-601
A0 A1 A2 HEX Adresse HEX Adresse
: : : 0x27 0x3F
| : : 0x26 0x3E
: | : 0x25 0x3D
| | : 0x24 0x3C
: : | 0x23 0x3B
| : | 0x22 0x3A
: | | 0x21 0x39
| | | 0x20 0x38

Datenblätter


Tutorial

Library

Video

Arduino Tutorial - 12. I2C Display (LCD)
Quicktip: I²C-Adressen schnell und einfach herausfinden!

→ zurück zum Hauptartikel: Arduino