ทำป้ายตัวอักษรวิ่งด้วย LED Dot Matrix 16x16 โดยส่งข้อมูลผ่าน Serial Communication

4HC595 เป็นตัวเลื่อนบิตขนาด 8 บิต (8-bit Shift Register) โดยรับข้อมูลเข้าและส่งออกที่ละบิต (Serial-In & Serial-Out) และมีเอาต์พุตแบบ 8 บิต (Parallel Data Output) ถ้าต้องการจะส่งข้อมูลไปกำหนดสถานะลอจิกให้ขาเอาต์พุตทั้ง 8 ขา (Q0…Q7) จะต้องใช้วิธีเลื่อนบิตทีละบิตเข้าทางอินพุต DS และสร้างสัญญาณ Clock ป้อนเข้าที่ขา SHCP เพื่อกำหนดจังหวะในการทำงานและสามารถเลือกใช้ความถี่ของสัญญาณอินพุต SHCP ได้เกินกว่า 10 MHz การเลื่อนบิตหนึ่งครั้ง ดังนั้นจึงต้องใช้ทั้งหมด 8 ไซเคิล ถ้าเลื่อนมากกว่า 8 ไซเคิล ข้อมูลในรีจิสเตอร์จะถูกส่งออกตามลำดับที่ขา Q7S
การเลื่อนบิตเพื่อส่งข้อมูลจะส่งแบบ MSB First เมื่อข้อมูลถูกนำไปใส่ไว้ในรีจิสเตอร์ภายในจนครบ 8 บิตแล้ว และต้องการให้ขาเอาต์พุต Q0..Q7 มีสถานะลอจิกตรงตามข้อมูลในรีจิสเตอร์ จะต้องสร้างสัญญาณแบบ Pulse เข้าที่ขา STCP (Storage Clock Input) และต้องกำหนดขาอินพุตที่ขา OE (Output Enable) ให้เป็นลอจิก LOW ถ้าต้องการจะเคลียร์ข้อมูลในรีจิสเตอร์ ให้ป้อนอินพุตที่ขา MR (Master Reset) เป็น LOW แล้วจึงเปลี่ยนเป็น HIGH
#include <Arduino.h>#include <avr/pgmspace.h>#include <SPI.h>const byte STCP_PIN = 7; // Latchconst byte DS_PIN = 11; // Data Inconst byte SHCP_PIN = 13; // CLK#define LEDARRAY_D 2 // ขาที่ใช้ในการควบคุมแถวแนวนอน#define LEDARRAY_C 3 // ขาที่ใช้ในการควบคุมแถวแนวนอน#define LEDARRAY_B 4 // ขาที่ใช้ในการควบคุมแถวแนวนอน#define LEDARRAY_A 5 // ขาที่ใช้ในการควบคุมแถวแนวนอน#define LEDARRAY_G 6 // ขาที่ใช้ในการควบคุมการส่งข้อมูล ขา EN#define runs 1000 // ยิ่งน้อย = Fast : ยิ่งมาก = Slow#define Display_Num_Word 7 //จำนวนโมดูลที่ใช้นการต่อunsigned char Display_Buffer[Display_Num_Word*2];unsigned char Display_Swap_Buffer[Display_Num_Word][32];bool Shift_Bit = 0;bool Flag_Shift = 0;unsigned int Timer0_Count = 0;unsigned char temp = 0x80;unsigned int Shift_Count = 0;unsigned int Display_Word_Count = 0;unsigned char Message_index = 0;unsigned char serial_pos[100] = {10,10,10,10,10}; //ข้อมูลเริ่มต้อนการทำงานunsigned char serial_index = 5;
https://www.thaieasyelec.com/article-wiki/review-product-article/moving-sign-display-with-led-dot-matrix-16x16.html
ความคิดเห็น
แสดงความคิดเห็น