ชื่อโปรเจกต์: Flip-disc 1x3 Display - How to Control via Arduino
การออกแบบจอแสดงผลแบบ Flip-disc 1x3 นี้มีพื้นฐานมาจากโปรเจกต์ที่อธิบาย โมดูลเดี่ยว (1 ดิสก์) หลักการควบคุมยังคงเหมือนเดิม แต่เพื่อลดจำนวนสายควบคุมของ Arduino เราจึงใช้ 595D shift register

จอแสดงผล Flip-disc ต้องใช้แหล่งจ่ายไฟเฉพาะ เพื่อให้ดิสก์พลิก เราจำเป็นต้องจ่ายพัลส์กระแสประมาณ 0.5A ที่มีความยาวประมาณ 1ms (ดู datasheet ของ flip-disc) และมีขั้วที่ถูกต้อง
พื้นฐานของการควบคุมจอแสดงผล flip-disc และหลักการทำงานมีอธิบายไว้บนเว็บไซต์ Flipo.io ซึ่งเป็นเว็บไซต์สำหรับจอแสดงผล flip-disc โดยเฉพาะ และ ที่นี่

สมมติว่าเรามี โมดูลแหล่งจ่ายไฟ เราก็สามารถมุ่งเน้นไปที่การออกแบบจอแสดงผลได้ ในการควบคุมดิสก์แต่ละตัว เราจะใช้วิธีที่ทดลองและจริงมานานแล้ว นั่นคือ H-Bridge

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

จากสายควบคุม 6 เส้น เราลดลงเหลือ 4 เส้น ทำให้จำนวนทรานซิสเตอร์ควบคุมลดลง 6 ตัว หากเราต้องการใช้จอแสดงผลเพียงตัวเดียว โซลูชันนี้ก็เพียงพอแล้ว อย่างไรก็ตาม หากเราต้องการใช้จอแสดงผลหลายตัวและไม่ต้องการเพิ่มจำนวนสายควบคุม วิธีที่ง่ายที่สุดในการลดความซับซ้อนสูงสุดคือการใช้ 595D shift register
ตัวอย่างวงจรอาจมีลักษณะดังนี้:

ใช้สายควบคุมเพียง 3 เส้น คือ DIN, EN, CLK สำหรับการควบคุม เราสามารถใช้ไลบรารีมาตรฐานสำหรับ 595D shift register หรือใช้ ไลบรารี Arduino เฉพาะ สำหรับจอแสดงผล Flip-disc ไลบรารีสำหรับการควบคุมจอแสดงผลใช้ SPI และต้องเชื่อมต่อสาย: DIN -> MOSI, CLK -> SCK, EN - ไปยังดิจิทัลพินใดก็ได้

Note:
เพื่อให้จอแสดงผลทำงานได้อย่างถูกต้องตามที่กล่าวไว้ข้างต้น จำเป็นต้องมี โมดูลแหล่งจ่ายไฟเฉพาะ - สามารถดูคำอธิบายวิธีการทำงานได้ที่หน้า โปรเจกต์

สำหรับการเชื่อมต่อโมดูลดังที่แสดงด้านบน โค้ดควบคุมจอแสดงผลจะมีลักษณะดังนี้:
#include <FlipDisc.h> // https://github.com/marcinsaj/FlipDisc
// Pin declaration for Arduino Uno and PSPS module
#define EN_PIN 10 // Start & End SPI transfer data
#define CH_PIN 8 // Charging PSPS module - turn ON/OFF
#define PL_PIN 9 // Release the current pulse - turn ON/OFF
void setup()
{
/* Assignment of control pins */
Flip.Pin(EN_PIN, CH_PIN, PL_PIN);
/* Display initialization */
Flip.Init(D1X3);
delay(3000);
}
void loop()
{
/* The function allows you to control up to three discs of the selected display.
Flip.Display_1x3(module_number, disc1,disc2,disc3);
- module_number - relative number of the D1X3 display
- disc1, disc2, disc3 - counting from left to right 1-3
For a detailed description of all display control functions,
see the library description: https://github.com/marcinsaj/FlipDisc */
/* Set all discs */
Flip.Display_1x3(1,1,1,1);
delay(1000);
/* Reset one selected disc */
Flip.Display_1x3(1,1,0,1);
delay(1000);
}
โค้ดที่มีรายละเอียดมากขึ้น พร้อมด้วยฟังก์ชันอื่นๆ อีกมากมายที่ควบคุมจอแสดงผล flip-disc สามารถดูได้ ที่นี่ และในคำอธิบายของ ไลบรารี Arduino FlipDisc.h
แผนผังของจอแสดงผล flip-disc 1x3 มีรายละเอียดเล็กๆ น้อยๆ หนึ่งอย่าง คือเอาต์พุต DOUT ของ shift register เอาต์พุตนี้ใช้สำหรับเชื่อมต่อจอแสดงผล flip-disc ตัวถัดไป - โดยเอาต์พุต DOUT จะต้องเชื่อมต่อกับอินพุต DIN ของจอแสดงผลตัวถัดไป และต่อไปเรื่อยๆ... ไลบรารี FlipDisc.h ช่วยให้คุณสามารถเชื่อมต่อจอแสดงผลได้สูงสุด 8 ตัวเข้าด้วยกันและควบคุมพวกมันด้วยวิธีที่ง่ายเหมือนข้างต้น

ที่นี่คุณสามารถค้นหา ตัวอย่างโค้ด สำหรับการควบคุมจอแสดงผล 1x3 สองจอ คำอธิบายทางเทคนิคของจอแสดงผลสามารถดูได้ที่ เว็บไซต์โปรเจกต์ พร้อมกับชุดเอกสารประกอบ

EXPANDED TECHNICAL DETAILS
Electromechanical Visualizing
โปรเจกต์ทางเทคนิคนี้สำรวจการควบคุมจอแสดงผล "Flip-Disc" สไตล์วินเทจโดยใช้ตรรกะดิจิทัลสมัยใหม่
- **การจัดการพัลส์แรงดันสูง**: Flip-disc ต้องใช้พัลส์กระแสสูง 12V-24V สั้นๆ เพื่อพลิก Arduino