วีดีโอ: การสื่อสารด้วยสายเดี่ยวแบบแยกด้วยแสง: 4 ขั้นตอน (พร้อมรูปภาพ)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สวัสดี สำหรับโครงการพิพิธภัณฑ์สัตว์น้ำ ฉันต้องการสายไฟยาวที่สามารถ:
- จ่ายไฟให้กับอุปกรณ์
- ขออนุญาติสื่อสาร
อื่น
- กระแสไฟและแรงดันไฟต่ำ
- สายไฟยาว +/- 3 เมตร
- การถ่ายโอนข้อมูลช้า
- การสื่อสารแบบสองทิศทาง ฮาล์ฟดูเพล็กซ์
- พื้นที่จำกัดในเครื่อง
- การแยกกัลวานิก
การสื่อสารอยู่ระหว่าง 2 อุปกรณ์ อุปกรณ์สามารถเป็น Arduino, Raspberry PI หรืออุปกรณ์อื่น ๆ โดยใช้พินดิจิตอล
ขั้นตอนที่ 1:
เซ็นเซอร์บางตัว เช่น DS18B20 ใช้สายไฟ 3 เส้นเพื่อจ่ายไฟและสื่อสารกับอุปกรณ์อื่น ในโครงการนี้ สายไฟมีหน้าที่ดังต่อไปนี้:
- +5V
- พื้น
- ข้อมูล (0 / +5V)
หลังจากค้นหาในเน็ตแล้ว ฉันก็ไม่พบอะไรง่ายๆ ที่สามารถนำไปปฏิบัติได้อย่างง่ายดาย การตั้งค่าส่วนใหญ่ใช้ชิปและโปรโตคอลบางตัวซึ่งมีตัวเลือกมากมายที่ฉันไม่ต้องการ แม้ว่าฉันจะพบตัวอย่างที่ดีที่สามารถปรับให้เข้ากับความต้องการของฉันได้ เช่น:
- NXP, AN2342, https://www.nxp.com/docs/en/application-note/AN23…. รูปที่ 5
- EmSa, https://www.esacademy.com, ฉันสามารถทำการแยกขั้วไฟฟ้าของบัส I2C ของฉันได้หรือไม่
- เอ็มเบ็ดเด็ด https://www.embedded.com/print/4025023 รูปที่ 1
เพื่อให้มีความยืดหยุ่น ฉันตัดสินใจสร้างวงจร ใช้ชิ้นส่วนมาตรฐาน / ทั่วไป ตั้งโปรแกรมโปรโตคอลอย่างง่าย หมายเหตุ: เนื่องจากโครงการนี้ใช้ในโครงการอื่น ฉันจะอธิบายการสร้างวงจรและการเขียนโปรแกรมของโปรแกรมทดสอบ อย่าลังเลที่จะใช้สิ่งนี้สำหรับโครงการของคุณเอง คุณต้องสร้างโปรโตคอลที่เหมาะสมกับความต้องการของคุณ
ขั้นตอนที่ 2: รายการอะไหล่
- แหล่งจ่ายไฟ +5V
- สายไฟในครัวเรือนแบบยืดหยุ่นพร้อมตัวนำไฟฟ้า 3 ตัว
- แผ่นไม้อัด 5x7cm
- ตัวต้านทาน 2x 470Ω
- 1x ตัวต้านทาน680Ω
- ตัวต้านทาน 2x 1kΩ
- 2x ไดโอด (เช่น 1N4148)
- 2x ออปโตคัปเปลอร์ EL817
- นำ
- หัวเข็มหมุดตัวเมีย 2 ขา
- หัวเข็มหมุดตัวเมีย 3 ขา
- หัวเข็มหมุดตัวเมีย 4 ขา
- หัวกลม ตัวเมีย 6 ขา
- หัวกลม ตัวเมีย 4 ขา
จำเป็นต้องใช้เครื่องมือบางอย่างเช่นแหนบ, คัตเตอร์, คีมจับ, หัวแร้ง, ไส้ตะเกียง, ขาตั้ง
วิธีการบัดกรี:
ตระหนักถึงความเสี่ยงด้านความปลอดภัยและใช้อุปกรณ์ป้องกันส่วนบุคคล
ขั้นตอนที่ 3: แผนผัง
คำอธิบายของแผนผัง:
เนื่องจากมีพื้นที่จำกัด ด้านขวาของแผนผังจึงอยู่ในเครื่องพร้อมอุปกรณ์ 2 ด้านซ้ายของแผนผังเป็นแบบเทกองและทำงานโดยอุปกรณ์ 1 ระหว่างด้านซ้ายและด้านขวาของตัวนำข้อมูล
- ดิจิตอล “OUT” ทางด้านขวาได้รับการป้องกันโดยไดโอด
- ออปโตคัปเปลอร์ "OUT" ได้รับการคุ้มครองโดยไดโอด
- ในการจำกัดกระแส ตัวต้านทานจะอยู่ด้านหน้าพิน 1 ของออปโตคัปเปลอร์ "IN" และ "OUT"
- พิน 2 ของออปโตคัปเปลอร์เชื่อมต่อกับกราวด์
- Pin 3 emitter ต่อสายดินด้วยตัวต้านทาน
- ตัวสะสมพิน 4 มาพร้อมกับพลังงาน
ในการแสดงภาพการถ่ายโอนข้อมูล LED จะเชื่อมต่อกับสายข้อมูล ค่าตัวต้านทานขึ้นอยู่กับไฟ LED และความสว่างที่ต้องการ คำเตือน: หากค่าตัวต้านทานต่ำเกินไป กระแสไฟที่มากเกินไปจะทำให้พินออกจากอุปกรณ์ 2 หรือออปโตคัปเปลอร์ "IN" จะไม่ถูกขับเคลื่อนอย่างถูกต้อง
ดูตาราง:
- หาก "OUT1" หรือ "OUT2" เป็น "สูง" สายดาต้าจะเป็น +5V
- ถ้า "OUT1" หรือ "OUT2" เป็น "LOW" สายดาต้าจะเป็น 0V
- ที่ขา “IN1” หรือ IN2” สามารถอ่านค่าของสายดาต้าได้
ใน Fritzing เลย์เอาต์ของชิ้นส่วนบนแผ่นกระดานจะถูกกำหนด ไดโอดและตัวต้านทานอยู่ในตำแหน่งแนวตั้ง ดูเส้นสีเหลือง สีส้ม และสีแดง เส้นสีน้ำเงินคือตัวนำที่อยู่ใต้แผ่นกระดาน
ขั้นตอนที่ 4: การเขียนโปรแกรม
เพื่อทดสอบว่าวงจรทำงานหรือไม่ คุณสามารถใช้โปรแกรมที่แนบมา
อุปกรณ์ 1 เป็นเครื่องหลักและควรได้รับพลังงานล่าสุด มันจะส่งลำดับบิต ที่จุดเริ่มต้น 8 บิตแรก 1 สต็อปบิตแล้วลำดับ "เปิด" และ "ปิด"
อุปกรณ์ 2 เป็นทาสและควรเปิดเครื่องก่อน โปรแกรมจะเริ่มอ่านดาต้าไลน์ เมื่อ 8 startbits ถูกอ่าน โปรแกรมจะเริ่มบันทึกบิต เมื่อบันทึก 8 บิต โปรแกรมจะส่งคืนบิต
ในระหว่างการสลับข้อมูล บิต "เปิด" และ "ปิด" สามารถตรวจสอบได้โดยไฟ LED กะพริบและไฟ LED (pin13) บนอุปกรณ์
เมื่อการบัดกรีของคุณใช้ได้และโหลดโปรแกรมแล้ว คุณจะเห็นไฟ LED กะพริบคล้ายกับไฟ LED ในวิดีโอ
(เพื่อหลีกเลี่ยงการลัดวงจร ตัวนำโลหะเปล่าสามารถเคลือบด้วยอีพ็อกซี่ได้)