Add SOS blink sketch for UNO R4 Minima

This commit is contained in:
christian 2026-10-24 13:02:52 +02:00
parent 4d0f12de02
commit a49ef3c753
5 changed files with 82 additions and 6 deletions

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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
```

View file

@ -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();
}