Mục lục:

Mô-đun màn hình LED Arduino và TM1638: 11 bước
Mô-đun màn hình LED Arduino và TM1638: 11 bước

Video: Mô-đun màn hình LED Arduino và TM1638: 11 bước

Video: Mô-đun màn hình LED Arduino và TM1638: 11 bước
Video: [Arduino basic #19] LED 7 đoạn 4 số 2024, Tháng bảy
Anonim
Mô-đun màn hình LED Arduino và TM1638
Mô-đun màn hình LED Arduino và TM1638

Nếu bạn cần một cách nhanh chóng và dễ dàng để thêm một số đầu vào và đầu ra của người dùng vào một dự án, thì những mô-đun hiển thị này rất thú vị và thú vị.

Chúng chứa tám chữ số LED màu đỏ 7 đoạn, tám đèn LED đỏ / xanh lá cây và tám nút để người dùng nhập liệu. Các thiết bị này cũng có thể được kết nối theo chuỗi, cho phép lên đến năm chiếc cùng một lúc và một dây cáp ngắn được bao gồm trong mỗi mô-đun, cũng như một số miếng đệm và bu lông ngắn, như được hiển thị trong hình ảnh.

Bước 1:

Hình ảnh
Hình ảnh

Các miếng đệm chỉ đủ dài để nâng PCB lên trên bề mặt, tuy nhiên để gắn các bảng ở bất kỳ đâu hữu ích, bạn sẽ cần những tấm dài hơn. Bạn cũng có thể muốn tháo các ổ cắm IDC nếu bạn muốn gắn mô-đun gần với bề mặt của bảng điều khiển. Đây sẽ là một nhiệm vụ đơn giản vì chúng là ổ cắm xuyên lỗ.

Bước 2:

Hình ảnh
Hình ảnh

Bo mạch được điều khiển bởi một vi mạch TM1638.

Đây là đèn LED và IC điều khiển giao diện từ “Titan Micro Electronics”. Bạn cũng có thể mua các IC này từ PMD Way. Bạn cũng có thể tải xuống biểu dữ liệu để biết thêm chi tiết.

Bước 3: Bắt đầu - Phần cứng

Bắt đầu - Phần cứng
Bắt đầu - Phần cứng

Phần cứng - Kết nối với bảng tương thích với Arduino (hoặc MCU khác) khá đơn giản. Các sơ đồ chân được hiển thị ở mặt sau của PCB và khớp với khớp nối trên cáp ribbon. Nếu bạn nhìn vào phần cuối của cáp như vậy.

Lỗ trên cùng bên phải là chốt một, với trên cùng bên trái là chốt hai, chốt chín dưới cùng bên phải và chốt mười dưới cùng bên trái. Do đó sơ đồ chân là:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. không kết nối.

Để sử dụng Arduino, chân 1 ~ 4 là chân tối thiểu cần thiết để sử dụng một mô-đun. Mỗi mô-đun bổ sung sẽ yêu cầu một chân kỹ thuật số khác được kết nối với STB2, STB3, v.v. Hãy tìm hiểu thêm về điều này sau. Xin lưu ý rằng mỗi mô-đun được đặt ở độ sáng đầy đủ với mỗi đèn LED được bật tiêu thụ 127mA, vì vậy sẽ khôn ngoan hơn nếu sử dụng nguồn điện bên ngoài với nhiều mô-đun và các kết nối khác với bảng Arduino.

Bước 4: Bắt đầu - Phần mềm

Phần mềm - tải xuống và cài đặt thư viện T1638 từ đây. Cảm ơn và chúc mừng cho rjbatista tại gmail dot com cho thư viện. Khởi tạo các mô-đun trong bản phác thảo rất đơn giản. Bao gồm thư viện với:

#bao gồm

sau đó sử dụng một trong các cách sau cho mỗi mô-đun:

Mô-đun TM1638 (x, y, z);

x là chân kỹ thuật số Arduino được kết nối với chân cáp mô-đun 4, y là chân kỹ thuật số Arduino được kết nối với chân cáp mô-đun 3 và z là chân nhấp nháy. Vì vậy, nếu bạn có một mô-đun với dữ liệu, đồng hồ và nhấp nháy được kết nối với các chân 8, 7 và 6, bạn sẽ sử dụng:

Mô-đun TM1638 (8, 7, 6);

Nếu bạn có hai mô-đun, với nhấp nháy của mô-đun một được kết nối với Arduino kỹ thuật số 6 và nhấp nháy của mô-đun hai được kết nối với kỹ thuật số 5, bạn sẽ sử dụng:

Mô-đun TM1638 (8, 7, 6); Mô-đun TM1638 (8, 7, 5);

và như vậy cho nhiều mô-đun hơn. Bây giờ để kiểm soát màn hình…

Bước 5: Đèn LED Bi-color

Đèn LED hai màu
Đèn LED hai màu

Điều khiển đèn LED đỏ / xanh lá cây rất dễ dàng. Để tham khảo, chúng được đánh số từ 0 đến 7 từ trái sang phải. Để bật hoặc tắt một đèn LED, hãy sử dụng như sau:

module.setLED (TM1638_COLOR_RED, x); // đặt LED số x thành redmodule.setLED (TM1638_COLOR_GREEN, x); // đặt LED số x thành màu xanh lá cây module.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // đặt LED số x thành đỏ và xanh lá cây

Sử dụng phương pháp trên có thể đơn giản nhưng hơi kém hiệu quả. Một cách tốt hơn là giải quyết tất cả các đèn LED trong một câu lệnh. Để làm điều này, chúng tôi gửi hai byte dữ liệu trong hệ thập lục phân đến màn hình. MSB (byte quan trọng nhất) bao gồm tám bit, mỗi bit đại diện cho một đèn LED màu xanh lục đang bật (1) hoặc tắt (0). LSB (byte ít quan trọng nhất) đại diện cho các đèn LED màu đỏ.

Một cách dễ dàng để xác định giá trị thập lục phân để điều khiển đèn LED rất đơn giản, hình ảnh bạn có một hàng đèn LED - tám hàng đầu tiên có màu xanh lá cây và tám hàng thứ hai là màu đỏ. Đặt từng chữ số thành 1 cho bật và 0 cho tắt. Chuyển đổi hai số nhị phân sang hệ thập lục phân và sử dụng hàm này:

module.setLEDs (0xgreenred);

Trong đó màu xanh lá cây là số thập lục phân cho các đèn LED màu xanh lá cây và màu đỏ là số thập lục phân cho các đèn LED màu đỏ. Ví dụ: để bật ba đèn LED đầu tiên có màu đỏ và ba đèn LED cuối cùng là màu xanh lá cây, biểu diễn nhị phân sẽ là:

00000111 11100000 trong hệ thập lục phân là E007.

Vì vậy, chúng tôi sẽ sử dụng:

module.setLEDs (0xE007);

tạo ra hình ảnh như được hiển thị ở trên.

Bước 6: Màn hình 7 đoạn

Để xóa màn hình số (nhưng không phải đèn LED bên dưới), chỉ cần sử dụng:

module.clearDisplay ();

hoặc để bật mọi phân đoạn VÀ tất cả các đèn LED, hãy sử dụng cách sau

module.setupDisplay (true, 7); // trong đó 7 là cường độ (từ 0 ~ 7)

Để hiển thị số thập phân, hãy sử dụng hàm:

module.setDisplayToDecNumber (a, b, false);

trong đó a là số nguyên, b là vị trí của dấu thập phân (0 cho không, 1 cho chữ số 8, 2, cho chữ số 7, 4 cho chữ số 6, 8 cho chữ số 4, v.v.) và tham số cuối cùng (true / false) bật hoặc tắt các số không ở đầu. Bản phác thảo sau minh họa việc sử dụng chức năng này:

#include // xác định mô-đun trên chân dữ liệu 8, chân đồng hồ 9 và chân nhấp nháy 7 mô-đun TM1638 (8, 9, 7); trái dấu long a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); trì hoãn (1); } for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); trì hoãn (1); }}

… Với kết quả hiển thị trong video.

Bước 7:

Image
Image

Một trong những tính năng thú vị nhất là khả năng cuộn văn bản trên một hoặc nhiều màn hình. Để làm như vậy không thực sự cần lời giải thích như bản phác thảo trình diễn bao gồm:

tm_1638_scrolling_modules_example.pde

đi kèm với thư viện TM1638 dễ dàng theo dõi. Chỉ cần chèn văn bản của bạn vào chuỗi const char , đảm bảo rằng (các) mô-đun được nối dây theo định nghĩa mô-đun ở đầu bản phác thảo và bạn đã sẵn sàng. Để xem các ký tự có sẵn, hãy truy cập trang chức năng. Lưu ý rằng màn hình chỉ có bảy phân đoạn, vì vậy một số ký tự có thể trông không hoàn hảo, nhưng theo ngữ cảnh sẽ cho bạn một ý tưởng hay - hãy xem video ở bước này.

Bước 8:

Cuối cùng, bạn cũng có thể giải quyết riêng từng đoạn của mỗi chữ số. Hãy xem xét nội dung của mảng này:

giá trị byte = {1, 2, 4, 8, 16, 32, 64, 128};

mỗi phần tử đại diện cho các chữ số 1 ~ 8. Giá trị của mỗi phần tử xác định phân đoạn của chữ số bật lên. Đối với các đoạn a ~ f, dp các giá trị là 1, 2, 4, 6, 16, 32, 64, 128. Vì vậy, kết quả của việc sử dụng mảng trên trong hàm sau:

module.setDisplay (giá trị);

sẽ được trên mỗi hình ảnh.

Bước 9:

Hình ảnh
Hình ảnh

Đương nhiên, bạn có thể kết hợp các giá trị cho mỗi chữ số để tạo các ký tự, biểu tượng, vân vân của riêng bạn. Ví dụ: sử dụng các giá trị sau:

giá trị byte = {99, 99, 99, 99, 99, 99, 99, 99};

chúng tôi đã tạo theo hình ảnh trong bước này.

Bước 10: Các nút

Giá trị của các nút được trả về dưới dạng giá trị byte từ hàm:

module.getButtons ();

Vì có tám nút, mỗi nút đại diện cho một bit của số nhị phân được trả về dưới dạng một byte. Nút bên trái trả về giá trị thập phân và bên phải trả về 128. Nó cũng có thể trả về các lần nhấn đồng thời, vì vậy nhấn nút một và nút tám trả về 129. Hãy xem xét bản phác thảo sau, bản vẽ này trả về giá trị của các lần nhấn nút ở dạng thập phân, sau đó hiển thị giá trị:

#include // xác định mô-đun trên chân dữ liệu 8, chân đồng hồ 9 và chân nhấp nháy 7 mô-đun TM1638 (8, 9, 7); các nút byte; void setup () {} void loop () {button = module.getButtons (); module.setDisplayToDecNumber (các nút, 0, sai); }

và kết quả trong video.

Những bảng hiển thị này rất hữu ích và hy vọng bạn sẽ tìm thấy một ngôi nhà trong các dự án của mình. Bài đăng này do pmdway.com mang đến cho bạn - cung cấp mọi thứ cho các nhà sản xuất và những người đam mê thiết bị điện tử, với giao hàng miễn phí trên toàn thế giới.

Đề xuất: