diff --git a/INF/flanken-1/flanken-1.ino b/INF/flanken-1/flanken-1.ino
new file mode 100644
index 0000000..7516ff4
--- /dev/null
+++ b/INF/flanken-1/flanken-1.ino
@@ -0,0 +1,49 @@
+#include
+#include "SSD1306Wire.h"
+
+#define SCREEN_WIDTH 128 // OLED Display Breite, in Pixel
+#define SCREEN_HEIGHT 64 // OLED Display Höhe, in Pixel
+
+SSD1306Wire display(0x3c, 21, 22); // 21=SDA 22=SCL I2C-Bus Pins
+
+// ***** globale Variablen *************************************************
+long showtime;
+int x, y; // Pixel-Koordinaten für das Display
+
+// Variablen für die Eingabe
+char name[100]; // Array für den Namen, maximal 99 Zeichen + null-terminierend
+int i = 0; // Index für die Zeichen im Array
+
+// ***** Initialisierung **************************************************
+void setup() {
+ Serial.begin(9600); // Seriellen Monitor starten
+ display.init(); // Initialisierung des OLED
+ display.flipScreenVertically(); // Ausrichtung passend zur Platine
+ display.setFont(ArialMT_Plain_16); // Schriftgröße einstellen
+ display.drawString(0, 0, "INPUT NAME"); // Text auf OLED anzeigen
+ display.setTextAlignment(TEXT_ALIGN_CENTER); // Text zentrieren
+ display.display(); // Anzeige aktualisieren
+ delay(5000); // 5 Sekunden warten
+ display.setTextAlignment(TEXT_ALIGN_LEFT); // Text linksbündig setzen
+ x = 2; // Startposition setzen
+ y = 2;
+}
+
+// ***** Endlosschleife ***************************************************
+void loop() {
+ if (Serial.available() > 0) {
+ char incomingByte = Serial.read(); // Ein Zeichen von der seriellen Schnittstelle lesen
+
+ if (incomingByte == '\n' || incomingByte == '\r') { // Wenn Enter (newline oder carriage return) gedrückt wurde
+ name[i] = '\0'; // Null-Terminierung für die Zeichenkette
+ Serial.print("Du heißt: ");
+ Serial.println(name); // Den Namen über den seriellen Monitor ausgeben
+ i = 0; // Den Index zurücksetzen, um für den nächsten Namen bereit zu sein
+ } else {
+ if (i < sizeof(name) - 1) { // Sicherstellen, dass die Länge des Namens nicht überschritten wird
+ name[i] = incomingByte; // Das Zeichen in das Array einfügen
+ i++; // Den Index erhöhen
+ }
+ }
+ }
+}
diff --git a/INF/ultraschallsensor/ultraschallsensor.ino b/INF/ultraschallsensor/ultraschallsensor.ino
new file mode 100644
index 0000000..c14d054
--- /dev/null
+++ b/INF/ultraschallsensor/ultraschallsensor.ino
@@ -0,0 +1,47 @@
+/* Auswertung eines Ultraschall-Abstandssensors (Testprogramm)
+ * Der HC-SR04 benötigt 5V Versorgungsspannung, der HS-SR04P läuft auch mit 3,3V
+ *
+ * Im Setup ist ein Test für die Umrechnung der gemessenen Zeit (in µs)
+ * Die erste Formel berechnet d = s/2 = (v * t) / 2 mit d in cm, v in cm/s und t in s
+ * Die zweite Formel berechnet den Abstand mit dem ausmultiplizierten Faktor
+ * Die dritte Formel berechnet den Abstand ganzzahlig mit einem gerundeten Faktor
+ */
+const int Trigger=14, Echo=27;
+float fAbstand;
+unsigned long Messwert, iAbstand, lastMillis;
+// ***** Setup, Hardware initialisieren ***************************************************************
+void setup( ) {
+ Serial.begin(115200);
+ pinMode ( Trigger, OUTPUT );
+ pinMode ( Echo, INPUT );
+ // an Stelle von Messwert = pulseIn( Echo, HIGH );
+ Messwert = 10000; // Simulation des Sensors durch bekannte Werte => 10ms = 3,43m Gesamt => 171,5cm Abstand
+ fAbstand = 34300.0 * Messwert / (1E6 * 2); // hier ist die Schallgeschwindigeit 343m/s = 34300cm/s lesbar enthalten
+ Serial.print( " Berechneter Abstand: ");
+ Serial.println( fAbstand );
+ fAbstand = Messwert / 58.3; // hier ist die Schallgeschwindigkeit nicht einfach anpassbar
+ Serial.print( " Berechneter Abstand mit /58.3: ");
+ Serial.println( fAbstand );
+ iAbstand = Messwert / 58; // Gerundeter Faktor, Fehler 0,2%, es kann mit Int gerechnet werden
+ Serial.print( " vereinfacht mit /58: ");
+ Serial.println( iAbstand );
+
+}
+// ***** Endlosschleife, Einlesen, Verarbeiten, Ausgeben *********************************************
+void loop ( ) {
+ // Zeitsteuerung mit millis()
+ unsigned long currentMillis = millis();
+ // Messung 2x pro Sekunde
+ if(currentMillis - lastMillis >= 500) {
+ lastMillis = currentMillis;
+ // Trigger-Impuls mit 10µs Dauer erzeugen
+ digitalWrite(Trigger, HIGH);
+ delayMicroseconds(10);
+ digitalWrite(Trigger, LOW);
+ // Jetzt den High-Impuls am Echo-Eingang ausmessen
+ Messwert = pulseIn( Echo, HIGH );
+ fAbstand = 34300.0 * Messwert / (1E6 * 2); // hier ist die Schallgeschwindigeit 343m/s = 34300cm/s lesbar enthalten
+ Serial.printf( "Berechneter Abstand: %4.1f cm \n", fAbstand);
+ }
+
+}
\ No newline at end of file
diff --git a/progp/24-11-21/primzahlrechner.html b/progp/24-11-21/primzahlrechner.html
new file mode 100644
index 0000000..a43a282
--- /dev/null
+++ b/progp/24-11-21/primzahlrechner.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Document
+
+
+ Primzahlrechner
+
+
+
\ No newline at end of file
diff --git a/progp/24-11-21/primzahlrechner.php b/progp/24-11-21/primzahlrechner.php
new file mode 100644
index 0000000..8dad0b9
--- /dev/null
+++ b/progp/24-11-21/primzahlrechner.php
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/progp/24-11-21/reiskorn.php b/progp/24-11-21/reiskorn.php
new file mode 100644
index 0000000..72cdc59
--- /dev/null
+++ b/progp/24-11-21/reiskorn.php
@@ -0,0 +1,32 @@
+
+Reiskörner auf Schachbrett
+Körner auf dem $i. Feld. Körner: $koerner.
";
+ // Körner verdoppeln
+ $koerner = $koerner*2;
+}
+echo "Gewicht: ".number_format($gesamtGewicht, 3)." g; ". number_format($gesamtGewicht/1000)." kg";
+?>
\ No newline at end of file