Kod Morse adalah sistem komunikasi untuk menyandikan watak apa pun dalam dua jangka masa isyarat yang disebut Dots dan Dash . Kod Morse dikembangkan oleh Samuel FB dan selanjutnya digunakan dalam telegraf untuk memindahkan maklumat rahsia. Itu paling banyak digunakan pada masa Perang Dunia II. Kod Morse boleh dilakukan dengan mengetuk, memancarkan cahaya atau menulis. Kod Morse boleh didapati dalam dua versi, kod morse asli dan antarabangsa. Dalam kod morse antarabangsa, versi asalnya diubah dengan membuang ruang dan merancang tanda sempang dengan panjang tertentu. Kod Morse tersedia untuk mengekod huruf dan nombor. Ia digunakan terutamanya dalam komunikasi radio dan lautan dan juga bahagian latihan untuk tentera.
Bahasa selalu menjadi penghalang untuk kod Morse, kerana sukar untuk melaksanakan kod untuk watak diakritik dalam bahasa lain. Terdapat beberapa perkataan terkenal yang dianggap sebagai ciri penting kod Morse seperti 'SOS'. Bentuk lengkap SOS adalah Save Our Souls yang dibuat sebagai isyarat kesusahan sejagat mewakili bahaya.
Gambar di bawah menunjukkan kod Morse untuk abjad dari A hingga Z.
Hari ini dalam tutorial ini kita akan membina Penterjemah Kod Morse menggunakan Arduino yang akan mengambil watak apa pun sebagai input dari monitor bersiri dan mengubahnya menjadi bip setara kod Morse oleh buzzer.
Komponen Diperlukan
- Arduino Uno
- Buzzer
- Papan roti
- Wayar pelompat
Rajah Litar
Menyambung pin positif buzzer untuk 8 yang ke- pin daripada Arudino UNO dan negatif pin untuk alasan Arduino. Muat naik kod menggunakan Arduino IDE dan taipkan watak pada monitor bersiri untuk menghasilkan suaranya. LCD juga dapat ditambahkan dengan Arduino untuk menampilkan tanda titik dan titik.
Penjelasan Pengaturcaraan
Kod lengkap untuk Arduino Morse Code Generator diberikan pada akhir, di sini kami menerangkan program untuk memahami cara kerja projek.
Kod di bawah digunakan untuk menerima rentetan watak dan kemudian mengubahnya menjadi kod morse.
char stringToMorseCode = "";
Kemudian tentukan pin untuk bel yang disambungkan ke Arduino dan nada untuk bunyi yang dihasilkan oleh bel tersebut. Kemudian kita menentukan panjang titik dan tanda hubung.
int audio8 = 8; // output audio pada pin 8 int note = 1200; // nota muzik / nada int dotLen = 100; // panjang kod morse 'dot' int dashLen = dotLen * 3; // panjang kod morse 'dash'
Dalam fungsi gelung void () , jika data bersiri tersedia, ia akan disimpan ke indata yang berubah-ubah. Kemudian ia membaca watak satu persatu menggunakan perintah dalam Data . Pemboleh ubah perintah.toUppercase () digunakan untuk mengubah watak huruf kecil menjadi huruf besar. Kemudian ia menghasilkan suara mengikut setiap watak.
gelung kosong () { char inChar = 0; char inData = ""; // panjang data 6 aksara String variable = ""; String variable1 = ""; int index1 = 0; jika (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { kelewatan (100); inChar = Serial.read (); inData = inChar; indeks1 ++; dalamData = '\ 0'; } variabel.toUpperCase (); untuk (byte i = 0; i <100; i ++) { variable.concat (String (inData)); } kelewatan (20);
Di bawah fungsi MorseDot dan MorseDash digunakan untuk membuat bunyi untuk titik dan tanda hubung masing-masing.
batal MorseDot () { tone (audio8, note, dotLen); // mula memainkan kelewatan nada (dotLen); // tahan dalam kedudukan ini } batal MorseDash () { tone (audio8, note, dashLen); // mula memainkan kelewatan nada (dashLen); // tahan dalam kedudukan ini }
The getchar fungsi mempunyai kod untuk semua huruf. Jadi, setiap kali kita menaip abjad apa pun, kod morse masing-masing diambil dari fungsi ini untuk menghasilkan bunyi tertentu.
batal GetChar (char tmpChar) { switch (tmpChar) { case 'a': MorseDot (); kelewatan (100); MorseDash (); kelewatan (100); rehat; ... ... ... lalai: rehat; } }
Sekarang muat naik kod ke Arduino menggunakan Arduino IDE dan taipkan watak apa pun ke dalam monitor bersiri dan tekan butang enter untuk menghantar watak ke Arduino.
Di sini kami telah menaip 'SOS' yang merupakan isyarat kesusahan sejagat, untuk menghasilkan bunyi yang sama.
Demonstrasi untuk yang sama diberikan dalam video di bawah.