diff --git a/README.md b/README.md index 4263b42..f6eb110 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,8 @@ dokumentation, forbindelser og biblioteker beskrives ved den enkelte sketch. ### Arduino UNO R4 Minima -- [Sketch-område](sketches/arduino-uno-r4-minima) – klar til kommende Minima-sketches +- [`sos_blink`](sketches/arduino-uno-r4-minima/sos_blink) – SOS i morsekode på + den indbyggede LED ## Tilføjelse af flere boards diff --git a/boards/arduino-uno-r4-minima/README.md b/boards/arduino-uno-r4-minima/README.md index ba253f0..bde3339 100644 --- a/boards/arduino-uno-r4-minima/README.md +++ b/boards/arduino-uno-r4-minima/README.md @@ -67,8 +67,8 @@ interne temperatursensor måler primært chiptemperaturen. ## Sketches i dette repo -Der er endnu ingen Minima-specifikke sketches. Nye sketches placeres under -[`sketches/arduino-uno-r4-minima`](../../sketches/arduino-uno-r4-minima). +- [`sos_blink`](../../sketches/arduino-uno-r4-minima/sos_blink) – blinker SOS i + morsekode med den indbyggede LED ## Kilder diff --git a/sketches/arduino-uno-r4-minima/README.md b/sketches/arduino-uno-r4-minima/README.md index f9537e2..2f28b67 100644 --- a/sketches/arduino-uno-r4-minima/README.md +++ b/sketches/arduino-uno-r4-minima/README.md @@ -1,14 +1,18 @@ # Sketches til Arduino UNO R4 Minima -Der er endnu ingen Minima-specifikke sketches i projektet. +## Tilgængelige sketches + +- [`sos_blink`](sos_blink) – blinker SOS i morsekode med den indbyggede LED + +## Struktur Hver ny sketch skal placeres i sin egen mappe, hvor mappen og `.ino`-filen har samme navn: ```text sketches/arduino-uno-r4-minima/ - blink/ - blink.ino + sos_blink/ + sos_blink.ino ``` Kompilér med: diff --git a/sketches/arduino-uno-r4-minima/sos_blink/README.md b/sketches/arduino-uno-r4-minima/sos_blink/README.md new file mode 100644 index 0000000..7d84f04 --- /dev/null +++ b/sketches/arduino-uno-r4-minima/sos_blink/README.md @@ -0,0 +1,25 @@ +# SOS Blink + +Blinker `SOS` (`... --- ...`) i morsekode med den indbyggede LED på D13 på +Arduino UNO R4 Minima. Der kræves ingen eksterne komponenter. + +En tidsenhed er 200 ms: + +- prik: 1 enhed tændt +- streg: 3 enheder tændt +- mellemrum mellem signaler: 1 enhed +- mellemrum mellem bogstaver: 3 enheder +- mellemrum mellem gentagelser: 7 enheder + +## Kompilering + +```powershell +arduino-cli compile --fqbn arduino:renesas_uno:minima sketches/arduino-uno-r4-minima/sos_blink +``` + +## Upload + +```powershell +arduino-cli upload --port COM7 --fqbn arduino:renesas_uno:minima sketches/arduino-uno-r4-minima/sos_blink +``` + diff --git a/sketches/arduino-uno-r4-minima/sos_blink/sos_blink.ino b/sketches/arduino-uno-r4-minima/sos_blink/sos_blink.ino new file mode 100644 index 0000000..435a189 --- /dev/null +++ b/sketches/arduino-uno-r4-minima/sos_blink/sos_blink.ino @@ -0,0 +1,46 @@ +// SOS in Morse code on the Arduino UNO R4 Minima built-in LED. +// S = ... O = --- S = ... + +constexpr unsigned long UNIT_MS = 200; + +void blinkSymbol(unsigned long onUnits) { + digitalWrite(LED_BUILTIN, HIGH); + delay(onUnits * UNIT_MS); + digitalWrite(LED_BUILTIN, LOW); + + // Every Morse symbol is followed by a one-unit gap. + delay(UNIT_MS); +} + +void blinkLetter(const char *pattern) { + for (const char *symbol = pattern; *symbol != '\0'; ++symbol) { + blinkSymbol(*symbol == '.' ? 1 : 3); + } +} + +void letterGap() { + // blinkSymbol() already supplied the first of the three gap units. + delay(2 * UNIT_MS); +} + +void wordGap() { + // blinkSymbol() already supplied the first of the seven gap units. + delay(6 * UNIT_MS); +} + +void setup() { + pinMode(LED_BUILTIN, OUTPUT); + digitalWrite(LED_BUILTIN, LOW); +} + +void loop() { + blinkLetter("..."); + letterGap(); + + blinkLetter("---"); + letterGap(); + + blinkLetter("..."); + wordGap(); +} +