int-Funktion

Jede Funktion muss außerhalb des setup- und des loop-Teils stehen.

Das Programm erstellt auf Tastendruck Zufallszahlen zwischen 1 und 49 und zeigt sie an.
int TASTER = 4;
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
pinMode(TASTER, INPUT_PULLUP);
randomSeed(analogRead(0));
}
void loop()
{
int Minimum = 1;
int Maximum = 50;
int TasterStatus = digitalRead(TASTER);
if (TasterStatus == LOW)
{
delay(200);
// Aufruf der Funktion
int Zahl = ZufallsZahl(Minimum, Maximum);
Serial.print("Zufallszahl\t");
Serial.println(Zahl);
}
}
// Funktion
int ZufallsZahl(int Minimum, int Maximum)
{
int Zahl = random(Minimum, Maximum);
return Zahl;
}

Zufallszahlen nach Druck auf die Enter-Taste.
int Minimum = 1;
int Maximum = 50;
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
// Zufallsgenerator starten
randomSeed(analogRead(0));
}
void loop()
{
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
char Zeichen = Serial.read();
// Enter/Senden gedrückt
if (Zeichen == '\n')
{
// Aufruf der Funktion
int Zahl = ZufallsZahl(Minimum, Maximum);
// \t = Tabulator
Serial.print("Zufallszahl\t");
Serial.println(Zahl);
}
}
}
// Funktion
int ZufallsZahl(int Minimum, int Maximum)
{
int Zahl = random(Minimum, Maximum);
return Zahl;
}
String-Funktion

Das Programm ersetzt in einem Text einen Vokal durch einen anderen.

void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
Serial.println("Bitte Text eingeben:");
}
void loop()
{
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// solange lesen, bis return \n
// eingegeben wurde
String Eingabe = Serial.readStringUntil('\n');
// das letzte Zeichen ist return → soll entfernt werden
Eingabe = Eingabe.substring(0, Eingabe.length() - 1);
// Original-Text ausgeben Serial.println(Eingabe);
Serial.println("-------------------------------------");
// Funktion aufrufen
// Parameter: Eingabe, zu suchender Vokal, Ersatzvokal
String VokalErsetzen = VokalZaehlen(Eingabe, 'a', 'i');
Serial.println("-------------------------------------");
Serial.print(VokalErsetzen);
}
}
// String-Funktion
String VokalZaehlen(String Eingabe, char Vokal, char VokalErsatz)
{
int AnzahlVokale = 0;
for (int i = 0; i < Eingabe.length(); i ++)
{
// wenn der Vokal gefunden wurde
// -> durch den "Ersatzvokal" ersetzen
// Anzahl der Ersetzungen zählen
if (Eingabe[i] == Vokal)
{
Eingabe[i] = VokalErsatz;
AnzahlVokale ++;
}
}
// Anzahl der Ersetzungen anzeigen
Serial.println(String(Vokal) + " " + String(AnzahlVokale) + "-mal ersetzt durch " + String(VokalErsatz));
return Eingabe;
}
bool-Funktion

Das Programm verwendet eine bool-Funktion, um die Teiler einer Zahl zu bestimmen und im Seriellen Monitor anzuzeigen.
Ist kein Teiler vorhanden, wird die Meldung ausgegeben, dass es sich um eine Primzahl handelt.

// wenn es sich um eine Primzahl handelt → Primzahl = true
bool Primzahl;
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
Serial.println("Zahl eingeben:");
}
void loop()
{
String Eingabe;
while (Serial.available() > 0)
{
// solange lesen, bis return \n eingegeben wurde
Eingabe = Serial.readStringUntil("\n");
// das letzte Zeichen ist return → soll entfernt werden
Eingabe = Eingabe.substring(0, Eingabe.length() - 1);
// eingegebene Zahl zu int umwandeln
int Zahl = Eingabe.toInt();
Serial.println("-----------------------------");
Serial.println("Teiler von " + String(Zahl) + " sind:");
// Aufruf der Funktion DivisorSuchen
bool Divisor = DivisorSuchen(Zahl);
if (Primzahl) Serial.println(String(Zahl) + " ist eine Primzahl");
}
}
bool DivisorSuchen(int Zahl)
{
Primzahl = true;
// nur bis zur Hälfte der Zahl prüfen
for (int i = 2; i <= Zahl / 2; i++)
{
// wenn kein Rest → Zahl ist teilbar → aktuellen Divisor anzeigen
if (Zahl %i == 0)
{
Serial.println(i);
// Divisor vorhanden → keine Primzahl
Primzahl = false;
}
}
/*
Wert von Primzahl wird an das Hauptprogramm zurückgegeben
false = keine Primzahl
true = Primzahl
*/
return Primzahl;
}

Das Programm berechnet die Fakultät der Zahlen bis 12.

void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
}
void loop()
{
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
int Zahl = Serial.parseInt();
// Enter/Senden gedrückt
if (Serial.read() == '\n')
{
/*
die Variable unsigned long ist auf den Wert 4.294.967.295 beschränkt
13! = 6.227.020.800
-> größere Werte nicht möglich
*/
if (Zahl < 13)
{
unsigned long Fakultaet = FakultaetBerechnen(Zahl);
Serial.println("Fakult\u00e4t von " + String(Zahl) + ": " + Fakultaet);
Serial.println("-------------------------");
}
else Serial.println("Die Zahl muss < 13 sein!");
}
}
}
long FakultaetBerechnen(long Zahl)
{
unsigned long Ergebnis = 1;
for (int i = 1; i <= Zahl; i++)
{
Ergebnis = Ergebnis * i;
}
return Ergebnis;
}


Letzte Aktualisierung: