คุณเคยเห็นใบพัดในเครื่องบินหรือในเรือเดินทะเลถ้าไม่ใช่ของจริงในภาพยนตร์อย่างแน่นอน ในเซสชั่นนี้เราจะออกแบบPropeller Display ด้วย Arduino, LED และมอเตอร์กระแสตรง ในจอแสดงผลใบพัดนี้ข้อความจะดูเหมือนหมุนตามใบพัดในรูปทรงกลม
การแสดงใบพัดเป็นแบบ LED Matrix ประกอบด้วยไฟ LED 8 ดวง (ไดโอดเปล่งแสง) ซึ่งจัดเรียงในรูปแบบของเมทริกซ์ 8 * 1 (8 แถวและ 1 คอลัมน์) พวกเขาจะจัดเรียงในรูปแบบของบันไดอีกด้านหนึ่ง LED ทั้ง 8 ดวงนี้สามารถสร้างขึ้นเพื่อแสดงเนื้อหาใด ๆ เช่นข้อความตัวเลขสัญลักษณ์ฯลฯ ซึ่งทำได้โดยการรับรู้การมองเห็น (POV) ซึ่งภาพนิ่งจำนวนมากจะถูกย้ายอย่างรวดเร็วทีละภาพในลำดับซึ่งให้การรับรู้ภาพเคลื่อนไหว หรือภาพเคลื่อนไหว วิธีการทำมีอธิบายไว้ในบทช่วยสอนด้านล่าง
ส่วนประกอบที่ต้องการ:
- Arduino Uno
- มอเตอร์กระแสตรง
- + แบตเตอรี่ 3.6V LI-ION
- LED (8 ชิ้น)
- ตัวต้านทาน1KΩ (8 ชิ้น)
การก่อสร้างจอแสดงผลใบพัด:
ครั้งแรกที่ใช้ฐานมั่นคง; ฉันใช้ PC DVD DRIVE เครื่องเก่าซึ่งวางอยู่รอบ ๆ คุณจะได้รับไม้กระดานหรือกล่องกระดาษแข็ง จากนั้นเจาะรูตรงกลางของ DVD Drive (ฐาน) แล้วใส่แกนมอเตอร์กระแสตรงเข้าไป ตรวจสอบให้แน่ใจว่ารูแน่นพอที่จะยึดมอเตอร์และมอเตอร์สามารถหมุนได้อย่างอิสระ ฉันใช้ Feviquick เพื่อวางแกนให้เข้าที่
รองรับส่วนบนของมอเตอร์เพื่อให้สมดุลกับการกระแทกที่ไม่เท่ากัน ฉันใช้ดอทบอร์ดทับแล้วใช้กาวอย่างรวดเร็วอีกครั้งเพื่อติดเข้ากับมอเตอร์กระแสตรง
แนบแบตเตอรี่ Li-ion ด้านบน หากคุณไม่มีแบตเตอรี่ LI-ION ที่มีขนาดเท่ากันให้ทิ้งไว้ หลังจากนั้นให้นำ LED แต่ละดวงมาทดสอบกับเซลล์ปุ่มหรือแหล่งอื่น ๆ จากนั้นนำตัวต้านทานและบัดกรีด้วย LED ตามภาพและแผนภาพวงจรที่แสดงด้านล่าง
เชื่อมต่อ LED และตัวต้านทานที่บัดกรีด้วย Arduino UNOดังแสดงในรูปด้านล่างและแผนภาพวงจร
ติด UNO ที่ด้านบนของ DC MOTORและยึดด้วยเทปเชลโลเพื่อสิ้นสุดการตั้งค่า ดังนั้นการตั้งค่าใบพัดขั้นสุดท้ายจะมีลักษณะดังนี้:
คำอธิบายวงจรและการทำงาน:
วงจรของArduino ควบคุม POV Displayนั้นง่ายมากเพียงแค่เชื่อมต่อ LED 8 ดวงกับ Arduino Uno ตามแผนภาพวงจรด้านล่าง
PORTD, PIN0 ------------------ LED8 เทอร์มินัลบวก
PORTD, PIN1 ------------------ LED7 เทอร์มินัลบวก
PORTD, PIN2 ------------------ LED6 เทอร์มินัลบวก
PORTD, PIN3 ------------------ LED5 เทอร์มินัลบวก
PORTD, PIN4 ------------------ LED4 เทอร์มินัลบวก
PORTD, PIN5 ------------------ LED3POSITIVE TERMINAL
PORTD, PIN6 ------------------ LED2 ขั้วบวกขั้วบวก
PORTD, PIN7 ------------------ LED1POSITIVE TERMINAL
เช่นเดียวกับที่เราเพิ่มคอลัมน์เพิ่มเติมในเมทริกซ์ LED 8x8 เพื่อขยายการแสดงผลในลักษณะเดียวกันแทนที่จะเพิ่ม LED COLUMNS เราย้ายคอลัมน์ LED แรกไปยังตำแหน่งคอลัมน์ LED ที่สองโดยใช้การเคลื่อนที่ของ DC MOTOR
เพื่อให้เข้าใจสถานการณ์ทั้งหมดให้บอกว่าเราต้องการให้ 'A' แสดงโดยจอแสดงผลของใบพัด พิจารณาไฟ LED 'เข็ม' อยู่ที่ POSITION1 ในตอนแรกดังแสดงในรูปด้านล่าง LED Needleคือคอลัมน์ของ LED 8 ดวง
ตอนนี้เราจะจ่ายไฟให้กับมอเตอร์และมันจะเริ่มทำงาน
ที่ t = 0ms: เข็มจะอยู่ที่ตำแหน่ง 1 ที่ตำแหน่งนี้ไฟ LED ทั้งแปดดวงตั้งแต่ TOP LED (MSB) ถึง BOTTOM LED (LSB) จะเปิดอยู่
ที่ t = 1ms: เข็มจะอยู่ที่ตำแหน่ง 2 เช่นเดียวกับตำแหน่ง 1 ที่ตำแหน่งนี้ LED ทั้งแปดดวงตั้งแต่ TOP LED (MSB) ถึง BOTTOM LED (LSB) เปิดอยู่
ที่ t = 2ms: เข็มจะอยู่ที่ตำแหน่ง 3 ที่ตำแหน่งนี้ LED7 เท่านั้น LED6 & LED3 จะติดอยู่และไฟ LED ที่เหลือจะดับลง
ที่ t = 3ms: เข็มจะอยู่ที่ตำแหน่ง 4 เช่นเดียวกับตำแหน่ง 3 ที่ตำแหน่งนี้จะมีเพียง LED7, LED6 และ LED3 เท่านั้นที่ติดอยู่และไฟ LED ที่เหลือจะปิดอยู่
ที่ t = 4ms: เข็มจะอยู่ที่ตำแหน่ง 5 เช่นเดียวกับตำแหน่ง 3 และ 4 ที่ตำแหน่งนี้มีเพียง LED7, LED6 และ LED3 เท่านั้นที่เปิดอยู่ ไฟ LED ที่เหลือปิดอยู่
ที่ t = 5ms: เข็มจะอยู่ที่ตำแหน่ง 6 ที่ตำแหน่งนี้ไฟ LED ทั้งแปดดวงจะเปิดขึ้นอีกครั้ง TOP led (MSB) ไปยัง BOTTOM led (LSB) จะเปิด
ที่ t = 6ms: เข็มจะอยู่ที่ตำแหน่ง 7 เช่นเดียวกับตำแหน่ง 6 ที่ตำแหน่งนี้ไฟ LED ทั้งแปดดวงยังคงติดอยู่
ตามที่อธิบายไว้ข้างต้นเราจะเปิดไฟ LED ที่เหมาะสมในการดำรงตำแหน่งเข็มที่เหมาะสมในการแสดงตัวอักษรที่จำเป็น หากความเร็วในการเคลื่อนที่ของเข็มช้าเราจะเห็น LED แต่ละคอลัมน์แยกกัน แต่เมื่อความเร็วของมอเตอร์สูงและเข็มเดินเร็วเกินไปจอแสดงผลจะแสดงเป็นอักขระ“ A” อย่างต่อเนื่อง
คำอธิบายการเขียนโปรแกรม:
เราได้ตั้งโปรแกรม Arduino ให้จ่ายไฟ LED ที่เหมาะสมในเวลาที่เหมาะสมในขณะที่หมุนเพื่อให้คอลัมน์ LED แสดงข้อความ“ CIRCUIT DIGEST” ในตำแหน่งวงกลม
การเขียนโปรแกรมของจอแสดงผลใบพัดสามารถเข้าใจได้ง่าย Char Array ขนาด 26x8 ถูกนำมาเป็น ถ่าน ALPHA ที่ระเหยได้ Array นี้ประกอบด้วย 8 ตำแหน่งของเข็มเพื่อแสดงแต่ละตัวอักษร 26 ตัวที่ทำให้อาร์เรย์เป็น 26x8 26 แถวใน Array แสดงถึง 26 ตัวอักษรและ 8 คอลัมน์ในแต่ละแถวแสดงถึงตำแหน่งแปดเข็มเพื่อแสดงอักขระขณะหมุน ตอนนี้แต่ละเซลล์ประกอบด้วยเลขฐานสองซึ่งแสดงถึงสถานะเปิด / ปิดของ LED 8 ดวงในตำแหน่งเฉพาะของเข็ม จำเข็มในที่นี้หมายถึง LED 8 เส้นที่เชื่อมต่อกับ Arduino ตามที่อธิบายไว้ข้างต้น
ตอนนี้คุณเพียงแค่หมุนมอเตอร์กระแสตรงและใช้ ' for loop ' พร้อมกับการวนซ้ำแปดครั้งเพื่อแสดงอักขระ เช่นถ้าคุณต้องการแสดง 10 อักขระคุณต้องเรียกใช้ 10 ' for loops' โดยมีการวนซ้ำแปดครั้งในแต่ละครั้ง ดังนั้นเราจึงใช้ 13 สำหรับลูป เพื่อแสดงข้อความ CIRCUIT DIGEST ตรวจสอบโค้ดโปรแกรมทั้งหมดด้านล่างพร้อมวิดีโอสาธิต
นี่คือวิธีที่คุณสามารถสร้างภาพลวงตา Persistence of Vision (POV) ที่สวยงามด้วย Arduinoเหมือนกับข้อความที่หมุนเหมือนใบพัด