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