Morsecode is een communicatiesysteem om elk teken in twee verschillende tijdsduur van signalen te coderen, genaamd punten en streepjes . Morsecode is ontwikkeld door Samuel FB en verder gebruikt in telegrafie voor het overbrengen van geheime informatie. Het werd het meest gebruikt ten tijde van de Tweede Wereldoorlog. Een morsecode kan worden uitgevoerd door te tikken, licht te knipperen of te schrijven. De morsecode is beschikbaar in twee versies, de originele en de internationale morsecode. In de internationale morsecode wordt de originele versie gewijzigd door spaties te verwijderen en de streepjes in een bepaalde lengte te ontwerpen. De morsecode is beschikbaar voor het coderen van alfabetten en cijfers. Het wordt voornamelijk gebruikt in de radio- en oceaancommunicatie en ook als onderdeel van training voor soldaten.
De taal is altijd de barrière geweest voor de morsecode, omdat het moeilijk is om de code voor diakritische tekens in een andere taal uit te voeren. Er zijn enkele beroemde woorden die als een belangrijk kenmerk van morsecode worden beschouwd, zoals 'SOS'. De volledige vorm van SOS is Save Our Souls gemaakt als een universeel noodsignaal dat gevaar vertegenwoordigt.
De onderstaande afbeelding toont de morsecode voor de alfabetten van A tot Z.
Vandaag zullen we in deze tutorial een morsecode-vertaler bouwen met Arduino die elk teken als invoer van een seriële monitor zal nemen en deze zal omzetten in morsecode-equivalente pieptonen met een zoemer.
Componenten vereist
- Arduino Uno
- Zoemer
- Breadboard
- Doorverbindingsdraden
Schakelschema
Sluit de zoemer positieve pin naar de 8 ste pin van de Arudino UNO en de negatieve pin op de grond van de Arduino. Upload de code met Arduino IDE en typ de tekens op de seriële monitor om het geluid te maken. Een LCD kan ook worden toegevoegd met Arduino om het streepje en de punten weer te geven.
Uitleg over programmeren
De volledige code voor de Arduino Morse Code Generator wordt aan het einde gegeven, hier leggen we het programma uit om de werking van het project te begrijpen.
De onderstaande code wordt gebruikt om de tekenreeks te ontvangen en deze vervolgens om te zetten in morsecode.
char stringToMorseCode = "";
Definieer vervolgens de pin voor de zoemer die op de Arduino is aangesloten en de toonhoogte voor het geluid dat door die zoemer wordt gegenereerd. Vervolgens definiëren we de lengte van de punt en het streepje.
int audio8 = 8; // output audio op pin 8 int note = 1200; // muzieknoot / toonhoogte int dotLen = 100; // lengte van de morsecode 'dot' int dashLen = dotLen * 3; // lengte van de morsecode 'streepje'
Als in de functie void loop () seriële gegevens beschikbaar zijn, worden deze opgeslagen in een variabele indata . Vervolgens leest het het teken een voor een met het commando inData . Het commando variable.toUppercase () wordt gebruikt om de kleine letters in hoofdletters te veranderen. Vervolgens creëert het geluid volgens elk personage.
void loop () { char inChar = 0; char inData = ""; // datalengte van 6 tekens Stringvariabele = ""; String variable1 = ""; int index1 = 0; if (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delay (100); inChar = Serial.read (); inData = inChar; index1 ++; inData = '\ 0'; } variable.toUpperCase (); voor (byte i = 0; i <100; i ++) { variable.concat (String (inData)); } vertraging (20);
Onderstaande functies MorseDot en MorseDash worden gebruikt om het geluid voor respectievelijk punt en streepje te creëren.
void MorseDot () { toon (audio8, noot, dotLen); // begin met het spelen van een toonvertraging (dotLen); // houd in deze positie } void MorseDash () { tone (audio8, note, dashLen); // begin met het spelen van een toonvertraging (dashLen); // vasthouden in deze positie }
De functie GetChar heeft de code voor alle alfabetten. Dus telkens wanneer we een alfabet typen, wordt de respectieve morsecode uit deze functie gehaald om het specifieke geluid te creëren.
ongeldig GetChar (char tmpChar) { switch (tmpChar) { case 'a': MorseDot (); vertraging (100); MorseDash (); vertraging (100); breken; ... ... ... default: break; } }
Upload nu de code naar Arduino met Arduino IDE en typ een willekeurig teken in de seriële monitor en druk op de enter-knop om de tekens naar de Arduino te sturen.
Hier hebben we 'SOS' getypt, wat een universeel noodsignaal is, om het geluid voor hetzelfde te creëren.
De demonstratie voor hetzelfde wordt gegeven in de onderstaande video.