亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用激光模块的莫尔斯电码通信(两者)

组件和用品

Arduino UNO
× 2
面包板(通用)
× 2
Autodesk 激光发射器
× 1
光敏电阻
× 1
跳线(通用)
× 1

应用和在线服务

Arduino IDE

关于这个项目

摩尔斯电码

摩尔斯电码是指将字母数字符号(即字母和数字)转换为点和破折号。每个符号都有不同的点和破折号排列,使它们独一无二。莫尔斯电码用于发送秘密数据或编码数据。在这个项目中,我创建了摩尔斯电码通信的发射器和接收器部分。本项目与不同摩尔斯电码通信项目的独特之处在于接收器部分的算法比任何其他算法都简单。

第 1 步:发射器部分

Transmitter Section用于通过LASER发送输入数据。

所需硬件:-

  • Arduino Uno
  • 激光发射器
  • 面包板
  • 跳线

连接:-

将 LASER 的正极引脚与 Arduino 中数字输入的第 13 引脚连接(按照代码中的编程)。将LASER的GND与Arduino的GND连接起来。

程序:-

代码算法如下:-

  • 1.必须传输的数据作为输入保留,并存储在一个字符数组中。
  • 2.必须传输的 LED 引脚已定义。
  • 3.摩尔斯电码的速度已设置。
  • 4.定义了点和破折号。
  • 5.输入的字符通过开关盒进行检查,并传输激光对应的HIGH和LOW。

第 2 步:接收器部分

发送器发送的编码数据被接收和处理,然后显示在串口监视器上。

所需硬件:-

  • 1. Arduino Uno
  • 2. LDR
  • 3.电阻器 - 10 K ohm
  • 4.面包板
  • 5.跳线

连接:-

将 LDR 的一端连接到 5V 的 Arduino 电源。将 LDR 的另一端与 10K 欧姆电阻以及模拟输入 A0 连接。将电阻的另一端与Arduino的GND相连。

程序:-

接收器部分使用的算法是比互联网上任何其他可用算法最简单的算法。这个算法充满了观察。

  • 1.当 LDR 上没有 LASER 时,LDR 的值将小于 1000。如果 LDR 上的 LASER 发光,但值超过 1000,则需要盖住 LDR 以防止额外光进入其中。在这里,LDR 覆盖着一个由黑色图表纸制成的圆顶。
  • 2.当LASER落在LDR上时,值超过1000,然后进入循环。
  • 3.现在量化这些值,即如果值超过 1000,则将其分配为“1”,否则将其分配为“0”。
  • 4.在循环内,计算“1”和“0”的数量。设置计数器“a”和“f”。计算'1'的数量并将其存储在'a'中,类似地计算'0'的数量并将其分别存储在'f'中。
  • 5.现在分别检查 'a' 和 'f' 的具体值。每个字符都有不同的“a”和“f”集。将显示匹配的值。

限制:-

附加到代码的程序用于打印特定字符。您可以通过使用组合进一步增强代码并显示所有字符集。代码的主要目的是让您了解算法和工作。

代码

  • CODE-1- 用于控制激光发射器
  • CODE-2 - 用于接收端
CODE-1-用于控制激光发射器Arduino
int led13 =13; // 输出 13 上的 LED 闪烁 /* 设置莫尔斯电码的速度 这里是比率代码元素: Dash length =Dot length x 3 Pause between Elements =Dot length */int dotLen =200; // 莫尔斯电码的长度 'dot'int dashLen =dotLen * 3; // 莫尔斯电码的长度 'dash'int elemPause =dotLen;// 字符元素之间的停顿长度int Spaces =dotLen * 3; // 字符之间的空格长度int wordPause =dotLen * 7; // wordvoid setup() 之间的暂停长度 { // 将数字引脚初始化为 LED 灯的输出。 pinMode(led13,输出); }// 创建一个你想用莫尔斯电码输出的字母/单词的循环(在代码顶部的字符串中定义)void loop(){ // 遍历字符串并一次获取一个字符,直到结束达到 (int i =0; i  
CODE-2 - 用于接收器端Arduino
int sensorPin =0; // 为 ldrint sensorValue =0 选择输入引脚; // 存储来自sensorint a, f 的值的变量; // flagsvoid setup() {Serial.begin(9600); //设置通信串口}void loop() {sensorValue =analogRead(sensorPin); // 从传感器读取值//Serial.println(sensorValue);if(sensorValue>1000)// 计算点和破折号的数量{ for(int i=0;i<=13;i++) { sensorValue=模拟读取(sensorPin);如果(传感器值> 1000){a++; //计算字符delay(200)中的点划数; } else { f++; // 计算点划线中的空格数 delay(200); } }}//Serial.print("a="+a);//Serial.println("f="+f);//Serial.println();/* * 检查点、破折号和空格 */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); }

定制零件和外壳

示意图


制造工艺

  1. 激光打标指南
  2. 激光指示器
  3. 半导体激光器
  4. 条码扫描仪
  5. 激光制导导弹
  6. 使用 Zigbee 传感器的交互式激光投影仪
  7. 板对板通信
  8. 使用 Raspberry Pi 的手势控制机器人
  9. 仅使用 Arduino 的 DTMF 解码器
  10. Python3 和 Arduino 通信
  11. Arduino - 使用步进电机控制器通过 Web 绘图
  12. 在工业制造中使用低代码的 4 个好处