รหัสมอร์สเป็นระบบของการสื่อสารในการเข้ารหัสตัวอักษรใด ๆ ในสองระยะเวลาที่แตกต่างกันของสัญญาณที่เรียกว่า จุด และขีดกลางรหัสมอร์สได้รับการพัฒนาโดย Samuel FB และใช้ในการโทรเลขสำหรับการถ่ายโอนข้อมูลลับ ถูกใช้มากที่สุดในช่วงสงครามโลกครั้งที่สอง รหัสมอร์สสามารถทำได้โดยการแตะไฟกะพริบหรือเขียน รหัสมอร์สมีให้เลือกสองเวอร์ชันคือรหัสมอร์สดั้งเดิมและรหัสสากล ในรหัสมอร์สสากลเวอร์ชันดั้งเดิมได้รับการแก้ไขโดยการลบช่องว่างและออกแบบขีดกลางให้มีความยาวเฉพาะ รหัสมอร์สมีไว้สำหรับเข้ารหัสตัวอักษรและตัวเลข ส่วนใหญ่จะใช้ในการสื่อสารทางวิทยุและทางทะเลและยังเป็นส่วนหนึ่งของการฝึกทหาร
ภาษาเป็นอุปสรรคสำหรับรหัสมอร์สมาโดยตลอดเนื่องจากยากที่จะใช้รหัสสำหรับอักขระกำกับเสียงในภาษาอื่น มีบางคำที่มีชื่อเสียงถือเป็นคุณลักษณะที่สำคัญของรหัสมอร์สเหมือน'SOS'SOS แบบเต็มคือ Save Our Souls ที่สร้างขึ้นเป็นสัญญาณความทุกข์สากลแสดงถึงอันตราย
ภาพด้านล่างแสดงรหัสมอร์สสำหรับตัวอักษรจาก A ถึง Z
วันนี้ในบทช่วยสอนนี้เราจะสร้างตัวแปลรหัสมอร์สโดยใช้ Arduinoซึ่งจะใช้อักขระใด ๆ เป็นอินพุตจากจอภาพอนุกรมและแปลงเป็นเสียงบี๊บเทียบเท่ารหัสมอร์ส
ส่วนประกอบที่จำเป็น
- Arduino Uno
- Buzzer
- เขียงหั่นขนม
- สายจัมเปอร์
แผนภูมิวงจรรวม
เชื่อมต่อขาบวกกริ่งที่จะ 8 THขาของ Arudino UNO และขาเชิงลบกับพื้นของ Arduino อัปโหลดรหัสโดยใช้ Arduino IDE และพิมพ์อักขระบนจอภาพอนุกรมเพื่อสร้างเสียง นอกจากนี้ยังสามารถเพิ่ม LCD ด้วย Arduino เพื่อแสดงเส้นประและจุด
คำอธิบายการเขียนโปรแกรม
รหัสที่สมบูรณ์สำหรับArduino Morse Code Generatorจะได้รับในตอนท้ายที่นี่เรากำลังอธิบายโปรแกรมเพื่อทำความเข้าใจการทำงานของโครงการ
รหัสด้านล่างนี้ใช้เพื่อรับสตริงอักขระจากนั้นแปลงเป็นรหัสมอร์ส
ถ่าน stringToMorseCode = "";
จากนั้นกำหนดพินสำหรับกริ่งที่เชื่อมต่อกับ Arduino และระดับเสียงสำหรับเสียงที่สร้างขึ้นโดยกริ่ง จากนั้นเราจะกำหนดความยาวของจุดและเส้นประ
int เสียง 8 = 8; // เอาต์พุตเสียงบนพิน 8 int note = 1200; // โน้ตดนตรี / pitch int dotLen = 100; // ความยาวของรหัสมอร์ส 'dot' int dashLen = dotLen * 3; // ความยาวของรหัสมอร์ส 'dash'
ใน โมฆะห่วง () ฟังก์ชั่นถ้าข้อมูลแบบอนุกรมสามารถใช้ได้ก็จะบันทึกลงในตัวแปรindata จากนั้นก็จะอ่านตัวละครตัวหนึ่งโดยใช้คำสั่งอย่างใดอย่างหนึ่งinData คำสั่ง variable.toUppercase () ใช้เพื่อเปลี่ยนอักขระตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ จากนั้นจะสร้างเสียงตามอักขระทุกตัว
โมฆะ loop () { char inChar = 0; ถ่าน inData = ""; // ข้อมูลความยาว 6 ตัวอักษร ตัวแปร String = ""; สตริง variable1 = ""; ดัชนี int1 = 0; ถ้า (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delay (100); inChar = Serial.read (); inData = inChar; ดัชนี 1 ++; inData = '\ 0'; } variable.toUpperCase (); สำหรับ (byte i = 0; i <100; i ++) { variable.concat (String (inData)); } ล่าช้า (20);
ฟังก์ชันด้านล่างนี้ใช้ MorseDot และ MorseDash เพื่อสร้างเสียงสำหรับจุดและเส้นประตามลำดับ
โมฆะ MorseDot () { tone (audio8, note, dotLen); // เริ่มเล่นเสียง ดีเลย์ (dotLen); // ค้างไว้ในตำแหน่งนี้ } โมฆะ MorseDash () { tone (audio8, note, dashLen); // เริ่มเล่นเสียง ดีเลย์ (dashLen); // ดำรงตำแหน่งนี้ }
getchar ฟังก์ชั่นมีรหัสสำหรับตัวอักษรทั้งหมด ดังนั้นเมื่อใดก็ตามที่เราพิมพ์ตัวอักษรใด ๆ รหัสมอร์สตามลำดับจะถูกนำมาจากฟังก์ชันนี้เพื่อสร้างเสียงที่เฉพาะเจาะจง
โมฆะ GetChar (ถ่าน tmpChar) { สวิตช์ (tmpChar) { case 'a': MorseDot (); ล่าช้า (100); มอร์สแดช (); ล่าช้า (100); หยุดพัก; ... ... ... เริ่มต้น: แบ่ง; } }
ตอนนี้อัปโหลดรหัสไปยัง Arduino โดยใช้ Arduino IDE และพิมพ์อักขระใด ๆ ลงในจอภาพอนุกรมแล้วกดปุ่ม Enter เพื่อส่งอักขระไปยัง Arduino
ที่นี่เราได้พิมพ์ 'SOS' ซึ่งเป็นสัญญาณความทุกข์สากลเพื่อสร้างเสียงให้เหมือนกัน
การสาธิตสำหรับสิ่งเดียวกันมีให้ในวิดีโอด้านล่าง