สารบัญ:

Cascade of Shift Registers 74HC595 ควบคุมผ่าน Arduino และ Ethernet: 3 ขั้นตอน
Cascade of Shift Registers 74HC595 ควบคุมผ่าน Arduino และ Ethernet: 3 ขั้นตอน

วีดีโอ: Cascade of Shift Registers 74HC595 ควบคุมผ่าน Arduino และ Ethernet: 3 ขั้นตอน

วีดีโอ: Cascade of Shift Registers 74HC595 ควบคุมผ่าน Arduino และ Ethernet: 3 ขั้นตอน
วีดีโอ: การใช้ IC 74HC595 ขยายขา Arduino 2024, กรกฎาคม
Anonim
Cascade of Shift Registers 74HC595 ควบคุมผ่าน Arduino และ Ethernet
Cascade of Shift Registers 74HC595 ควบคุมผ่าน Arduino และ Ethernet

วันนี้ผมขอนำเสนอโครงการที่ผมได้ดำเนินการไปแล้วในสองเวอร์ชัน โครงการนี้ใช้ 12 shift register 74HC595 และ 96 LEDs, Arduino Uno board พร้อม Ethernet shield Wiznet W5100 8 LEDs เชื่อมต่อกับ shift register แต่ละอัน ตัวเลข 0-9 แสดงด้วย LED ทะเบียนกะแต่ละอันมีขั้วเอาท์พุต 8 ขั้ว

การลงทะเบียนกะทั้ง 4 กะ 74HC595 สร้างหน่วยตรรกะ - การแสดงรายการตัวเลข 4 หลัก โดยรวมแล้ว มีการแสดงผลเชิงตรรกะ 3 รายการในโครงการซึ่งประกอบด้วยการลงทะเบียนกะ 12 รายการ

การใช้งานนี้เข้ากันได้กับบอร์ด Arduino Nano, Mega, Uno และสำหรับอีเธอร์เน็ตชิลด์และโมดูลจากตระกูล Wiznet โดยเฉพาะรุ่น W5100 และ W5500 (โดยใช้ไลบรารี Ethernet2)

เสบียง

  • Arduino Uno / นาโน
  • อีเธอร์เน็ต Wiznet W5100 / W5500
  • 4 ถึง 12 shift register 74HC595
  • ไดโอด LED 32 ถึง 96 ตัว

ขั้นตอนที่ 1: ใช้งานจริงในโครงการด้วย Arduino:

  • เว็บเซิร์ฟเวอร์ - เซิร์ฟเวอร์ HTTP ทำงานโดยตรงบน Arduino อนุญาตให้ตีความโค้ด HTML
  • WebClient - ไคลเอนต์สามารถส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์ระยะไกล ส่ง / ดาวน์โหลดข้อมูล

เว็บเซิร์ฟเวอร์:

  • ให้หน้าเว็บ HTML พร้อมแบบฟอร์มที่ให้คุณป้อนตัวเลขสี่หลัก 3 ตัว
  • หลังจากส่งแบบฟอร์ม ข้อมูลจะถูกประมวลผลและเก็บไว้ในหน่วยความจำ EEPROM ผู้ใช้จะได้รับแจ้งเกี่ยวกับการประมวลผลข้อมูลโดยหน้าย่อยแยกต่างหาก
  • หลังจากบันทึกข้อมูลแล้ว ผู้ใช้จะถูกเปลี่ยนเส้นทางกลับไปที่แบบฟอร์ม
  • หน่วยความจำ EEPROM เป็นอิสระจากพลังงาน ข้อมูลสามารถเข้าถึงได้แม้หลังจากการกู้คืนพลังงาน แต่ยังมีการรีสตาร์ทบอร์ด
  • จากนั้นตัวเลขทั้งหมดจะแสดงบนจอแสดงผลสามจอซึ่งประกอบด้วยการลงทะเบียนกะ 74HC595 จำนวน 12 ตัว

เว็บไคลเอนต์:

  • การสื่อสารกับเว็บเซิร์ฟเวอร์จะเกิดขึ้นทุกๆ 5 วินาทีหลังจากโปรโตคอล
  • เว็บเซิร์ฟเวอร์เรียกใช้เว็บแอปพลิเคชัน PHP ที่ให้คุณป้อนตัวเลขสี่หลัก 3 ตัวผ่านแบบฟอร์ม HTML
  • ข้อมูลจากแบบฟอร์มถูกเก็บไว้ในฐานข้อมูล MySQL
  • Arduino ร้องขอให้ดึงข้อมูลจากฐานข้อมูลนี้ผ่านแบบสอบถามไปยังเซิร์ฟเวอร์
  • ข้อมูลที่ประมวลผลจะถูกแยกวิเคราะห์โดย Arduino จากนั้นจึงวางแผนโดยใช้ shift register 74HC595
  • ข้อมูลยังถูกเก็บไว้ในหน่วยความจำ EEPROM ของ Arduino ซึ่งจะใช้ในกรณีที่การเชื่อมต่อกับเว็บเซิร์ฟเวอร์ล้มเหลว / เมื่อบอร์ด Arduino ถูกรีสตาร์ท ข้อมูลเหล่านี้จะถูกใช้สำหรับการแสดงผลเริ่มต้นของข้อมูลบน shift register
  • ข้อมูลจะถูกเขียนทับใน EEPROM เฉพาะเมื่อข้อมูลมีการเปลี่ยนแปลง เซลล์ EEPROM จะถูกบันทึกจากการเขียนทับที่ไม่จำเป็น

ขั้นตอนที่ 2: การเดินสายไฟ & ภาพหน้าจอ

การเดินสายไฟ & ภาพหน้าจอ
การเดินสายไฟ & ภาพหน้าจอ
การเดินสายไฟ & ภาพหน้าจอ
การเดินสายไฟ & ภาพหน้าจอ

การเชื่อมต่อแบบคาสเคดสำหรับ shift register 74HC595 (สามารถขยายได้อีก x) - ส่งออกจาก TinkerCAD มีภาพหน้าจอจากอินเทอร์เฟซเว็บเซิร์ฟเวอร์ เมื่อได้รับข้อมูลผ่านรูปแบบ HTML ประมวลผล และบันทึกลงในหน่วยความจำ EEPROM

ขั้นตอนที่ 3: 74HC595 + ซอร์สโค้ด

จากแผนภาพจะเห็นได้ชัดเจนว่ามีเพียง 3 สายข้อมูลเท่านั้นที่ใช้ควบคุม shift register:

  • เต้ารับข้อมูล - (SER ถึง 74HC595)
  • เอาต์พุตนาฬิกา - (SRCLK บน 74HC595)
  • สลักทางออก - (RCLK ถึง 74HC595)

Shift register สามารถรวมกันเป็นน้ำตกได้ ในขณะที่อุปกรณ์ต่อพ่วงอื่นๆ สามารถควบคุมได้โดย shift register - ตัวอย่างเช่น รีเลย์สำหรับส่วนประกอบกำลังสวิตชิ่ง นอกจากนี้ยังสามารถควบคุมรีเลย์ 500 ตัวแยกกัน (ด้วยจำนวนรีจิสเตอร์และแหล่งจ่ายไฟที่เพียงพอ) ด้วยเอาต์พุตข้อมูลเดียว

เมื่อควบคุมเอาต์พุตของรีจิสเตอร์ ยังสามารถแก้ไขลำดับไบต์เป็นบิตที่สำคัญที่สุด - MSB FIRST หรือเป็น LSB - บิตที่มีนัยสำคัญน้อยที่สุด เป็นผลให้มันกลับเอาท์พุต ในกรณีหนึ่ง ตัวอย่างเช่น 7 ไดโอดติดสว่าง ในกรณีอื่น 1 ไดโอดขึ้นอยู่กับอินพุตและลำดับไบต์

การใช้งานทั้งสองแบบใช้หน่วยความจำ EEPROM ซึ่งสามารถจัดเก็บข้อมูลได้แม้หลังจากไฟฟ้าขัดข้องหรือหลังจากรีสตาร์ทบอร์ด การใช้หน่วยความจำครั้งที่สองยังเป็นความสามารถในการแสดงข้อมูลที่ทราบล่าสุดในกรณีที่ไม่สามารถสื่อสารกับเว็บเซิร์ฟเวอร์ได้ (ข้อผิดพลาดในการเชื่อมต่อ, เซิร์ฟเวอร์)

หน่วยความจำถูกจำกัดไว้ที่ 10,000 ถึง 100, 000 สำเนา การใช้งานได้รับการออกแบบมาเพื่อให้โหลดหน่วยความจำน้อยที่สุด ข้อมูลจะไม่ถูกเขียนทับเมื่อมีการเปลี่ยนแปลง หากข้อมูลเดียวกันถูกอ่านจากเว็บเซิร์ฟเวอร์ / ไคลเอนต์ ข้อมูลเหล่านั้นจะไม่ถูกเขียนทับในหน่วยความจำ EEPROM

การใช้งานซอฟต์แวร์ (ฝั่ง Arduino) สำหรับ WebClient สามารถทดลองใช้ได้ฟรีที่:

Arduino สื่อสารกับเว็บอินเตอร์เฟสซึ่งเป็นไปได้ที่จะแก้ไขตัวเลขสี่หลัก 3 ตัว:

ขอรหัสสำหรับ Arduino เป็นเว็บเซิร์ฟเวอร์ที่: [email protected]บริจาคเพื่อรับคำแนะนำเพิ่มเติม:

แนะนำ: