Përmbajtje:

Transmetuesi i Kodit Morse Arduino: 11 hapa
Transmetuesi i Kodit Morse Arduino: 11 hapa

Video: Transmetuesi i Kodit Morse Arduino: 11 hapa

Video: Transmetuesi i Kodit Morse Arduino: 11 hapa
Video: CS50 2013 - Week 9 2024, Nëntor
Anonim
Transmetues i Kodit Morse Arduino
Transmetues i Kodit Morse Arduino
Transmetues i Kodit Morse Arduino
Transmetues i Kodit Morse Arduino

Në këtë udhëzues, ju do të përdorni një Arduino Uno për të krijuar një transmetues të kodit Morse dhe do të përdorni monitorin serik për të lexuar mesazhet që keni transmetuar.

Pjesët që do t'ju duhen:

Arduino Uno

Breadboard

Zile

Butonat

Telat e kërcyesit

Hapi 1: Siguroni energji bordit tuaj të bukës

Jepni energji tabelës tuaj të bukës
Jepni energji tabelës tuaj të bukës

Lidhni një tel bluzë nga kunja 5V në Arduino Uno tuaj në vijën pozitive në tabelën tuaj të bukës.

Hapi 2: Grini tabelën tuaj të bukës

Groundboard Breadboard juaj
Groundboard Breadboard juaj

Tani lidhni një tel nga ndonjë prej kunjave GND në Arduino me vijën negative në tabelën tuaj të bukës.

Hapi 3: Futni butonin tuaj

Futni butonin tuaj
Futni butonin tuaj

Fut butonin tuaj. Sigurohuni që dy këmbët e tij të jenë në secilën anë të kanalit në mes të pjatës tuaj, dhe këmbët të futen fort. Easyshtë e lehtë t'i përkulni kur shtypni fort, prandaj kujdes kur shtypni butonin poshtë.

Hapi 4: Grini butonin tuaj

Tokëzoni butonin tuaj
Tokëzoni butonin tuaj

Lidheni butonin me tokën duke futur njërin skaj në të njëjtin rresht me pjesën e sipërme të butonit tuaj, dhe skajin tjetër në rreshtin negativ që keni lidhur më parë me tokën.

Hapi 5: Lidhni butonin tuaj

Lidhni butonin tuaj
Lidhni butonin tuaj

Mbyllni qarkun e butonave dhe lejoni që Arduino të lexojë hyrjen e tij duke lidhur një tel nga e njëjta rresht me këmbën e butonit të poshtëm, dhe pin 7 në Arduino.

Hapi 6: Futni zilen tuaj

Futni zilen tuaj
Futni zilen tuaj

Vendoseni zilen tuaj në mënyrë që shenja "+" në krye, ose këmba pak më e gjatë, të jetë në të njëjtën anë të dërrasës së bukës me telin tuaj të lidhur me 5V.

Hapi 7: Grini zilen

Grini zilen
Grini zilen

Lidheni butonin në tokë me një tel nga e njëjta rresht si këmba e tij më e shkurtër në vijën negative në tabelën e bukës që keni lidhur më parë me GND.

Hapi 8: Ndizni zilen

Fuqizoni zilen
Fuqizoni zilen

Jepni energji ziles dhe lejoni që Arduino ta kontrollojë atë me një tel nga e njëjta rresht me këmbën e tij më të gjatë në kunjin 8 në Arduino.

Hapi 9: Shkruani Kodin tuaj

Shkruani Kodin tuaj
Shkruani Kodin tuaj

Kopjoni dhe ngjisni kodin tonë, ose shkarkoni skedarin e bashkangjitur.

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

alfabet statik = {'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'}; shtytje_gjatësi e gjatë e panënshkruar, shtytje fillimi, shtytje fundi; // koha për të cilën shtypet butoni int butoni = 7; // kunja hyrëse për butonin shtytës int zile = 8; // pin dalës për kodin e vargut LED = ""; // vargu në të cilin ruhet një alfabet

void setup () {

Serial.filloj (9600); pinMode (butoni, INPUT_PULLUP); // rezistenca e brendshme tërheqëse përdoret për të thjeshtuar pinMode të qarkut (zile, OUTPUT); Serial.println ("Filloni mesazhin tuaj!"); }

lak void ()

{MorseTransmission: while (digitalRead (button) == HIGH) {} start_push = millis (); // koha në tonin e shtypjes së butonit (zile, 150); ndërsa (digitalRead (butoni) == LOW) {} end_push = millis (); // koha në lëshimin e butonit noTone (zile); push_length = fund_push - start_push; // koha për të cilën butoni shtypet nëse (push_length> 50) {// për të llogaritur për ndërrimin e kodit të debouncing += dot_or_dash (push_length); // funksioni për të lexuar pikë ose dash} ndërsa ((millis () - fund_push) <500) // nëse koha midis butonit shtyp më shumë se 0.5sek, kaloni lakun dhe shkoni te alfabeti tjetër {if (digitalRead (button) == LOW) {goto MorseTransmission; }} Përkthimi Morse (kodi); // funksioni për të deshifruar kodin në alfabet}

dot_or_dash (gjatësia e notit)

{nëse (gjatësia 50) {kthimi '.'; // nëse butoni shtyp më pak se 0.6 sekonda, është një pikë} tjetër nëse (gjatësia> 600) {kthehu '-'; // nëse butoni shtyp më shumë se 0.6 sekonda, është një vijë}}

void

{int i = 0; nëse (kodi == ".-.-.-") {Serial.print ("."); // për pushim} tjetër {ndërsa (Morse ! = "E") // lak për krahasimin e kodit të hyrjes me grupin e shkronjave {if (Morse == kodin e kalit) {Serial.print (Alfabeti ); pushim; } i ++; } if (Morse == "E") {Serial.println ("Gabim!"); // nëse kodi hyrës nuk përputhet me asnjë shkronjë, gabimi}} kodi = ""; // rivendos kodin në vargun bosh}

Hapi 10: Përdorni monitorin serik për të lexuar rezultatin tuaj

Përdorni monitorin serik për të lexuar rezultatin tuaj!
Përdorni monitorin serik për të lexuar rezultatin tuaj!

Hapni monitorin serik për të parë mesazhet tuaja ndërsa shtypni butonin për të krijuar Kodin Morse. Përdorni udhëzuesin e mësipërm për të renditur pikat dhe pikat tuaja në mënyrë të përshtatshme!

Hapi 11: Dëshironi më shumë projekte si ky?

Dëshironi më shumë projekte si ky?
Dëshironi më shumë projekte si ky?

Merrni pjesë për 2-3 projekte në muaj dhe udhëzime dhe video për t'i ndërtuar ato me MakeCrate!

Recommended: