資料介紹
描述
該項(xiàng)目使用兩個(gè) Arduino UNO,每個(gè)都有自己的計(jì)算機(jī),以摩爾斯電碼交換消息。激光二極管以莫爾斯電碼發(fā)送脈沖,光敏電阻接收它們。這兩個(gè)“尋呼機(jī)”使用同一組代碼,都可以發(fā)送和接收消息,就像發(fā)短信一樣。與類似的項(xiàng)目不同,這個(gè)項(xiàng)目允許使用更少的代碼實(shí)現(xiàn)所有可見(jiàn)的 ASCII 字符。

代碼分解:
- 摩爾斯時(shí)間值:摩爾斯點(diǎn)長(zhǎng) 30 毫秒,破折號(hào)為 60,下劃線為 90。用于分隔摩爾斯元素的元素空間為 30。字符空間,用于分隔表示 ASCII 字符的元素組合, 是 30。用于分隔背靠背消息的消息空間是 60??梢愿倪@些值而不會(huì)干擾代碼的其余部分。
- ASCII 字符數(shù)組:ASCII 中有 96 個(gè)可見(jiàn)字符,以空格 (32) 開(kāi)頭。Morse 字符數(shù)組包含 96 個(gè)由 . - _ 按照它們的排列順序,例如。".", "-", "_", "..", ".-", "._", "-.", "--", "-_"
- Intro loop:Serial 為用戶打印說(shuō)明,激光打開(kāi),以便與其他尋呼機(jī)的光敏電阻對(duì)齊。它要求輸入用戶名,稍后將其發(fā)送給其他用戶。輸入用戶名后,它會(huì)被添加到一個(gè)字符串中,該字符串會(huì)去除前導(dǎo)和尾隨空格并打印出來(lái)。激光關(guān)閉,循環(huán)無(wú)法再次運(yùn)行。
- 發(fā)送器循環(huán):當(dāng) Serial 讀取消息時(shí),while 循環(huán)開(kāi)始打印“Me:”并檢查它是否是發(fā)送的第一條消息。如果是,則將用戶名添加到帶有冒號(hào)的文本開(kāi)頭。發(fā)送文本通過(guò)一個(gè) for 循環(huán),從每個(gè)字符的 ASCII 值中減去 32。這個(gè)數(shù)字是 ASCII 數(shù)組中一個(gè)字符的索引,該字符中的摩爾斯元素被添加到一個(gè)字符串中,后面有一個(gè)空格。這將循環(huán)文本中的字符數(shù)。for 循環(huán)檢查莫爾斯弦中的每個(gè)元素,如果它是點(diǎn)、破折號(hào)或下劃線則打開(kāi)激光并延遲它們各自的時(shí)間,或者如果它是空格則讓激光關(guān)閉一個(gè)字符空間延遲。然后,如果 String 結(jié)束,它會(huì)延遲一個(gè)元素空間和一個(gè)消息空間。
- 接收器循環(huán):當(dāng)光敏電阻檢測(cè)到高于激光閾值的光時(shí),會(huì)開(kāi)始一個(gè) while 循環(huán),在延遲點(diǎn)長(zhǎng)度加上 5 毫秒的緩沖時(shí)間后檢查光水平是否低于閾值。如果是,則在莫爾斯弦中添加一個(gè)點(diǎn)。如果否,它會(huì)在另一個(gè) 30 毫秒延遲后再次檢查。如果是,則添加破折號(hào)。如果否,則添加下劃線,并發(fā)生另一個(gè)延遲以填充下劃線長(zhǎng)度。如果光敏電阻在元素空間延遲后再次檢測(cè)到激光亮度,則會(huì)發(fā)生點(diǎn)延遲并且循環(huán)重新開(kāi)始。如果否,它會(huì)向 Morse String 添加一個(gè)空格,并在字符和元素空格延遲后再次檢查。如果是,它會(huì)添加一個(gè)點(diǎn)延遲并重新開(kāi)始循環(huán)。如果仍然沒(méi)有,則循環(huán)結(jié)束并且 for 循環(huán)計(jì)算莫爾斯字符串中的空格數(shù)。聲明一個(gè)長(zhǎng)度為空格數(shù)的數(shù)組,另一個(gè) for 循環(huán)使其值按順序成為每個(gè)空格的索引。另一個(gè) for 循環(huán)將每個(gè)空格之間的莫爾斯元素的子串添加到一個(gè)字符串中,并在莫爾斯字符數(shù)組中搜索它。char 的索引加上 32,一個(gè) ASCII 字符,被添加到接收到的文本字符串中。此 for 循環(huán)一直運(yùn)行,直到達(dá)到莫爾斯弦中的空格數(shù)。接收到的文本 String 會(huì)去除前導(dǎo)和尾隨空格,如果它是第一條接收到的消息,則將其打印到 Serial 并將從索引 0 到第一個(gè)冒號(hào)的子字符串添加到 String 作為其他用戶的名稱。如果它不是收到的第一條消息,它會(huì)打印用戶名字符串,然后打印消息。另一個(gè) for 循環(huán)將每個(gè)空格之間的莫爾斯元素的子串添加到一個(gè)字符串中,并在莫爾斯字符數(shù)組中搜索它。char 的索引加上 32,一個(gè) ASCII 字符,被添加到接收到的文本字符串中。此 for 循環(huán)一直運(yùn)行,直到達(dá)到莫爾斯弦中的空格數(shù)。接收到的文本 String 會(huì)去除前導(dǎo)和尾隨空格,如果它是第一條接收到的消息,則將其打印到 Serial 并將從索引 0 到第一個(gè)冒號(hào)的子字符串添加到 String 作為其他用戶的名稱。如果它不是收到的第一條消息,它會(huì)打印用戶名字符串,然后打印消息。另一個(gè) for 循環(huán)將每個(gè)空格之間的莫爾斯元素的子串添加到一個(gè)字符串中,并在莫爾斯字符數(shù)組中搜索它。char 的索引加上 32,一個(gè) ASCII 字符,被添加到接收到的文本字符串中。此 for 循環(huán)一直運(yùn)行,直到達(dá)到莫爾斯弦中的空格數(shù)。接收到的文本 String 會(huì)去除前導(dǎo)和尾隨空格,如果它是第一條接收到的消息,則將其打印到 Serial 并將從索引 0 到第一個(gè)冒號(hào)的子字符串添加到 String 作為其他用戶的名稱。如果它不是收到的第一條消息,它會(huì)打印用戶名字符串,然后打印消息。此 for 循環(huán)一直運(yùn)行,直到達(dá)到莫爾斯弦中的空格數(shù)。接收到的文本 String 會(huì)去除前導(dǎo)和尾隨空格,如果它是第一條接收到的消息,則將其打印到 Serial 并將從索引 0 到第一個(gè)冒號(hào)的子字符串添加到 String 作為其他用戶的名稱。如果它不是收到的第一條消息,它會(huì)打印用戶名字符串,然后打印消息。此 for 循環(huán)一直運(yùn)行,直到達(dá)到莫爾斯弦中的空格數(shù)。接收到的文本 String 會(huì)去除前導(dǎo)和尾隨空格,如果它是第一條接收到的消息,則將其打印到 Serial 并將從索引 0 到第一個(gè)冒號(hào)的子字符串添加到 String 作為其他用戶的名稱。如果它不是收到的第一條消息,它會(huì)打印用戶名字符串,然后打印消息。
- 莫爾斯電碼開(kāi)源分享
- 創(chuàng)建Bolt IoT支持的文本/語(yǔ)音到莫爾斯編碼器
- Morsibug:莫爾斯機(jī)器
- 莫爾斯電碼編碼器
- 摩爾斯電碼開(kāi)源分享
- 直鍵莫爾斯電碼振蕩器開(kāi)源分享
- 莫爾斯電碼翻譯器開(kāi)源分享
- 如何使用單片機(jī)制作多功能莫爾斯碼電路? 12次下載
- PIC單片機(jī)莫爾斯電碼器的資料和程序資料免費(fèi)下載 33次下載
- 莫爾斯電碼練習(xí)器原理圖 51次下載
- Lakey莫爾斯碼聲音生成可做鈴聲 1次下載
- 莫爾斯電碼(國(guó)際通用) 0次下載
- 一種手工莫爾斯電報(bào)質(zhì)量評(píng)估系統(tǒng)設(shè)計(jì)
- 用單片機(jī)制作多功能莫爾斯碼電路
- FLEX高速尋呼機(jī)專用芯片
- 汽車(chē)CAN收發(fā)器的作用、原理及構(gòu)成 2091次閱讀
- 收發(fā)器的主要作用與種類詳解 2428次閱讀
- 收發(fā)器保護(hù)電路原理圖 747次閱讀
- 光纖收發(fā)器故障維修案例 2107次閱讀
- NXP CAN收發(fā)器的特點(diǎn)及應(yīng)用 3367次閱讀
- CWvox:一種將語(yǔ)音轉(zhuǎn)換為莫爾斯電碼的簡(jiǎn)單設(shè)備 858次閱讀
- 多模光纖收發(fā)器怎么用 3918次閱讀
- 光纖收發(fā)器的作用和使用方法 2.5w次閱讀
- PoE光纖收發(fā)器如何工作,PoE光纖收發(fā)器的應(yīng)用 5256次閱讀
- 光纖收發(fā)器a與b怎么放 3w次閱讀
- 光纖收發(fā)器的效果原理 4232次閱讀
- 深入探析CAN收發(fā)器各項(xiàng)參數(shù) 1.4w次閱讀
- 關(guān)于RS485自動(dòng)收發(fā)型收發(fā)器的問(wèn)題解決 1.9w次閱讀
- 光纖模塊與光纖收發(fā)器使用方法_光纖模塊與光纖收發(fā)器的區(qū)別 2.5w次閱讀
- 有關(guān)光纖收發(fā)器的基本常識(shí)解析 1987次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費(fèi)
- 2AD庫(kù)封裝庫(kù)安裝教程
- 0.49 MB | 1次下載 | 免費(fèi)
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費(fèi)
- 4網(wǎng)絡(luò)安全從業(yè)者入門(mén)指南
- 2.91 MB | 1次下載 | 免費(fèi)
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費(fèi)
- 6海川SM5701規(guī)格書(shū)
- 1.48 MB | 次下載 | 免費(fèi)
- 7H20PR5電磁爐IGBT功率管規(guī)格書(shū)
- 1.68 MB | 次下載 | 1 積分
- 8IP防護(hù)等級(jí)說(shuō)明
- 0.08 MB | 次下載 | 免費(fèi)
本月
- 1貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開(kāi)發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開(kāi)發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計(jì)指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍(lán)牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費(fèi)
- 8蘋(píng)果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評(píng)論