INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Morsecode Generator
30.11.2013, 20:46
Beitrag #1
Morsecode Generator
Hallo habe mal eine Frage zu einen Sketch Code habe mir diesen aus dem Netzt geladen und verstehe da den letzten Teil nicht vielleicht kann mir einer von euch diesen erklären. ( das was fett markiert ist)


int ledPin = 8;

char* letters[] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", // A-I
".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", // J-R
"...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." // S-Z
};

char* numbers[] = {"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----."};

int dotDelay = 250;

void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop()
{
char ch;
if (Serial.available()) // liegen Daten am USB Port vor?
{
ch = Serial.read(); // einzelne Buchstaben lesen
if (ch >= 'a' && ch <= 'z')
{
flashSequence(letters[ch - 'a']);
}
else if (ch >= 'A' && ch <= 'Z')
{
flashSequence(letters[ch - 'A']);
}
else if (ch >= '0' && ch <= '9')
{
flashSequence(numbers[ch - '0']);
}
else if (ch == ' ')
{
delay(dotDelay * 4);
}
}
}

void flashSequence(char* sequence)
{
int i = 0;
while (sequence[i] != NULL)
{
flashDotOrDash(sequence[i]);
i++;
}
delay(dotDelay * 3); // Abstand zwischen den Buchstaben
}

void flashDotOrDash(char dotOrDash)
{
digitalWrite(ledPin, HIGH);
if (dotOrDash == '.')
{
delay(dotDelay);
}
else // wenn es ein Strich ist 3* so lang
{
delay(dotDelay * 3);
}
digitalWrite(ledPin, LOW);
delay(dotDelay); // Abstand zwischen Blinksignalen
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2013, 14:34
Beitrag #2
RE: Morsecode Generator
Hallo joshi,
eigentlich ganz einfach:
Code:
void flashSequence(char* sequence)
{
  // Zähler für while
  int i = 0;
  // solange von loop übergebenes Char kein abschließendes Zeichen (NULL) ist
  while (sequence[i] != NULL)
  {
    // ...übergebe das Zeichen an flashDotOrDash
    flashDotOrDash(sequence[i]);
    // Zähler erhöhen für nächstes Zeichen
    i++;
  }
  delay(dotDelay * 3); // Abstand zwischen den Buchstaben
}
void flashDotOrDash(char dotOrDash)
{
  // LED an
  digitalWrite(ledPin, HIGH);
  // Wenn übergebnes Zeichen ein Punkt
  if (dotOrDash == '.')
  {
    // ...kurze Pause
    delay(dotDelay);
  }
  else // wenn es ein Strich ist 3* so lang
  {
    ... lange Pause
    delay(dotDelay * 3);
  }
  // ...LED aus
  digitalWrite(ledPin, LOW);
  delay(dotDelay); // Abstand zwischen Blinksignalen
}
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste