Mục lục:

Xếp tầng thanh ghi dịch chuyển 74HC595 được điều khiển qua Arduino và Ethernet: 3 bước
Xếp tầng thanh ghi dịch chuyển 74HC595 được điều khiển qua Arduino và Ethernet: 3 bước

Video: Xếp tầng thanh ghi dịch chuyển 74HC595 được điều khiển qua Arduino và Ethernet: 3 bước

Video: Xếp tầng thanh ghi dịch chuyển 74HC595 được điều khiển qua Arduino và Ethernet: 3 bước
Video: ANDROID IOT - LISTVIEW NÂNG CAO - P1 2024, Tháng bảy
Anonim
Xếp tầng các thanh ghi dịch chuyển 74HC595 được điều khiển thông qua Arduino và Ethernet
Xếp tầng các thanh ghi dịch chuyển 74HC595 được điều khiển thông qua Arduino và Ethernet

Hôm nay tôi xin trình bày một dự án mà tôi đã thực hiện trong hai phiên bản. Dự án sử dụng 12 thanh ghi dịch chuyển 74HC595 và 96 đèn LED, bo mạch Arduino Uno với tấm chắn Ethernet Wiznet W5100. 8 đèn LED được kết nối với mỗi thanh ghi ca. Các số 0-9 được biểu thị bằng đèn LED. Mỗi thanh ghi ca được trang bị 8 thiết bị đầu cuối đầu ra.

Mỗi thanh ghi trong số 4 thanh ghi dịch chuyển 74HC595 tạo thành một đơn vị logic - một màn hình để liệt kê một số có 4 chữ số. Tổng cộng, có 3 hiển thị logic trong dự án bao gồm 12 thanh ghi dịch chuyển.

Việc triển khai tương thích với các bo mạch Arduino Nano, Mega, Uno và các tấm chắn và mô-đun Ethernet từ họ Wiznet, cụ thể là các kiểu W5100 và W5500 (sử dụng thư viện Ethernet2).

Quân nhu

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 đến 12 thanh ghi ca 74HC595
  • 32 đến 96 điốt LED

Bước 1: Triển khai đã triển khai trong dự án Với Arduino:

  • Máy chủ web - Máy chủ HTTP chạy trực tiếp trên Arduino, cho phép diễn giải mã HTML
  • WebClient - Ứng dụng khách có khả năng thực hiện một yêu cầu HTTP đến một máy chủ từ xa, gửi / tải xuống dữ liệu

Máy chủ web:

  • Cung cấp một trang web HTML với một biểu mẫu cho phép bạn nhập 3 số có bốn chữ số.
  • Sau khi gửi biểu mẫu, dữ liệu được xử lý và lưu trữ trong bộ nhớ EEPROM, người dùng được thông báo về quá trình xử lý dữ liệu bởi một trang con riêng biệt.
  • Sau khi lưu dữ liệu, người dùng được chuyển hướng trở lại biểu mẫu.
  • Bộ nhớ EEPROM không phụ thuộc vào năng lượng, dữ liệu có thể truy cập được ngay cả sau khi khôi phục nguồn, nhưng cũng có thể khởi động lại bảng.
  • Tất cả các số sau đó được biểu diễn trên ba màn hình bao gồm 12 thanh ghi dịch chuyển 74HC595.

WebClient:

  • Giao tiếp với máy chủ web diễn ra sau mỗi 5 giây sau giao thức
  • Máy chủ web chạy một ứng dụng web PHP cho phép bạn nhập 3 số có bốn chữ số thông qua biểu mẫu HTML.
  • Dữ liệu từ biểu mẫu được lưu trữ trong cơ sở dữ liệu MySQL.
  • Arduino yêu cầu lấy dữ liệu từ cơ sở dữ liệu này thông qua một truy vấn đến máy chủ.
  • Dữ liệu đã xử lý được phân tích cú pháp bởi Arduino, sau đó được vẽ bằng thanh ghi dịch chuyển 74HC595.
  • Dữ liệu cũng được lưu trữ trong bộ nhớ EEPROM của Arduino, chúng được sử dụng trong trường hợp kết nối với máy chủ web không thành công / khi bảng Arduino được khởi động lại, chúng được sử dụng để hiển thị dữ liệu ban đầu trên các thanh ghi dịch chuyển.
  • Dữ liệu chỉ được ghi đè trong EEPROM khi dữ liệu thay đổi, các ô EEPROM được lưu khỏi việc ghi đè không cần thiết.

Bước 2: Nối dây và chụp màn hình

Hệ thống dây điện & ảnh chụp màn hình
Hệ thống dây điện & ảnh chụp màn hình
Hệ thống dây điện & ảnh chụp màn hình
Hệ thống dây điện & ảnh chụp màn hình

Kết nối phân tầng cho thanh ghi dịch chuyển 74HC595 (có thể mở rộng thêm x) - Xuất từ TinkerCAD. Screenshot ở đó từ giao diện máy chủ web, khi nó lấy dữ liệu qua biểu mẫu HTML, hãy xử lý chúng và lưu chúng vào bộ nhớ EEPROM.

Bước 3: 74HC595 + Mã nguồn

Rõ ràng là từ sơ đồ chỉ có 3 dây dữ liệu được sử dụng để điều khiển các thanh ghi dịch chuyển:

  • Đầu ra dữ liệu - (SER đến 74HC595)
  • Đầu ra đồng hồ - (SRCLK trên 74HC595)
  • Latch Outlet - (RCLK đến 74HC595)

Các thanh ghi dịch chuyển có thể được kết hợp trong một tầng, trong khi các thiết bị ngoại vi khác cũng có thể được điều khiển bởi các thanh ghi dịch chuyển - ví dụ, các rơle để chuyển đổi các phần tử công suất. Cũng có thể điều khiển 500 rơle riêng biệt (với đủ số lượng thanh ghi dịch chuyển và nguồn cung cấp) với một đầu ra dữ liệu.

Khi điều khiển đầu ra của các thanh ghi, cũng có thể sửa đổi thứ tự byte thành bit quan trọng nhất - MSB FIRST, hoặc LSB - bit ít quan trọng nhất. Kết quả là, nó đảo ngược kết quả đầu ra. Trong một trường hợp, ví dụ, 7 điốt được sáng, trong trường hợp còn lại 1 điốt tùy thuộc vào đầu vào và thứ tự byte.

Cả hai cách triển khai đều sử dụng bộ nhớ EEPROM, có thể lưu trữ dữ liệu ngay cả sau khi mất điện hoặc sau khi khởi động lại bo mạch. Công dụng thứ hai của bộ nhớ này còn là khả năng biểu diễn dữ liệu cuối cùng đã biết trong trường hợp không thể giao tiếp với máy chủ web (lỗi kết nối, máy chủ).

Bộ nhớ được giới hạn từ 10, 000 đến 100, 000 bản ghi. Việc triển khai được thiết kế để tải bộ nhớ ít nhất có thể. Dữ liệu sẽ không bị ghi đè khi chúng được thay đổi. Nếu cùng một dữ liệu được đọc từ máy chủ / máy khách web, chúng sẽ không bị ghi đè trong bộ nhớ EEPROM.

Có thể dùng thử phần mềm triển khai (phía Arduino) cho WebClient miễn phí tại:

Arduino giao tiếp với giao diện web trong đó có thể sửa đổi 3 số có 4 chữ số:

Yêu cầu mã cho Arduino làm máy chủ web tại: [email protected] để được hướng dẫn thêm:

Đề xuất: