diff --git a/README.md b/README.md index 9f8c4af..1269db3 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,10 @@ En samling af Arduino-sketches, eksperimenter og profiler til forskellige boards. +Repoet registrerer både Arduino-boards og de eksterne input/output-enheder, der +tilsluttes dem. Boardprofiler ligger i `boards/`, enhedsprofiler i `devices/`, +og hver enhedsprofil linker til de sketches, hvor enheden bruges. + ## Mine boards ### Arduino UNO R4 WiFi @@ -58,7 +62,8 @@ i [`boards/uno-r3-compatible-ch340`](boards/uno-r3-compatible-ch340/README.md). ## Projektstruktur -Boards og sketches bruger samme stabile board-id: +Boards og sketches bruger samme stabile board-id. Eksterne enheder har deres +eget stabile device-id: ```text boards/ @@ -66,6 +71,9 @@ boards/ README.md arduino-uno-r4-wifi/ README.md +devices/ + lcd1602-i2c-pcf8574/ + README.md sketches/ arduino-uno-r4-minima/ README.md @@ -78,6 +86,21 @@ Hver sketch ligger i sin egen mappe, og mappen og den primære `.ino`-fil har samme navn, så den kan åbnes direkte i Arduino IDE. Board-specifik dokumentation, forbindelser og biblioteker beskrives ved den enkelte sketch. +## Eksterne input/output-enheder + +### LCD1602 med PCF8574T I²C-backpack + +- **Type:** 16×2 HD44780-kompatibelt tegndisplay +- **Retning:** output +- **Interface:** I²C via PCF8574T +- **Forsyning i projektet:** 5 V +- **Brugt med:** Arduino UNO R4 WiFi +- **Sketch:** [`lcd1602_i2c_demo`](sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo) + +Pinout, adresseoplysninger, praktiske noter og den samlede sketch-liste findes i +[`devices/lcd1602-i2c-pcf8574`](devices/lcd1602-i2c-pcf8574/README.md). Det +samlede enhedsindeks findes i [`devices/`](devices/README.md). + ## Sketches ### Arduino UNO R4 WiFi @@ -101,9 +124,14 @@ dokumentation, forbindelser og biblioteker beskrives ved den enkelte sketch. - [`sos_blink`](sketches/uno-r3-compatible-ch340/sos_blink) – SOS i morsekode på den standardmæssige D13-LED -## Tilføjelse af flere boards +## Tilføjelse af flere boards og enheder Nye boards får en profil under `boards//` og deres sketches placeres under `sketches//`. Board-id skrives med små bogstaver og bindestreger, eksempelvis `arduino-uno-r4-wifi`. +Nye eksterne enheder får en profil under `devices//`. Profilen skal +beskrive identifikation, pinout og elektriske hensyn samt linke til alle +sketches, der bruger enheden. Både dette README og `devices/README.md` holdes +opdateret, når nye enheder tilføjes. + diff --git a/devices/README.md b/devices/README.md new file mode 100644 index 0000000..3a4773f --- /dev/null +++ b/devices/README.md @@ -0,0 +1,24 @@ +# Eksterne enheder + +Dette katalog registrerer eksterne input- og outputenheder, der bruges sammen +med boards i Arduino Playground: displays, sensorer, aktuatorer, kommunikations- +moduler og andre komponenter. + +Hver fysisk enhedstype får sit eget stabile id og en mappe med: + +- identifikation og relevante tekniske data; +- pinout, spændingsniveauer og tilslutning; +- eventuelle adresser, biblioteker og kendte faldgruber; +- links til alle sketches i repoet, som bruger enheden. + +## Registrerede enheder + +| Enhed | Type | Interface | Brugt med | Sketches | +| --- | --- | --- | --- | --- | +| [LCD1602 med PCF8574T](lcd1602-i2c-pcf8574/README.md) | Output/display | I²C | Arduino UNO R4 WiFi | [`lcd1602_i2c_demo`](../sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo) | + +## Navngivning + +Nye enheder placeres i `devices//`, hvor `device-id` skrives med små +bogstaver og bindestreger, eksempelvis `bme280-temperature-humidity-pressure`. +Profilen opdateres, hver gang enheden bruges i en ny sketch. diff --git a/devices/lcd1602-i2c-pcf8574/README.md b/devices/lcd1602-i2c-pcf8574/README.md new file mode 100644 index 0000000..4e96c57 --- /dev/null +++ b/devices/lcd1602-i2c-pcf8574/README.md @@ -0,0 +1,64 @@ +# LCD1602 med PCF8574T I²C-backpack + +## Identifikation + +| Felt | Værdi | +| --- | --- | +| Enhedstype | 16×2 monokromt tegndisplay (output) | +| Display-controller | HD44780-kompatibel | +| I²C-ekspander | NXP PCF8574T | +| Synlige tegn | 16 kolonner × 2 linjer | +| Tegnmatrix | 5×8 pixels pr. tegn | +| Brugerdefinerede tegn | 8 samtidige CGRAM-tegn | +| Backpack-ben | GND, VCC, SDA, SCL | +| Typisk I²C-adresse | `0x27` med ubrudte A0/A1/A2-loddebroer | +| Forsyning i projektet | 5 V | + +Enheden er identificeret fra billederne som et klassisk LCD1602-modul med en +påmonteret PCF8574T-backpack. Backpacken omsætter I²C til displayets parallelle +HD44780-interface og har et blåt potentiometer til kontrastjustering. + +## Pinout og tilslutning + +| LCD-backpack | Funktion | Arduino UNO R4 WiFi | +| --- | --- | --- | +| GND | Stel | GND | +| VCC | Forsyning og baggrundslys | 5V | +| SDA | I²C-data | SDA | +| SCL | I²C-clock | SCL | + +På UNO R4 WiFi kan de mærkede SDA/SCL-ben ved AREF bruges. De svarer til +boardets primære I²C-bus. + +## Adresse og backpack-layout + +PCF8574T bruger normalt adresseområdet `0x20`–`0x27`; varianten PCF8574AT +bruger `0x38`–`0x3F`. A0/A1/A2-loddebroerne bestemmer den konkrete adresse. +Den anvendte demo scanner begge områder automatisk. + +Det almindelige backpack-layout er: + +| PCF8574-bit | LCD-funktion | +| --- | --- | +| P0 | RS | +| P1 | R/W | +| P2 | Enable | +| P3 | Baggrundsbelysning | +| P4–P7 | D4–D7 | + +## Praktiske noter + +- Hvis baggrundslyset virker, men der ikke ses tegn, justeres det blå + kontrast-potentiometer langsomt med en lille skruetrækker. +- Displayet skal have fælles GND med Arduino-boardet. +- Fjern strømmen, før ledninger flyttes. +- Sketchen bruger kun Arduino-kernens `Wire`-bibliotek; backpack-driveren er + implementeret direkte i sketchen. + +## Bruges i disse sketches + +| Board | Sketch | Formål | +| --- | --- | --- | +| Arduino UNO R4 WiFi | [`lcd1602_i2c_demo`](../../sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo) | Tekstkort, specialtegn, equalizer, PIXEL PONG, PIXEL RAIN og oppetid | + +Når enheden bruges i flere sketches, tilføjes de til tabellen ovenfor. diff --git a/sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo/README.md b/sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo/README.md index 0ec1f5e..9de71dc 100644 --- a/sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo/README.md +++ b/sketches/arduino-uno-r4-wifi/lcd1602_i2c_demo/README.md @@ -1,7 +1,12 @@ # LCD1602 I²C-demo En effekt-demo til et HD44780-kompatibelt 16×2-tegndisplay med den almindelige -PCF8574/PCF8574A I²C-backpack. Demoen viser: +PCF8574/PCF8574A I²C-backpack. + +Enhedens samlede hardwareprofil findes under +[`devices/lcd1602-i2c-pcf8574`](../../../devices/lcd1602-i2c-pcf8574/README.md). + +Demoen viser: - animeret opstart og blink med baggrundsbelysningen; - brugerdefinerede hjerte-, smiley- og rakettegn;