Sisukord:

Arduino Morse koodi saatja: 11 sammu
Arduino Morse koodi saatja: 11 sammu

Video: Arduino Morse koodi saatja: 11 sammu

Video: Arduino Morse koodi saatja: 11 sammu
Video: CS50 2014 – 7-я неделя 2024, November
Anonim
Arduino Morse koodi saatja
Arduino Morse koodi saatja
Arduino Morse koodi saatja
Arduino Morse koodi saatja

Selles juhendis kasutate Arduino Unot Morse koodi saatja loomiseks ja jagatud monitori abil edastatud sõnumite lugemiseks.

Osad, mida vajate:

Arduino Uno

Leivalaud

Sumin

Nupud

Jumper juhtmed

Samm: andke oma leivalauale energiat

Andke oma leivalauale energiat
Andke oma leivalauale energiat

Ühendage Arduino Uno 5 -voldise klemmiga juhtmestik oma leivalaua positiivse joonega.

2. samm: maandage oma leivalaud

Maandage oma leivalaud
Maandage oma leivalaud

Nüüd ühendage Arduino mis tahes GND -tihvtide juhe oma leivalaua negatiivse joonega.

Samm: sisestage oma nupp

Sisestage oma nupp
Sisestage oma nupp

Sisestage oma nupp. Veenduge, et selle kaks jalga asuvad mõlemal pool kanalit leivalaua keskel ja jalad on kindlalt sisestatud. Neid on raske kõvasti vajutades painutada, seega olge nupu alla vajutamise ajal ettevaatlik.

4. samm: maandage oma nupp

Maandage oma nupp
Maandage oma nupp

Ühendage nupp maandusega, sisestades selle ühe otsa oma nupu ülemise jalaga samasse ritta ja teise otsa negatiivsesse rida, mille varem maaga ühendasite.

Samm: ühendage oma nupp

Ühendage oma nupp
Ühendage oma nupp

Sulgege nupuahel ja laske Arduino'l oma sisendit lugeda, ühendades juhtme samast reast kui alumine nupujalg ja tihvt 7 Arduino peal.

6. samm: sisestage oma helisignaal

Sisestage oma helisignaal
Sisestage oma helisignaal

Sisestage oma helisignaal nii, et ülaosas olev "+" märk või veidi pikem jalg oleks leivaplaadi samal küljel, kui teie 5V -ga ühendatud juhe.

7. samm: maandage helisignaal

Maandage helisignaal
Maandage helisignaal

Ühendage nupp maandusega juhtmega, mis on samast reast kui selle lühem jalg, leivaplaadi negatiivse joonega, mille te varem GND -ga ühendasite.

8. samm: lülitage summeri sisse

Lülitage helisignaal sisse
Lülitage helisignaal sisse

Andke helisignaalile voolu ja laske Arduino'l seda juhtida juhtmega, mis on samast reast kui tema pikem jalg kuni Arduino tihvti 8ni.

Samm: kirjutage oma kood

Kirjutage oma kood
Kirjutage oma kood

Kopeerige ja kleepige meie kood või laadige alla lisatud fail.

staatiline String Morse = {".-", "-…", "-.-.", "-..", ".", "..-.", "-.", "…. ",".. ",".--- "," -.- ",".-.. ","-","-. "," --- ",".--. ", "--.-", ".-.", "…", "-", "..-", "…-", ".--", "-..-", "-.-- ","-.. "," E "};

staatiline sümbol Tähestik = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", " x ',' y ', 'z', 'E'}; allkirjastamata pikk push_length, start_push, end_push; // nupu vajutamise aeg int nupp = 7; // surunupu sisendpin int int sumisti = 8; // outpu pin for LED String code = ""; // string, milles üks tähestik on salvestatud

tühine seadistus () {

Seriaalne algus (9600); pinMode (nupp, INPUT_PULLUP); // sisemist tõmbetakistit kasutatakse ahela lihtsustamiseks pinMode (sumin, OUTPUT); Serial.println ("Alusta oma sõnumit!"); }

tühine tsükkel ()

{MorseTransmission: while (digitalRead (nupp) == HIGH) {} start_push = millis (); // kellaaeg nupuvajutuse toonil (sumin, 150); while (digitalRead (nupp) == LOW) {} end_push = millis (); // kellaaeg nupu vabastamisel noTone (sumin); push_length = end_push - algus_push; // aeg, mille jooksul nuppu vajutatakse, kui (tõuke_pikkus> 50) {// lüliti tühistamiskoodi arvestamiseks += punkt_või kriips (tõuke_pikkus); // funktsioon punkti või kriipsu lugemiseks} samas ((millis () - lõpp_push) <500) // kui nupuvajutuse vaheline aeg on suurem kui 0,5 sekundit, jätke tsükkel vahele ja liikuge järgmise tähestiku juurde {if (digitalRead (nupp) == LOW) {goto MorseTransmission; }} Morse_tõlge (kood); // funktsioon koodi tähestikku dešifreerimiseks}

char dot_or_dash (ujuki pikkus)

{if (pikkus 50) {return '.'; // kui nuppu vajutada vähem kui 0,6sek, on see punkt} else if (pikkus> 600) {return '-'; // kui nuppu vajutada rohkem kui 0,6 sekundit, on see kriips}}

void Morse_translation (String morsekood)

{int i = 0; if (kood == ".-.-.-") {Seeria.print ("."); // katkestuseks} else {while (Morse ! = "E") // silmus sisendkoodi võrdlemiseks tähtede massiiviga {if (Morse == morsecode) {Serial.print (Tähestik ); murda; } i ++; } if (Morse == "E") {Serial.println ("Viga!"); // kui sisendkood ei vasta ühelegi tähele, error}} code = ""; // lähtestage kood tühjaks stringiks}

Samm: kasutage väljundi lugemiseks jadamonitori

Kasutage väljundi lugemiseks jadamonitori!
Kasutage väljundi lugemiseks jadamonitori!

Sõnumite vaatamiseks avage jadamonitor, kui vajutate nuppu Morse koodi loomiseks. Kasutage punktide ja kriipsude sobivaks järjestamiseks ülaltoodud juhendit!

Samm 11: Kas soovite rohkem selliseid projekte?

Kas soovite rohkem selliseid projekte?
Kas soovite rohkem selliseid projekte?

Hankige osi 2-3 projektile kuus ning juhised ja video nende ehitamiseks MakeCrate abil!

Soovitan: