Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Komunikasi Kode Morse dengan Modul Laser – Proyek Arduino Dua Sisi

Komponen dan Perlengkapan

Aplikasi dan Layanan Online

Tentang Proyek Ini

Kode Morse mengonversi simbol alfanumerik (huruf dan angka) menjadi titik dan garis. Setiap simbol memiliki pola unik, sehingga cocok digunakan untuk mengirim data rahasia atau terenkripsi. Proyek ini mencakup bagian pemancar dan penerima komunikasi Kode Morse. Keunikannya adalah algoritma penerima yang sangat sederhana dibanding proyek serupa lainnya.

Komunikasi Kode Morse dengan Modul Laser – Proyek Arduino Dua Sisi

Langkah 1: Bagian Pemancar

Bagian Pemancar digunakan untuk mengirim data input melalui LASER.

Komunikasi Kode Morse dengan Modul Laser – Proyek Arduino Dua Sisi

Perangkat Keras yang Diperlukan

Koneksi

Hubungkan pin positif LASER ke pin digital 13 Arduino. Hubungkan GND LASER ke GND Arduino.

Program

Algoritma kode adalah sebagai berikut:

  1. Data yang akan ditransmisikan disimpan sebagai input dalam array karakter.
  2. Pin LED yang akan ditransmisikan didefinisikan.
  3. Kecepatan Kode Morse diatur.
  4. Titik dan garis didefinisikan.
  5. Karakter input diperiksa melalui switch case, dan sinyal HIGH/LOW LASER yang sesuai ditransmisikan.

Langkah 2: Bagian Penerima

Data terkode yang dikirim oleh pemancar diterima dan diproses, kemudian ditampilkan di Serial Monitor.

Komunikasi Kode Morse dengan Modul Laser – Proyek Arduino Dua Sisi

Perangkat Keras yang Diperlukan

Koneksi

Hubungkan satu ujung LDR ke 5V Arduino. Hubungkan ujung lainnya ke resistor 10K ohm serta input analog A0. Hubungkan ujung resistor lainnya ke GND Arduino.

Program

Algoritma yang digunakan di bagian penerima adalah algoritma termudah dan didasarkan pada pengamatan:

  1. Jika tidak ada LASER yang jatuh pada LDR, nilai LDR akan kurang dari 1000. Jika nilai melebihi 1000 meskipun LASER menyala, tutup LDR dari cahaya ekstra (misalnya dengan domo kertas hitam).
  2. Ketika LASER jatuh pada LDR, nilai melebihi 1000 dan memasuki loop.
  3. Kuantisasi nilai: jika lebih dari 1000, tetapkan sebagai '1', jika tidak sebagai '0'.
  4. Di dalam loop, hitung jumlah '1' dan '0'. Atur counter 'a' dan 'f'. Simpan jumlah '1' di 'a' dan jumlah '0' di 'f'.
  5. Periksa nilai spesifik 'a' dan 'f'. Setiap karakter memiliki pasangan 'a' dan 'f' yang berbeda. Nilai yang cocok akan ditampilkan.

Keterbatasan

Program yang disertakan digunakan untuk mencetak karakter tertentu. Anda dapat mengembangkan kode lebih lanjut dengan kombinasi untuk menampilkan semua karakter. Tujuan utama kode adalah memahami algoritma dan cara kerjanya.

Kode

KODE-1 – Mengontrol Pemancar LASER
int led13 = 13;
int dotLen = 200;
int dashLen = dotLen * 3;
int elemPause = dotLen;
int Spaces = dotLen * 3;
int wordPause = dotLen * 7;

void setup() {
  pinMode(led13, OUTPUT);
}

void loop() {
  for (int i = 0; i < sizeof(stringToMorseCode) - 1; i++) {
    char tmpChar = stringToMorseCode[i];
    tmpChar = toLowerCase(tmpChar);
    GetChar(tmpChar);
  }
  LightsOff(8000);
}

void MorseDot() {
  digitalWrite(led13, HIGH);
  delay(dotLen);
}

void MorseDash() {
  digitalWrite(led13, HIGH);
  delay(dashLen);
}

void LightsOff(int delayTime) {
  digitalWrite(led13, LOW);
  delay(delayTime);
}

void GetChar(char tmpChar) {
  switch (tmpChar) {
    case 'a': MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'b': MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'c': MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'd': MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'e': MorseDot(); LightsOff(elemPause); break;
    case 'f': MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'g': MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'h': MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'i': MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'j': MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'k': MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'l': MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'm': MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'n': MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'o': MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'p': MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 'q': MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'r': MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 's': MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    case 't': MorseDash(); LightsOff(elemPause); break;
    case 'u': MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'v': MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'w': MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'x': MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'y': MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); break;
    case 'z': MorseDash(); LightsOff(elemPause); MorseDash(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); MorseDot(); LightsOff(elemPause); break;
    default: LightsOff(Spaces);
  }
}
KODE-2 – Ujung Penerima
int sensorPin = 0;
int sensorValue = 0;
int a, f;

void setup() {
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  if (sensorValue > 1000) {
    for (int i = 0; i <= 13; i++) {
      sensorValue = analogRead(sensorPin);
      if (sensorValue > 1000) {
        a++;
        delay(200);
      } else {
        f++;
        delay(200);
      }
    }
  }

  if (a == 4 && f == 10) { Serial.print("a"); }
  if (a == 6 && f == 8) { Serial.print("b"); }
  if (a == 8 && f == 6) { Serial.print("c"); }
  if (a == 1 && f == 13) { Serial.print("e"); }
  if (a == 2 && f == 12) { Serial.print("i"); }
  if (a == 10 && f == 4) { Serial.print("j"); }
  if (a == 7 && f == 7) { Serial.print("g"); }
  if (a == 9 && f == 5) { Serial.print("o"); }
  if (a == 3 && f == 11) { Serial.print("s"); }
  f = a = 0;
  delay(200);
}

Bagian Kustom dan Pelapis

Komunikasi Kode Morse dengan Modul Laser – Proyek Arduino Dua Sisi

Skematik

Komunikasi Kode Morse dengan Modul Laser – Proyek Arduino Dua Sisi

Proses manufaktur

  1. Panduan Lengkap Tanda Laser: Jenis, Manfaat, dan Aplikasi
  2. Penunjuk Laser: Desain, Manufaktur, dan Tinjauan Keselamatan
  3. Laser Semikonductor: Pembentukan Cahaya Presisi untuk Teknologi Modern
  4. Pindai Kode Batang: Teknologi, Desain, dan Tren Masa Depan
  5. Rudal Terpandu Laser: Pengembangan, Manufaktur, dan Dampak Strategis
  6. Membangun Proyeksi Laser Interaktif dengan Sensor Zigbee dan Platform Gravio Edge
  7. Membangun Komunikasi UART antara Raspberry Pi 4 dan Papan HiFive1
  8. Robot yang Dikontrol Gestur dengan Raspberry Pi
  9. Membangun DTMF Decoder Hanya Menggunakan Arduino – Tidak Perlu IC Tambahan
  10. 4 Manfaat Utama Solusi Low-Code untuk Manufaktur Industri