Arduino Morse Code (4 / 5 steg)
Steg 4: Ladda upp koden
Nästa ansluta datorn till Arduino via USB-kabeln. Genom att använda Arduino compiler uppladdningen följande kod. Om du vill ändra Morsealfabetet strängen bara ändra "stringToMorseCode". Koden kommer att läsa den här strängen och konvertera strängen till morsekod, både visuell och audio.
Koden läser strängen till en array och sedan använda GetChar fungerar detta konverterar varje tecken i prickar och streck. För närvarande är detta bara konvertera alfabetiska tecken men du kan enkelt lägga till ytterligare tecken (siffror, skiljetecken) i detta Välj uttalande switch längst ner i koden.
/*
Morse Code Project
Denna kod kommer att loopa igenom en teckensträng och konvertera dessa till morsekod.
Det kommer att blinka två LED-lampor och spela upp ljud på en högtalare.
*/
//**************************************************//
Ange strängen för att konvertera till morsekod här / /
//**************************************************//
char stringToMorseCode [] = "Arduino morsekod projektet".
Skapa variabel för att definiera utgångsstift
int led12 = 12; blinka en led på utgång 12
int led6 = 6; blinka en led på utgång 6
int audio8 = 8; output audio på stift 8
int Obs = 1200; musik noterar/pitch
/*
Ställa in hastigheten på din morsekod
Justera längden för att snabba upp eller sakta ner din morsekod "dotlen"
(alla andra längder baseras på dotlen)
Här är nyckeltalen kodelement:
Dash längd = Dot längd x 3
Paus mellan element = Dot längd
(paus mellan prickar och streck inom karaktären)
Paus mellan tecken = Dot längd x 3
Paus mellan ord = Dot längd x 7
http://www.nu-ware.com/NuCode%20Help/index.html?m...
*/
int dotLen = 100; längd av morsekod "pricken"
int dashLen = dotLen * 3; längd av morsekod "dash"
int elemPause = dotLen; längden på pausen mellan element i ett tecken
int utrymmen = dotLen * 3; längden på utrymmena mellan tecken
int wordPause = dotLen * 7; längden på pausen mellan ord
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
initiera digital PIN-koden som en utgång för LED-lampor.
pinMode (led12, produktionen);
pinMode (led6, produktionen);
}
Skapa en slinga av bokstäver/orden du vill spara i morsekod (definieras i strängen överst i koden)
void loop()
{
Loopa igenom strängen och få varje tecken en i taget tills slutet nås
för (int jag = 0; jag < sizeof(stringToMorseCode) - 1; i ++)
{
Få karaktär med det aktuella
char tmpChar = stringToMorseCode [i];
Ställa in ärendet till gemener
tmpChar = toLowerCase(tmpChar);
Ring subrutin för att få Morsealfabetet motsvarande för denna karaktär
GetChar(tmpChar);
}
I slutet av strängen lång paus före looping och start igen
LightsOff(8000);
}
DOT
void MorseDot()
{
digitalWrite (led12, hög); Aktivera LED
digitalWrite (led6, hög);
tonar (audio8, Obs, dotLen); börja spela en ton
Delay(dotLen); Håll i denna position
}
DASH
void MorseDash()
{
digitalWrite (led12, hög); Aktivera LED
digitalWrite (led6, hög);
tonar (audio8, Obs, dashLen); börja spela en ton
Delay(dashLen); Håll i denna position
}
Stäng av
void LightsOff(int delayTime)
{
digitalWrite (led12, låg); Inaktivera LED
digitalWrite (led6, låg);
noTone(audio8); sluta spela en ton
Delay(delayTime); Håll i denna position
}
*** Tecken till morsekod konvertering *** / /
void GetChar(char tmpChar)
{
Ta den passerade karaktären och använda ett switch fall för att hitta Morsealfabetet för tecknet
växel (tmpChar) {
fallet "a":
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "b":
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "c":
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fall skulle ":
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "e":
MorseDot();
LightsOff(elemPause);
bryta;
fallet "f":
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "g":
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "h":
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "i":
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "j":
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "k":
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "l":
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet är ":
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet 'n':
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet ' o ':
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "p":
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet "q":
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "r":
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
fallet ":
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
't i mål ":
MorseDash();
LightsOff(elemPause);
bryta;
fallet "u":
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "v":
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "w":
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "x":
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fall "y":
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
bryta;
fallet "z":
MorseDash();
LightsOff(elemPause);
MorseDash();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
MorseDot();
LightsOff(elemPause);
bryta;
standard:
Om ett matchande tecken inte hittades kommer det standard att ett tomt utrymme
LightsOff(Spaces);
}
}
/*
Olicensierad programvara:
Detta är gratis och icke pantsatta programvara släpps ut i det offentliga rummet.
Någon är fri att kopiera, modifiera, publicera, använda, kompilera, sälja, eller
distribuera denna programvara, källa koden eller som en kompilerad
binär, för ändamålet, kommersiella eller icke-kommersiella, och av någon
innebär.
I jurisdiktioner som känner igen upphovsrättslagar, författaren eller författarna
av denna programvara ägna alla copyright intresse för den
programvara för att det offentliga rummet. Vi gör detta engagemang till förmån
för den stora allmänheten och till nackdel för våra arvingar och
efterträdarear. Vi avser detta engagemang vara en overthandling av
avveckling i evighet av alla nuvarande och framtida rättigheter till detta
programvara enligt upphovsrätten.
PROGRAMVARAN TILLHANDAHÅLLS "I BEFINTLIGT SKICK", UTAN GARANTIER AV NÅGOT SLAG,
UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA, INKLUSIVE MEN INTE BEGRÄNSAT TILL GARANTIER AVSEENDE
SÄLJBARHET, LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL OCH ICKE-INTRÅNG.
UNDER INGA OMSTÄNDIGHETER SKA FÖRFATTARNA ANSVARA FÖR EVENTUELLA ANSPRÅK, SKADOR ELLER
ANNAT ANSVAR, VARE SIG I EN ÅTGÄRD AV KONTRAKTET, KRÄNKNING ELLER PÅ ANNAT SÄTT,
UPPSTÅENDE FRÅN, AV ELLER I SAMBAND MED PROGRAMVARAN ELLER ANVÄNDNING ELLER
ANDRA KONTAKTER I PROGRAMVARAN.
För mer information, se
*/