ลำแสงทำเองจากเมทริกซ์ LED เมทริกซ์ LED แอดเดรส

บางครั้งจำเป็นต้องเชื่อมต่อตัวบ่งชี้เจ็ดส่วนหลายตัวหรือเมทริกซ์ LED เข้ากับไมโครคอนโทรลเลอร์ ในขณะที่ใช้ตัวบ่งชี้แบบไดนามิกเพื่อแสดงข้อมูล สาระสำคัญของการบ่งชี้แบบไดนามิกคือการแสดงข้อมูลอย่างต่อเนื่องบนตัวบ่งชี้ แผนภาพด้านล่างแสดงตัวอย่างการเชื่อมต่อตัวบ่งชี้เจ็ดส่วนหลายตัว (เช่น กับแคโทดทั่วไป) เพื่อใช้ตัวบ่งชี้แบบไดนามิก โดยทั่วไป โดยคำนึงถึงจุด จะได้ 8 ส่วน แต่ด้วยวิธีแบบเก่านั้น เรียกอย่างนั้น. ข้อสรุปทั้งหมด (แอโนด) ของส่วนที่มีชื่อเดียวกันเชื่อมต่อเข้าด้วยกัน รวมเป็น 8 บรรทัดที่เชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านตัวต้านทาน แคโทดทั่วไปของตัวบ่งชี้แต่ละตัวเชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านทรานซิสเตอร์


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

เพื่อให้ได้ภาพที่มั่นคงโดยไม่กะพริบ ต้องสลับที่ความเร็วสูง เพื่อป้องกันการกะพริบของ LED ต้องตั้งค่าอัตราการรีเฟรชตั้งแต่ 70 Hz ขึ้นไป ปกติผมจะตั้งไว้ที่ 100 Hz สำหรับโครงสร้างข้างต้น การหยุดชั่วคราวจะคำนวณดังนี้: สำหรับความถี่ 100 Hz ระยะเวลาคือ 10 มิลลิวินาที มีตัวบ่งชี้เพียง 4 ตัวตามลำดับ เวลาเรืองแสงของตัวบ่งชี้แต่ละตัวตั้งไว้ที่ 10/4 = 2.5 มิลลิวินาที มีตัวบ่งชี้เจ็ดเซ็กเมนต์หลายหลักในตัวเรือนเดียวซึ่งแน่นอนว่าเซกเมนต์ที่มีชื่อเดียวกันนั้นเชื่อมต่ออยู่ภายในตัวเรือนนั้นจำเป็นต้องใช้ตัวบ่งชี้แบบไดนามิกเพื่อใช้งาน

ในการใช้ตัวบ่งชี้แบบไดนามิก จำเป็นต้องใช้การขัดจังหวะเมื่อโอเวอร์โฟลว์ของตัวจับเวลาตัวใดตัวหนึ่ง ด้านล่างนี้เป็นรหัสที่ใช้ตัวจับเวลา TMR0:

;การใช้งานตัวบ่งชี้แบบไดนามิกสำหรับตัวบ่งชี้ 7 ส่วน 4 ตัว ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; สลับสถานะ, W ; สถานะ clrf ; movwf STATUS_TEMP ; ; bcf ind1 ;ปิดตัวบ่งชี้ที่ 1 bcf ind2 ;ปิดตัวบ่งชี้ที่ 2 bcf ind3 ;ปิดตัวบ่งชี้ที่ 3 bcf ind4 ;ปิดตัวบ่งชี้ที่ 4; incf shet,F ;increment register shet movlw .5 ;check register contents shet xorwf shet,W ;ตรวจสอบว่าเท่ากับ 5 btfss STATUS,Z ; goto met1 ;number ใน shet register ไม่เท่ากับ 5 movlw .1 ;number ใน shet register คือ 5: เขียนหมายเลข 1 movwf shet ;ลงใน shet register ; met1 movlw .1 ; ตรวจสอบเนื้อหาการลงทะเบียน shet xorwf shet,W ; เท่ากับหมายเลข 1 btfss STATUS,Z ; goto met2 ;จำนวนใน shet register ไม่เท่ากับ 1: ข้ามไปที่ met2 movf datind1,W ;number ใน shet register เท่ากับ 1: คัดลอก movwf PORTB ;เนื้อหาของ datind1 register ไปยัง PORTB register bsf ind1 ;เปิดตัวบ่งชี้ที่ 1 met2 movlw .2 ;ตรวจสอบเนื้อหาของ register shet xorwf shet,W ; เท่ากับ 2 btfss STATUS,Z ; goto met3 ;number ใน shet register ไม่เท่ากับ 2: ข้ามไปที่ met3 movf datind2,W ;number ใน shet register คือ 2: คัดลอก movwf PORTB ;เนื้อหาของ datind2 register ไปที่ PORTB register bsf ind2 ;เปิดตัวบ่งชี้ที่ 2 goto exxit ;ข้ามไปที่ label exxit met3 movlw .3 ; ตรวจสอบ register เนื้อหา shet xorwf shet,W ; เท่ากับ 3 btfss STATUS,Z ; goto met4 ;number ใน shet register ไม่เท่ากับ 3: ข้ามไปที่ met4 movf datind3,W ;number ใน shet register คือ 3: คัดลอก movwf PORTB ;เนื้อหาของ datind3 register ไปที่ PORTB register bsf ind3 ;เปิดตัวบ่งชี้ที่ 3 goto exxit ;ข้ามไปที่ ป้ายกำกับ exxit met4 movf datind4,W ;คัดลอกเนื้อหาของ datind3 register movwf PORTB ;ไปที่ PORTB register bsf ind4 ;เปิดตัวบ่งชี้ที่ 4; movlw .100 ;เขียน 156 ไปยังตัวจับเวลาลงทะเบียน TMR0 movwf TMR0 ; ; movwf สถานะ ; สลับ W_TEMP,F ; สลับ W_TEMP,W ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; โปรแกรมหลัก ................. movlw b"11010011" ; OPTION_REG ดังนั้นการตั้งค่าภายใน ; การตั้งค่าอัตราส่วนพรีสเกลเลอร์ 1:16 ; clrf shet ; รีเซ็ต register shet ก่อนเริ่ม ขัดจังหวะ TMR0 โอเวอร์โฟลว์ ดำเนินการแล้ว clrf datind1 ;ล้างรีจิสเตอร์เพื่อส่งข้อมูลออกไปยัง clrf datind2 ;ตัวบ่งชี้ ซึ่งเทียบเท่ากับการปิด clrf datind3 ;ตัวบ่งชี้ เป็นตัวบ่งชี้ที่มี clrf datind4 ทั่วไป ;แคโทด; bcf INTCON,T0IF ; ล้างค่าสถานะการขัดจังหวะโอเวอร์โฟลว์ TMR0 bsf INTCON,T0IE ; เปิดใช้งานการขัดจังหวะโอเวอร์โฟลว์ TMR0 bsf INTCON,GIE ; เปิดใช้งานการขัดจังหวะส่วนกลาง movlw b"00000110" ; 13.52 ตัวอย่างเอาต์พุต movwf datind1 ; movlw ข"11001111" ; movwf ลงวันที่ 2 ; movlw ข"01101101" ; movwf ลงวันที่ 3 ; movlwb"01011011" ; movwf วันที่ 4 ; ; . ................; .................; .................; ; สิ้นสุด สิ้นสุดโปรแกรมทั้งหมด

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

การใช้งานตัวบ่งชี้แบบไดนามิกสำหรับตัวบ่งชี้เจ็ดส่วน 4 ตัว

;ตัวอย่างความถี่สัญญาณนาฬิกา 4 MHz รอบเครื่อง 1 µs

org 0000h ;เริ่มการทำงานของโปรแกรมที่แอดเดรส 0000h

goto Start ไปที่ป้ายกำกับ Start

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;ขัดจังหวะรูทีน

org 0004h เริ่มดำเนินการรูทีนย่อยที่ที่อยู่ 0004h

movwf W_TEMP ; บันทึกค่าการลงทะเบียนคีย์

สลับสถานะ, W ;

movwf STATUS_TEMP ;

bcf ind1 ;ปิดตัวบ่งชี้ที่ 1

bcf ind2 ;ปิดตัวบ่งชี้ที่ 2

bcf ind3 ;ปิดตัวบ่งชี้ที่ 3

bcf ind4 ;ปิดตัวบ่งชี้ที่ 4

incf shet,F ;เพิ่มการลงทะเบียน shet

movlw .5 ตรวจสอบเนื้อหาของ register shet

xorwf shet,W ; เท่ากับ 5

btfss สถานะ,Z ;

goto met1 ;number ใน register shet ไม่เท่ากับ 5

movlw .1 ;number ใน shet register คือ 5: เขียนหมายเลข 1

movwf shet เพื่อลงทะเบียน shet

met1 movlw .1 ; ตรวจสอบเนื้อหาของ shet register

xorwf shet,W ; เท่ากับเลข 1

btfss สถานะ,Z ;

goto met2 ;number ใน shet register ไม่เท่ากับ 1: ข้ามไปที่ met2

movf datind1,W ;number ใน shet register คือ 1: copy

movwf PORTB ; เนื้อหาของ datind1 register ถึง PORTB register

bsf ind1 ;เปิดตัวบ่งชี้ที่ 1

goto exxit ไปที่ป้าย exxit

met2 movlw .2 ; ตรวจสอบเนื้อหาของ shet register

xorwf shet,W ; เท่ากับเลข 2

btfss สถานะ,Z ;

goto met3 ;number ใน shet register ไม่เท่ากับ 2: ข้ามไปที่ met3

movf datind2,W ;number ใน shet register คือ 2: copy

movwf PORTB ; เนื้อหาของ datind2 register ไปยัง PORTB register

bsf ind2 ;เปิดตัวบ่งชี้ที่ 2

goto exxit ไปที่ป้าย exxit

met3 movlw .3 ; ตรวจสอบเนื้อหาของ shet register

xorwf shet,W ; เท่ากับเลข 3

btfss สถานะ,Z ;

goto met4 ;number ใน shet register ไม่เท่ากับ 3: ข้ามไปที่ met4

movf datind3,W ;number ใน shet register คือ 3: copy

movwf PORTB ; เนื้อหาของ datind3 register ไปยัง PORTB register

bsf ind3 ;เปิดตัวบ่งชี้ที่ 3

goto exxit ไปที่ป้าย exxit

met4 movf datind4,W ; คัดลอกเนื้อหาของรีจิสเตอร์ datind3

movwf PORTB ;ไปที่ PORTB ลงทะเบียน

bsf ind4 ;เปิดตัวบ่งชี้ที่ 4

exxit bcf INTCON,T0IF ;reset TMR0 overflow ขัดจังหวะแฟล็ก

movlw .100 ;เขียนหมายเลข 156 ไปยังตัวจับเวลาลงทะเบียน TMR0

สลับ STATUS_TEMP,W ; กู้คืนเนื้อหาของการลงทะเบียนคีย์

สลับ W_TEMP,F ;

สลับ W_TEMP,W ;

retfie ออกจากรูทีนการขัดจังหวะ

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;โปรแกรมหลัก

เริ่ม ................. ; ตั้งค่าเริ่มต้นลงทะเบียน

................. ;วัตถุประสงค์พิเศษ

.................

bsf STATUS,RP0 ;เขียนเลขฐานสอง 11010011 เพื่อลงทะเบียน

movlw b"11010011" ;OPTION_REG ดังนั้นการตั้งค่าภายใน

movwf OPTION_REG แหล่งสัญญาณนาฬิกาสำหรับ TMR0

bcf STATUS,RP0 ;เปิดใช้งานพรีสเกลเลอร์ก่อน TMR0

;ตั้งอัตราส่วนพรีสเกลเลอร์เป็น 1:16

clrf shet ; รีเซ็ตการลงทะเบียน shet ก่อนเริ่ม

ดำเนินการโอเวอร์โฟลว์อินเตอร์รัปต์ TMR0

หนึ่งครั้งหลังจากเปิดเครื่อง

clrf datind1 ; ล้างการลงทะเบียนเพื่อส่งออกข้อมูลไปยัง

clrf datind2 ตัวบ่งชี้เทียบเท่ากับปิด

clrf datind3 ;indicators เนื่องจาก indicator ที่มีร่วมกัน

clrf datind4 ;แคโทด

bcf INTCON,T0IF ;รีเซ็ตค่าสถานะการขัดจังหวะโอเวอร์โฟลว์ TMR0

bsf INTCON,T0IE เปิดใช้งานอินเตอร์รัปต์โอเวอร์โฟลว์ TMR0

bsf INTCON,GIE เปิดใช้งานการขัดจังหวะส่วนกลาง

movlw b"00000110" ; 13.52 ตัวอย่างเอาต์พุต

movlw ข"11001111" ;

movlw ข"01101101" ;

movlwb"01011011" ;

................. ;

................. ;

................. ;

สิ้นสุด สิ้นสุดโปรแกรมทั้งหมด

ในโปรแกรมหลัก ก่อนอื่นเราตั้งค่าตัวจับเวลาโดยใช้รีจิสเตอร์ OPTION_REG ก่อนหน้านี้ฉันได้พูดถึงการใช้ตัวจับเวลาสำหรับ . ต่อไป เราล้างการลงทะเบียน shet ซึ่งมีไว้สำหรับการป้อนนับจาก 1 ถึง 4 สำหรับแต่ละตัวบ่งชี้ การลงทะเบียนนี้เพิ่มขึ้นในรูทีนบริการอินเตอร์รัปต์และปรับที่นั่น (จะนับจาก 1 ถึง 4) ดังนั้นการล้างนี้จะดำเนินการครั้งเดียวหลังจากเปิดเครื่อง จากการลงทะเบียนนี้ เราจะกำหนดตัวบ่งชี้ที่จะรวมและออกข้อมูลที่สอดคล้องกัน ขั้นตอนต่อไปคือการล้างการลงทะเบียนการจัดเก็บข้อมูล การลงทะเบียน dataind1,2,3,4 สี่รายการที่สอดคล้องกับตัวบ่งชี้สี่ตัว การล้างจะเทียบเท่ากับการปิดตัวบ่งชี้ เนื่องจากในรูทีนบริการอินเตอร์รัปต์ เนื้อหาของรีจิสเตอร์เหล่านี้จะถูกถ่ายโอนไปยังรีจิสเตอร์ PORTB ซึ่งเชื่อมต่อกับแอโนดของตัวบ่งชี้ นี่เป็นสิ่งจำเป็นเพื่อไม่ให้แสดงขยะบนตัวบ่งชี้หลังจากเปิดใช้งานการขัดจังหวะ โดยหลักการแล้วสิ่งนี้ไม่สามารถทำได้หากคุณเขียนทันที ข้อมูลที่ถูกต้องสำหรับเอาต์พุต ถัดไป รีเซ็ตแฟล็กไทม์เมอร์โอเวอร์โฟลว์อินเตอร์รัปต์ เปิดใช้งาน TMR0 โอเวอร์โฟลว์อินเตอร์รัปต์ และสุดท้าย เปิดใช้งานอินเตอร์รัปต์ส่วนกลาง

ในรูทีนการขัดจังหวะ ก่อนอื่นเราจะปิดตัวบ่งชี้ทั้งหมด (โดยการใช้ระดับลอจิกต่ำกับฐานของทรานซิสเตอร์) เนื่องจากไม่รู้ว่าตัวใดเปิดอยู่ เราเพิ่มการลงทะเบียน shet ตรวจสอบความเท่าเทียมกันเป็นหมายเลข 5 หากมีการจับคู่ดังกล่าวให้เขียนหมายเลข 1 ลงในการลงทะเบียนเนื่องจากจำเป็นต้องนับจาก 1 ถึง 4 ต่อไปเราจะตรวจสอบว่าหมายเลขใดอยู่ใน shet ลงทะเบียน โดยที่เราโหลดข้อมูลจาก PORTB ลงในที่เก็บข้อมูล PORTB ลงทะเบียน (dataind) สำหรับตัวบ่งชี้ที่เกี่ยวข้องและเปิดใช้งาน หลังจากนั้น เรารีเซ็ตแฟล็กการขัดจังหวะโอเวอร์โฟลว์ TMR0 เขียนหมายเลข 100 ลงในตัวจับเวลา (การคำนวณค่านี้แสดงไว้ด้านล่าง) สำหรับการหน่วงเวลา และออกจากตัวจัดการการขัดจังหวะ เมื่อหยุดชะงักครั้งแรก ไฟแสดงสถานะแรกจะเปิดขึ้น เมื่อหยุดชะงักครั้งที่สอง ไฟแสดงสถานะที่สองและต่อไปเรื่อยๆ เป็นวงกลม ในโปรแกรมหลัก จะเหลือเพียงการโหลดข้อมูลลงในทะเบียนหน่วยเก็บข้อมูลสำหรับแต่ละตัวบ่งชี้เท่านั้น ในรูทีนย่อยการขัดจังหวะ อย่าลืมบันทึกและกู้คืนค่าของการลงทะเบียนคีย์ ฉันเขียนเกี่ยวกับสิ่งนี้ในบทความเกี่ยวกับ

ในการส่งออกตัวเลขควรใช้ตัวสร้างอักขระในรูปแบบของตารางข้อมูล ตัวอย่างเช่นในการแสดงหมายเลข 3456 บนตัวบ่งชี้จะต้องแบ่งออกเป็นหลักในขณะที่ควรใช้การลงทะเบียนแยกต่างหากเพื่อเก็บจำนวนหลัก (ตั้งแต่ 0 ถึง 9) จากนั้นเรียกใช้การลงทะเบียนเหล่านี้ผ่านตัวสร้างอักขระ รับไบต์ที่ถูกต้อง (โหลดลงใน dataind register) เพื่อจุดไฟส่วนที่เกี่ยวข้อง

เราจะใช้ความถี่ของเครื่องกำเนิดสัญญาณนาฬิกาเป็น 4 MHz รอบเครื่องคือ 1 μs ให้อัตราการรีเฟรชของแต่ละตัวบ่งชี้เป็น 100 Hz (ระยะเวลา T = 10 ms) ตามลำดับ การหน่วงเวลาที่ต้องการคือ 10/4 = 2.5 ms ปัจจัยพรีสเกลเลอร์สำหรับ TMR0 ถูกตั้งค่าเป็น 1:16 ในขณะที่การหน่วงเวลาสูงสุดที่เป็นไปได้คือ 256x16 = 4096 µs และเราต้องการหยุดชั่วคราว 2.5 ms ลองคำนวณจำนวนที่จะเขียนถึง TMR0: 256-((256x2.5)/4.096) = 256-156.25 = 99.75 หลังจากปัดเศษเราจะได้หมายเลข 100

ด้านล่างคุณสามารถดาวน์โหลดโมเดลสำหรับโปรแกรม Proteus เฟิร์มแวร์และซอร์สโค้ดพร้อมการใช้งานตัวบ่งชี้แบบไดนามิกบนตัวบ่งชี้ 4 หลักพร้อมแคโทดทั่วไปโดยใช้ไมโครคอนโทรลเลอร์ PIC16F628A ตัวอย่างเช่น ตัวเลข 0000 จะแสดงบนตัวบ่งชี้ 0001; 0002; 13.52; 9764.

ตอนนี้ให้พิจารณาการเชื่อมต่อเมทริกซ์ที่มีความละเอียด 8x8 พิกเซล (LED) โครงสร้างของเมทริกซ์มักจะพิจารณาในแง่ของแถวและคอลัมน์ ในภาพด้านล่าง ในแต่ละคอลัมน์ แคโทดของ LED ทั้งหมดเชื่อมต่ออยู่ และแอโนดในแต่ละแถว สตริง (8 เส้น, แอโนด LED) เชื่อมต่อผ่านตัวต้านทานไปยังไมโครคอนโทรลเลอร์ แต่ละคอลัมน์ (แคโทด LED) เชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านทรานซิสเตอร์ 8 ตัว อัลกอริทึมการบ่งชี้เหมือนกัน ก่อนอื่นเราตั้งค่าระดับลอจิคัลที่จำเป็นในแถวตามที่ไฟ LED ควรสว่างในคอลัมน์ จากนั้นเราเชื่อมต่อคอลัมน์แรก (ตัวบ่งชี้จากซ้ายไปขวา) หลังจากหยุดชั่วคราว เราจะปิดคอลัมน์และเปลี่ยนระดับตรรกะในบรรทัดเพื่อแสดงคอลัมน์ที่สอง จากนั้นเราจะเชื่อมต่อคอลัมน์ที่สอง และสลับสับเปลี่ยนกันทุกคอลัมน์ ด้านล่างนี้เป็นแผนผังการเชื่อมต่อเมทริกซ์กับไมโครคอนโทรลเลอร์


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

การลงทะเบียนแบบอนุกรมที่พบมากที่สุดคือ 74HC595 microcircuit ซึ่งประกอบด้วย เปลี่ยนทะเบียนสำหรับการโหลดข้อมูลและรีจิสเตอร์โฮลดิ้งซึ่งข้อมูลจะถูกถ่ายโอนไปยังบรรทัดเอาต์พุต การโหลดข้อมูลนั้นง่ายมาก ตั้งค่าโลจิคัล 0 ที่อินพุตนาฬิกา SH_CP จากนั้นตั้งค่าระดับลอจิกที่ต้องการที่อินพุตข้อมูล DS หลังจากนั้นเราเปลี่ยนอินพุตนาฬิกาเป็น 1 ในขณะที่บันทึกค่าระดับ (ที่อินพุต DS) ภายในทะเบียนกะ ในเวลาเดียวกัน ข้อมูลจะถูกเลื่อนไปหนึ่งบิต รีเซ็ตเอาต์พุต SH_CP เป็น 0 อีกครั้ง ตั้งค่าระดับที่ต้องการที่อินพุต DS และเพิ่ม SH_CP เป็น 1 หลังจากโหลด shift register เต็ม (8 บิต) ให้ตั้งค่าเอาต์พุต ST_CP เป็น 1 ในขณะนี้ ข้อมูลจะถูกถ่ายโอนไปยัง ที่เก็บข้อมูลลงทะเบียนและป้อนไปยังบรรทัดเอาต์พุต Q0 ... Q7 หลังจากนั้นเรารีเซ็ตเอาต์พุตของ ST_CP ระหว่างการโหลดตามลำดับ ข้อมูลจะเปลี่ยนจาก Q0 เป็น Q7 พิน Q7' เชื่อมต่อกับบิตสุดท้ายของ shift register พินนี้สามารถเชื่อมต่อกับอินพุตของไมโครเซอร์กิตตัวที่สอง คุณจึงสามารถโหลดข้อมูลลงในไมโครเซอร์กิตสองตัวหรือมากกว่าพร้อมกันได้ พิน OE จะสลับสายเอาต์พุตเป็นสถานะที่สาม (ความต้านทานสูง) เมื่อใช้ลอจิก 1 พิน MR ได้รับการออกแบบมาเพื่อรีเซ็ตชิฟต์รีจิสเตอร์ นั่นคือ การตั้งค่าระดับลอจิกต่ำที่เอาต์พุตของทริกเกอร์รีจิสเตอร์ ซึ่งเทียบเท่ากับการโหลดศูนย์แปดตัว ด้านล่างนี้เป็นแผนภาพของการโหลดข้อมูลลงในชิป 74NS595 โดยตั้งค่า 11010001 บนบรรทัดเอาต์พุต Q0 ... Q7 โดยมีเงื่อนไขว่าในตอนแรกมีศูนย์:


ลองเชื่อมต่อเมทริกซ์ขนาด 8×8 เข้ากับไมโครคอนโทรลเลอร์ PIC16F628A โดยใช้ชิฟต์รีจิสเตอร์ 74HC595 สองตัว แผนภาพแสดงด้านล่าง:


ข้อมูลถูกโหลดลงในชิป DD2 (การควบคุมระดับลอจิกในแถว, แอโนด LED) จากนั้นจะถูกถ่ายโอนผ่านพิน Q7 ไปยัง DD3 (การควบคุมคอลัมน์) ตามลำดับ ก่อนอื่นเราโหลดไบต์เพื่อเปิดใช้งานคอลัมน์ จากนั้นจึงโหลดไบต์ ด้วยระดับตรรกะในแถว ทรานซิสเตอร์สลับคอลัมน์เมทริกซ์ (แคโทด LED) เชื่อมต่อกับสายเอาต์พุตของ DD3 ด้านล่างนี้คือโค้ดโปรแกรมสำหรับการแสดงภาพบนเมทริกซ์:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;การใช้งานตัวบ่งชี้แบบไดนามิกสำหรับเมทริกซ์ที่มีความละเอียด 8x8 ;ความถี่ของเครื่องกำเนิดสัญญาณนาฬิกา เช่น 4 MHz รอบเครื่อง 1 µs org 0000h ;เริ่มการทำงานของโปรแกรมจากที่อยู่ 0000h ไปที่ Start ;ข้ามไปที่ป้ายกำกับ Start ;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;ขัดจังหวะรูทีน org 0004h ;เริ่มรันรูทีนย่อยจากที่อยู่ 0004h movwf W_TEMP ;บันทึกค่าการลงทะเบียนคีย์ swapf STATUS,W ; สถานะ clrf ; movwf STATUS_TEMP ; ; movwf FSR_osn ;ไปยัง FSR_osn register movf FSR_prer,W ;เรียกคืนค่าที่บันทึกไว้ก่อนหน้านี้ movwf FSR ;ของ FSR register จาก FSR_prer register ;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;; ;โหลดเนื้อหาของ stolb register ลงในชิป movf stolb,W ;คัดลอกเนื้อหาของ stolb register movwf var ;ไปที่ register var met2 btfsc var,0 ;ตั้งค่าเอาต์พุต ds ตาม btfss var,0 ; bcf ds ; bcf sh_cp ; rrf var,F ;เลื่อนการลงทะเบียน var ไปทางขวาเพื่อเตรียม;บิตถัดไป goto met2 ;scetbit ไม่เท่ากับศูนย์: ข้ามไปที่ป้ายกำกับ met2 ;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;; ;โหลดเนื้อหาของการลงทะเบียน INDF ลงในชิป ;74HC595 (การลงทะเบียน serial shift) movf INDF,W ;คัดลอกเนื้อหาของการลงทะเบียน INDF movwf var ;ไปที่ var register movlw .8 ;เขียนหมายเลข 8 ลงในการลงทะเบียน scebit สำหรับการนับ movwf scetbit ;transfer bits met1 btfsc var ,7 ;set output ds ตาม bsf ds ;value of 7th bit of register var btfss var,7 ; bcf ds ; bsf sh_cp ;clock sh_cp เอาต์พุตเพื่อสลักข้อมูล bcf sh_cp ; rlf var,F ;เลื่อน register var ไปทางซ้ายเพื่อเตรียม;บิตถัดไป decfsz scetbit,F ;ลดลงด้วยเงื่อนไขการลงทะเบียน scetbit goto met1 ;scetbit ไม่เท่ากับศูนย์: ข้ามไปที่ป้ายกำกับ met1 ; bsf st_cp ; clock เอาต์พุต st_cp เพื่อถ่ายโอน bcf st_cp ที่โหลด ; ไบต์ไปยังบรรทัดเอาต์พุตของชิป 74HC595 ; bcf STATUS,C ;reset บิต C ของสถานะการลงทะเบียนก่อน shift rrf stolb,F ;left shift register stolb ; incf FSR,F ;เพิ่มการลงทะเบียน FSR เตรียมถัดไป ;ลงทะเบียนเพื่อส่งข้อมูลไปยัง 74HC595 decfsz shet,F ;ลดลงด้วยเงื่อนไขการลงทะเบียน shet goto exxit ;Shet register ไม่เท่ากับ 0: ข้ามไปที่ exxit movlw data1 ;Shet register เท่ากับ 0: เขียนที่อยู่ก่อน movwf FSR ;ลงทะเบียนเพื่อจัดเก็บข้อมูลใน FSR register movlw .8 ;เขียนหมายเลข 8 ใน shet register เพื่อรักษา movwf shet ;นับคอลัมน์ ; exxit bcf INTCON,T0IF ;reset overflow ขัดจังหวะแฟล็ก TMR0 movlw 124 ;เขียนหมายเลข 124 ไปยังรีจิสเตอร์ตัวจับเวลา TMR0 movwf TMR0 ; ; movf FSR,W ;บันทึกค่าปัจจุบันของ FSR movwf FSR_prer ;ไปที่ FSR_prer movf FSR_osn ,W ;กู้คืนค่าที่บันทึกไว้ก่อนหน้านี้ movwf FSR ;FSR จาก FSR_osn ; swapf STATUS_TEMP,W ; กู้คืนเนื้อหาของการลงทะเบียนคีย์ movwf STATUS ; สลับ W_TEMP,F ; สลับ W_TEMP,W ; ; ออกจากรูทีนย่อยขัดจังหวะ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;โปรแกรมหลัก เริ่ม ................ ;การตั้งค่าเริ่มต้นของรีจิสเตอร์ ................. ;วัตถุประสงค์พิเศษ..... ............ bsf STATUS,RP0 ;เขียนเลขฐานสอง 11010011 ลงในรีจิสเตอร์ movlw b"11010010" ;OPTION_REG ดังนั้นการตั้งค่า movwf ภายใน OPTION_REG ;แหล่งสัญญาณนาฬิกาสำหรับ TMR0 bcf STATUS,RP0 ;เปิดใช้งานพรีสเกลเลอร์ก่อน TMR0 ตั้งอัตราส่วนพรีสเกลเลอร์ 1:8; movlw .8 ;เขียน 8 ไปยัง shet register ก่อนทริกเกอร์ movwf shet ;TMR0 โอเวอร์โฟลว์อินเตอร์รัปต์ ดำเนินการ;หนึ่งครั้ง หลังจากเปิดเครื่อง movlw b"10000000" ;เขียนเลขฐานสอง 10000000 ไปยัง movwf stolb ;stolb register เพื่อเปิดใช้งานคอลัมน์ที่ 1; ดำเนินการครั้งเดียว , หลังจากเปิดเครื่อง; movlw data1 ;เขียนที่อยู่ของการลงทะเบียนแรก (การลงทะเบียนการจัดเก็บ movwf FSR_prer ;ข้อมูล) ในการลงทะเบียน FSR_prer ดำเนินการหนึ่งครั้งหลังจากเปิดเครื่อง movlw .8 ;การล้าง 8 รีจิสเตอร์ของข้อมูลที่ส่งออกไปยัง movwf tmp ;matrix เทียบเท่ากับการปิด movlw data1 ;matrix movwf FSR ; เมต 3 clrf INDF ; รวม FSR,F ; decfsz tmp,F ; ข้าม met3 ; ; bcf INTCON,T0IF ; ล้างค่าสถานะการขัดจังหวะโอเวอร์โฟลว์ TMR0 bsf INTCON,T0IE ; เปิดใช้งานการขัดจังหวะโอเวอร์โฟลว์ TMR0 bsf INTCON,GIE ; เปิดใช้งานการขัดจังหวะส่วนกลาง m1 movlw data1 ; ตัวอย่างเอาต์พุต R movwf FSR ; movlw ข"00000000" ; movwf INDF ; รวม FSR,F ; movlw ข"01111111" ; movwf INDF ; รวม FSR,F ; movlwb"00001001" ; movwf INDF ; รวม FSR,F ; movlwb"00011001" ; movwf INDF ; รวม FSR,F ; movlwb"00101001" ; movwf INDF ; รวม FSR,F ; movlw ข"01000110" ; movwf INDF ; รวม FSR,F ; movlw ข"00000000" ; movwf INDF ; รวม FSR,F ; movlw ข"00000000" ; movwf INDF ; ; .................; .................; .................; ; สิ้นสุด สิ้นสุดโปรแกรมทั้งหมด

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;การดำเนินการบ่งชี้แบบไดนามิกสำหรับเมทริกซ์ที่มีความละเอียด 8x8

;ตัวอย่างความถี่สัญญาณนาฬิกา 4 MHz รอบเครื่อง 1 µs

org 0000h ;เริ่มการทำงานของโปรแกรมที่แอดเดรส 0000h

goto Start ไปที่ป้ายกำกับ Start

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;ขัดจังหวะรูทีน

org 0004h เริ่มดำเนินการรูทีนย่อยที่ที่อยู่ 0004h

movwf W_TEMP ; บันทึกค่าการลงทะเบียนคีย์

สลับสถานะ, W ;

movwf STATUS_TEMP ;

movf FSR,W ;บันทึกค่าปัจจุบันของการลงทะเบียน FSR

movwf FSR_osn ;ไปยังการลงทะเบียน FSR_osn

movf FSR_prer,W ; คืนค่าที่บันทึกไว้ก่อนหน้านี้

movwf FSR ;FSR จาก FSR_prer

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (ทะเบียนกะอนุกรม)

movf stolb,W คัดลอกเนื้อหาของทะเบียน stolb

movwf var ;เพื่อลงทะเบียน var

movlw .8 ;เขียนหมายเลข 8 ลงในทะเบียน ssetbit เพื่อทำการนับ

movwf scetbit ; บิตที่ส่ง

met2 btfsc var,0 ;ตั้งค่าเอาต์พุต ds ตาม

bsf ds ; ค่าบิตที่ 7 ของ register var

bsf sh_cp ;clock sh_cp เอาต์พุตเพื่อสลักข้อมูล

rrf var,F ; shift register var ไปทางขวาเพื่อเตรียม

บิตถัดไป

decfsz ssetbit,F ;การลดลงด้วยเงื่อนไขการลงทะเบียน scetbit

goto met2 ;scetbit ไม่เท่ากับศูนย์: ข้ามไปที่ป้ายกำกับ met2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (ทะเบียนกะอนุกรม)

movf INDF,W ; คัดลอกเนื้อหาของการลงทะเบียน INDF

movwf var ;เพื่อลงทะเบียน var

movlw .8 ;เขียนหมายเลข 8 ลงในทะเบียน ssetbit เพื่อทำการนับ

movwf scetbit ; บิตที่ส่ง

met1 btfsc var,7 ;ตั้งค่าเอาต์พุต ds ตาม

bsf ds ; ค่าบิตที่ 7 ของ register var

bsf sh_cp ;clock sh_cp เอาต์พุตเพื่อสลักข้อมูล

rlf var,F ;เลื่อนซ้าย var เพื่อเตรียม

บิตถัดไป

decfsz ssetbit,F ;การลดลงด้วยเงื่อนไขการลงทะเบียน scetbit

goto met1 ;scetbit ไม่เท่ากับศูนย์: ข้ามไปที่ป้ายกำกับ met1

bsf st_cp ;clock เอาต์พุตของ st_cp เพื่อถ่ายโอนโหลด

bcf st_cp ;bytes ต่อ 74HC595 บรรทัดเอาต์พุต

bcf STATUS,C ; ล้าง C bit ของการลงทะเบียนสถานะก่อนกะ

rrf stolb,F ;left shift register stolb

incf FSR,F ;increment FSR register, เตรียมการต่อไป

ลงทะเบียนเพื่อส่งข้อมูลไปที่ 74HC595

decfsz shet,F ;การลดลงด้วย shet เงื่อนไขการลงทะเบียน

goto exxit ;shet register ไม่เท่ากับ 0: ข้ามไปที่ exxit

movlw data1 ;shet register คือ 0: เขียนที่อยู่ของอันแรก

movwf FSR ;ลงทะเบียนเพื่อเก็บข้อมูลใน FSR

movlw .8 ;เขียนหมายเลข 8 ลงใน shet register เพื่อใช้อ้างอิง

แผ่น movwf จำนวนคอลัมน์

movlw b"10000000" ;เขียนเลขฐานสอง 10000000 ลงใน

movwf stolb ;register stolb เพื่อรวมคอลัมน์ที่ 1

exxit bcf INTCON,T0IF ;reset TMR0 overflow ขัดจังหวะแฟล็ก

movlw .124 ;เขียนหมายเลข 124 ไปยังเครื่องบันทึกเวลา TMR0

movf FSR,W ;บันทึกค่าปัจจุบันของการลงทะเบียน FSR

movwf FSR_prer ;ไปยังการลงทะเบียน FSR_prer

movf FSR_osn ,W ; คืนค่าที่บันทึกไว้ก่อนหน้านี้

movwf FSR ;FSR จาก FSR_osn

สลับ STATUS_TEMP,W ; กู้คืนเนื้อหาของการลงทะเบียนคีย์

สลับ W_TEMP,F ;

สลับ W_TEMP,W ;

retfie ออกจากรูทีนการขัดจังหวะ

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;โปรแกรมหลัก

เริ่ม ................. ;การตั้งค่าเริ่มต้นของการลงทะเบียน

................. ;วัตถุประสงค์พิเศษ

.................

bsf STATUS,RP0 ;เขียนเลขฐานสอง 11010011 เพื่อลงทะเบียน

movlw b"11010010" ;OPTION_REG ดังนั้นการตั้งค่าภายใน

movwf OPTION_REG แหล่งสัญญาณนาฬิกาสำหรับ TMR0

bcf STATUS,RP0 ;เปิดใช้งานพรีสเกลเลอร์ก่อน TMR0

;ตั้งอัตราส่วนพรีสเกลเลอร์เป็น 1:8

movlw .8 ;เขียนหมายเลข 8 ลงใน shet register ก่อนรัน

movwf shet ; TMR0 อินเตอร์รัปต์โอเวอร์โฟลว์ กำลังทำงาน

หนึ่งครั้งหลังจากเปิดเครื่อง

movlw b"10000000" ;เขียนเลขฐานสอง 10000000 ลงใน

movwf stolb ;register stolb เพื่อรวมคอลัมน์ที่ 1

ข้อมูลที่มีระดับตรรกะสำหรับแถวของแต่ละคอลัมน์จะถูกจัดเก็บไว้ในทะเบียนหน่วยเก็บข้อมูล 8 รายการ ซึ่งเข้าถึงได้ผ่าน ที่อยู่ของทะเบียนแรกมีชื่อว่า data1 นอกเหนือจากการเขียนเริ่มต้นของการลงทะเบียน shet และ stolb แล้ว จำเป็นต้องเขียนที่อยู่ของการลงทะเบียนที่เก็บข้อมูลแรกไปยังการลงทะเบียน FSR_prer (การลงทะเบียนคือ data1 การป้อนข้อมูลใน FSR_prer จะดำเนินการครั้งเดียว จากนั้นจึงปรับใน ตัวจัดการ) หลังจากนั้น อนุญาตให้ TMR0 โอเวอร์โฟลว์อินเตอร์รัปต์

ก่อนเปิดใช้งานการขัดจังหวะ ขอแนะนำให้ล้างการลงทะเบียนการจัดเก็บข้อมูล การดำเนินการนี้ดำเนินการโดยใช้การลงทะเบียน tmp เพิ่มเติม (เป็นตัวนับ) และการกำหนดที่อยู่ทางอ้อม การล้างจะเทียบเท่ากับการปิดเมทริกซ์

ในรูทีนการจัดการการขัดจังหวะ เราโหลดเนื้อหาของการลงทะเบียน stolb ลงในชิป DD2 (ครั้งแรกที่คุณป้อนตัวจัดการหลังจากเปิดใช้งานการขัดจังหวะ การลงทะเบียนจะมีหมายเลข 10000000 ตามที่กล่าวไว้ข้างต้น) การโหลดเริ่มจากบิตต่ำของ stolb register ซึ่งเปลี่ยนทิศทางจาก Q0 ถึง Q7 (ภายในชิป DD2) ขณะที่โหลด อัลกอริทึมการโหลดถูกกล่าวถึงข้างต้น ดังนั้นฉันคิดว่าจะไม่ยากที่จะเข้าใจโค้ด . ต่อไปเราจะโหลดเนื้อหาของการลงทะเบียน INDF ลงใน DD2 ซึ่งเป็นหนึ่งในการลงทะเบียนการจัดเก็บข้อมูลซึ่งอยู่ใน FSR (ครั้งแรกที่คุณป้อนตัวจัดการหลังจากเปิดใช้งานการขัดจังหวะ FSR จะมีที่อยู่ของครั้งแรก ทะเบียนหน่วยเก็บข้อมูลเรียกว่า data1) การโหลดเริ่มจากบิตสูงของการลงทะเบียน INDF หลังจากโหลด 2 ไบต์ที่พิจารณาแล้วเราจะนาฬิกาเอาต์พุต st_cp ดังนั้นข้อมูลที่ดาวน์โหลดจะถูกส่งไปยังบรรทัดเอาต์พุตของไมโครวงจร DD2, DD3 ดังนั้นที่อินพุตแรกไปยังตัวจัดการจะมีการสลับคอลัมน์แรกของเมทริกซ์ซึ่งไฟ LED จะสว่างขึ้นบนขั้วบวกซึ่งมีระดับลอจิกสูงตามเนื้อหาของ data1 register ( ทะเบียนการจัดเก็บข้อมูลครั้งแรก).

ต่อไป เราเลื่อนการลงทะเบียน stolb ไปทางขวาทีละบิตเพื่อเตรียมคอลัมน์ที่สองของเมทริกซ์สำหรับการสลับที่รายการถัดไปในตัวจัดการการขัดจังหวะ ต้องล้างค่าสถานะ C ของการลงทะเบียน STATUS ก่อนการเปลี่ยนแปลง เนื่องจากการเปลี่ยนแปลงเกิดขึ้นผ่านการตั้งค่าสถานะนี้ และสถานะจะไม่เป็นที่รู้จักในเวลาของการเปลี่ยนแปลง หลังจากการเปลี่ยนแปลง เราจะเพิ่มการลงทะเบียน FSR โดยเตรียมการลงทะเบียนหน่วยเก็บข้อมูลถัดไป (หลังจากการลงทะเบียน data1) ด้วยระดับแถวตรรกะสำหรับคอลัมน์ที่สอง ต่อไป เราลด shet register ด้วยเงื่อนไข และถ้ามันไม่เท่ากับศูนย์ ให้รีเซ็ตค่าสถานะการขัดจังหวะโอเวอร์โฟลว์ TMR0 เขียนตัวเลขไปยังตัวจับเวลา และออกจากตัวจัดการการขัดจังหวะ

ครั้งต่อไปที่คุณป้อนตัวจัดการ คอลัมน์ที่สองของเมทริกซ์จะถูกเปิดใช้งาน และอื่น ๆ เมื่อรีเซ็ตการลงทะเบียน shet (หลังจากเปลี่ยนคอลัมน์ที่ 8) หมายเลข 8 จะถูกเขียนสำหรับรอบถัดไปของการสลับคอลัมน์ นอกจากนี้ค่าของการลงทะเบียน stolb จะได้รับการแก้ไขที่อยู่ของการลงทะเบียนที่เก็บข้อมูลแรก ( data1) เขียนไปยังทะเบียน FSR

ลองคำนวณการหน่วงเวลาสำหรับตัวจับเวลา TMR0 ความถี่สัญญาณนาฬิกาคือ 4 MHz รอบเครื่องคือ 1 µs เพื่อหลีกเลี่ยงการกะพริบของไฟ LED ให้ใช้อัตราการรีเฟรชของแต่ละคอลัมน์เป็น 100Hz (ช่วงเวลา T=10ms) การหน่วงเวลาคือ 10/8 = 1.25ms เราตั้งค่าอัตราส่วนพรีสเกลเลอร์ TMR0 เป็น 1:8 ในขณะที่การหน่วงเวลาสูงสุดที่เป็นไปได้คือ 256x8 = 2048 µs สำหรับการหยุดชั่วคราว 1.25 ms ตัวจับเวลาควรนับ (256x1.25) / 2.048 = 156.25 ครั้ง ปัดขึ้นเราจะได้ 156 ครั้ง ดังนั้นจึงจำเป็นต้องเขียนตัวเลข 256-156 = 100 ลงในตัวจับเวลา แต่ค่านี้ไม่ใช่ค่าที่ถูกต้องนัก เนื่องจากต้องใช้เวลาพอสมควรในการดำเนินการรูทีนขัดจังหวะ ในกรณีนี้จะใช้เวลาประมาณ 190 µs คำนวณใหม่โดยคำนึงถึง พิจารณาค่าสัมประสิทธิ์พรีสเกลเลอร์ เราจะได้ 190/8 = 23.75 หรือ 24 นับ ค่าที่ถูกต้องสำหรับการเขียนไปยัง TMR0 คือ: 100+24=124

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


นอกจากการลงทะเบียนกะแล้ว ยังมีไดรเวอร์พิเศษสำหรับแสดงข้อมูลเกี่ยวกับตัวบ่งชี้เจ็ดส่วนและเมทริกซ์ LED ในกรณีนี้ไดรเวอร์จะใช้ตัวบ่งชี้แบบไดนามิก สิ่งที่เหลืออยู่คือการส่งข้อมูลไปยังมันเพื่อแสดง ฉันได้ตรวจสอบหนึ่งในไดรเวอร์ยอดนิยมเหล่านี้ในบทความเกี่ยวกับ

ด้านล่างลิงก์ คุณสามารถดาวน์โหลดเฟิร์มแวร์และซอร์สโค้ดสำหรับไมโครคอนโทรลเลอร์ PIC16F628A พร้อมการใช้งานตัวบ่งชี้แบบไดนามิกบนเมทริกซ์ 8x8 โดยใช้รีจิสเตอร์กะ 74HC595 สองตัว ไดอะแกรมการเชื่อมต่อได้กล่าวถึงข้างต้น ตัวอักษร R, L, หมายเลข 46, สไมลี่ และรูปแบบในรูปกากบาทจะแสดงสลับกันบนเมทริกซ์ ภาพเคลื่อนไหวนี้จะแสดงในวิดีโอด้านล่าง

พร้อมแท็ก , . อ่าน .

การประกอบกระโจมโดยใช้เมทริกซ์ LED และ Arduino เป็นงานง่ายๆ ที่สามารถทำได้แม้อยู่ที่บ้าน คุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์และมีความรู้เชิงลึกเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์เพื่อให้ตัวอักษรเคลื่อนที่บนจอแสดงผล LED ในบทความนี้ เราจะวิเคราะห์วิธีการประกอบเส้นวิ่งจากเมทริกซ์ LED สำเร็จรูปและ Arduino Nano

จะต้องมีอะไรบ้าง?

หากต้องการนำแนวคิดนี้ไปใช้ คุณต้องมีรายละเอียดเพียงเล็กน้อย:

  • โมดูล LED สองโมดูลประกอบด้วยสี่เมทริกซ์ขนาด 8 คูณ 8 พิกเซล
  • ที่ยึดแบตเตอรี่ขนาดมาตรฐาน "Krona"
  • แบตเตอรี่ 9 โวลต์ (CR-9V, ER-9V หรือเทียบเท่า);
  • สวิตช์สองขา
  • สายเชื่อมต่อ
  • บอร์ด Arduino นาโน;
  • กาวร้อน

โครงการ

บนแผงวงจรพิมพ์ของโมดูล LED ที่ใช้ มีเมทริกซ์ขนาด 8 คูณ 8 พิกเซล 4 ตัว บอร์ด LED แต่ละตัวถูกควบคุมโดยวงจรรวม (IC) MAX7219 IC นี้เป็นตัวควบคุมสำหรับควบคุมจอแสดงผล LED, เมทริกซ์แคโทดทั่วไปและ LED แบบแยกในจำนวนสูงสุด 64 ชิ้น

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

การประกอบ

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

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

  • วีซีซี - วีซีซี
  • GND-GND
  • เข้า-ออก
  • ซีเอส–ซีเอส
  • ซีแอลเค - ซีแอลเค

กับ ด้านหลัง PCB พร้อมกาวร้อนติด Arduino Nano ช่องใส่แบตเตอรี่และสวิตช์ รายละเอียดถูกจัดเรียงในลักษณะที่สามารถใช้งานได้สะดวก
ในขั้นตอนต่อไป Arduino จะเชื่อมต่อกับโมดูล LED โดยต่อสายไฟเข้ากับอินพุตของเมทริกซ์ตัวแรก ขึ้นอยู่กับรุ่นของโมดูล การดำเนินการจะดำเนินการผ่านการเชื่อมต่อแบบถอดได้หรือการบัดกรีตามแผนภาพด้านล่าง:

  • VCC-5V
  • GND-GND
  • D IN - PIN 11
  • CS-PIN 10
  • CLK - PIN 13.

ในขั้นตอนสุดท้ายของการประกอบจำเป็นต้องเชื่อมต่อพลังงานจากแบตเตอรี่ ในการทำเช่นนี้ หน้าสัมผัสเชิงลบ (สายสีดำ) จากช่องเม็ดมะยมจะเชื่อมต่อกับพิน GND ของ Arduino หน้าสัมผัสขั้วบวก (สายสีแดง) เชื่อมต่อกับสวิตช์ จากนั้นต่อเข้ากับขา Arduino #30 ซึ่งออกแบบมาเพื่อจ่ายแรงดันไฟฟ้าจากแหล่งที่ไม่มีการควบคุม ในโหมดทดสอบ ติ๊กเกอร์ที่ต้องทำด้วยตัวเองสามารถจ่ายไฟผ่าน micro USB จากคอมพิวเตอร์ได้
หลังจากตรวจสอบความน่าเชื่อถือของตัวยึดและคุณภาพของการเชื่อมต่อไฟฟ้าแล้ว พวกเขาก็เริ่มประกอบเคส สามารถทำจากโปรไฟล์อลูมิเนียมหรือพลาสติกเนื่องจากองค์ประกอบของวงจรไม่ร้อนขึ้น สี ขนาด ระดับการป้องกันและการยึดตัวเรือนขึ้นอยู่กับการใช้งานอุปกรณ์ในอนาคต ในกรณีที่ง่ายที่สุด หน้าจอป้องกันที่ทำจากโปรไฟล์มุมพลาสติกอาคารที่มีช่องสำหรับสวิตช์นั้นเหมาะสม

การเขียนโปรแกรมติ๊กเกอร์

เส้นวิ่งจาก Arduino และโมดูล LED ภายใต้การควบคุมของ MAX7219 ใกล้จะพร้อมแล้ว ได้เวลาไปยังส่วนสุดท้ายของโปรแกรมแล้ว ต้องติดตั้งซอฟต์แวร์ (ซอฟต์แวร์) สำหรับ Arduino ที่ใช้และไดรเวอร์สำหรับซอฟต์แวร์นั้นในคอมพิวเตอร์ ถัดไป คุณต้องดาวน์โหลดสองไลบรารีและหนึ่งร่าง (โปรแกรมพิเศษที่จะโหลดและดำเนินการโดยโปรเซสเซอร์ Arduino) ไลบรารีถูกติดตั้งโดยปิด Arduino IDE ในโฟลเดอร์ Documents - Arduino - Libraries จากนั้นพวกเขาจะดาวน์โหลดและเรียกใช้ร่างและตรวจสอบการมีอยู่ของไลบรารีและความถูกต้องของข้อมูลอื่น ๆ

การตั้งค่าร่าง:

  • "จำนวนการแสดงแนวนอน" ระบุจำนวนบรรทัด ในกรณีของเรา 1;
  • "จำนวนของการแสดงแนวตั้ง" ระบุจำนวนของเมทริกซ์ ในกรณีของเรา 8;
  • "เทปสตริง" หมายถึงคำจารึกที่แสดงบนจอแสดงผล
  • "int wait" กำหนดความเร็วเอาต์พุตเป็นมิลลิวินาที

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

โดยสรุปฉันต้องการเพิ่มว่าสายการวิ่งที่ต้องทำด้วยตัวเองนั้นประกอบขึ้นอย่างรวดเร็วแม้ว่าจะไม่มีทักษะในการทำงานกับ Arduino ดังนั้นคุณไม่ควรกลัวกระดานที่ซับซ้อนนี้ นอกจากนี้ยังเป็นที่น่าสังเกตว่าเส้นวิ่งสามารถยาวขึ้นได้โดยการเพิ่มจำนวนเมทริกซ์ LED

อ่านด้วย

ในช่วงไม่กี่ปีที่ผ่านมา เมทริกซ์ LED ได้แพร่หลายในการโฆษณากลางแจ้งและกระดานข้อมูลต่างๆ ค่อนข้างสดใส มีชีวิตชีวา - ดึงดูดความสนใจได้อย่างสมบูรณ์แบบและไม่มืดบอดในวันที่แดดจ้า คุณแต่ละคนเห็นพวกเขาบนถนนในเมืองของคุณทุกวัน
แน่นอนว่าการจัดจำหน่ายของพวกเขาได้รับการอำนวยความสะดวกด้วยราคาที่ต่ำ (เนื่องจากผู้ผลิตจีน) และความสะดวกในการประกอบหน้าจอ

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

ชาวจีนเสนอทั้งเมทริกซ์ที่มีขนาดต่างกันและมีความละเอียดต่างกันรวมถึงตัวควบคุมสำหรับการแสดงภาพด้วยเอฟเฟกต์ง่าย ๆ รวมถึงอุปกรณ์เสริมที่จำเป็นทั้งหมด สายเชื่อมต่อ เฟรม
พบเมทริกซ์เป็นสีเดียว (ขาว เหลือง แดง เขียว น้ำเงิน) และ 3 สี (RGB) การกำหนดโมเดลเมทริกซ์มักจะดูเหมือน Pxx หรือ PHxx โดยที่ xx คือตัวเลขที่ระบุระยะห่างระหว่างพิกเซลเป็นมิลลิเมตร ในกรณีของฉันคือ P10 นอกจากนี้ เมทริกซ์ขนาดมาตรฐานบางขนาดไม่ได้เป็นเพียงรูปสี่เหลี่ยมผืนผ้าเท่านั้น แต่ยังเป็นรูปสี่เหลี่ยมจัตุรัสอีกด้วย

ตัวเลือกที่เป็นไปได้สำหรับขนาดดาย



ดังนั้นเราจึงมีเมทริกซ์สีขาวขนาด 32x16 พิกเซลที่มีขนาด 320x160 มม. และระยะห่างระหว่างพิกเซลเท่ากับ 10 มม. ลองมาดูกันดีกว่า
มุมมองด้านหน้า:

สำหรับคุณแล้วดูเหมือนว่าไฟ LED นั้นเป็นวงรีบางประเภท? คุณไม่คิดว่า...


กระบังหน้าขนาดเล็กทำขึ้นเหนือไฟ LED ซึ่งป้องกันแสงแดดไม่ให้ส่องไปที่ไฟ LED

มุมมองด้านหน้าที่ถอดหน้ากากพลาสติกออก



เราหมุนเมทริกซ์และดูกระดาน:


มีชิปตรรกะมากมายบนกระดาน มาดูกันว่าไมโครเซอร์กิตเหล่านี้คืออะไร:
1. 1 x SM74HC245D - บัฟเฟอร์ที่ไม่กลับด้าน
2. 1 x SM74HC04 - อินเวอร์เตอร์ 6 แชนแนล
3. 1 x SM74HC138D - ตัวถอดรหัส 8 บิต
4. 4 x APM4953 - การประกอบ MOSFET P-channel 2 ตัว
5. 16 x 74HC595D Latched Shift Register
ตัวเชื่อมต่อ 16 พินสองตัวคืออินเตอร์เฟสหนึ่งในนั้นเป็นอินพุต (เชื่อมต่อกับตัวควบคุมหน้าจอ) และตัวที่สองคือเอาต์พุต (เมทริกซ์ถัดไปในห่วงโซ่เชื่อมต่อกับมัน) ลูกศรบนกระดานกำกับจากขั้วต่ออินพุตไปยังเอาต์พุต
จ่ายไฟให้กับขั้วที่อยู่ตรงกลางบอร์ด แรงดันไฟ - 5V, กระแสสูงสุด (เมื่อเมทริกซ์ LED ทั้งหมดเปิดอยู่) - 2A (สำหรับเมทริกซ์สีขาว)

ข้อมูลข้างต้นทั้งหมด ตลอดจนการสาธิตเมทริกซ์ในวิดีโอด้านล่าง ในนั้นตั้งแต่ 13:04 น. ถึง 15:00 น. ฉันพูดถึงการพึ่งพาความสว่างของหน้าจอกับจำนวนเมทริกซ์ นี่เป็นเพราะข้อผิดพลาดในอัลกอริทึม ข้อบกพร่องได้รับการแก้ไขแล้ว และขณะนี้ข้อมูลถูกโหลดก่อนที่หน้าจอจะปิด

ฉันยังจะดีใจที่ได้พบคุณ ช่อง YouTube ของฉันซึ่งฉันยังคงเชื่อมต่อสิ่งต่างๆ มากมายกับไมโครคอนโทรลเลอร์

ขอขอบคุณทุกท่านที่ให้ความสนใจ!

เวลาผ่านไปอย่างไม่น่าเชื่อและดูเหมือนว่าอุปกรณ์ที่เพิ่งซื้อมาจะไม่เรียบร้อย ดังนั้นเมื่อทำงานครบ 10,000 ชั่วโมงแล้ว หลอดไฟของจอภาพของฉัน (AOC 2216Sa) จึงได้รับคำสั่งให้ใช้งานได้นาน ในตอนแรกไฟพื้นหลังไม่เปิดในครั้งแรก (หลังจากเปิดจอภาพไฟพื้นหลังจะดับลงหลังจากนั้นไม่กี่วินาที) ซึ่งแก้ไขได้โดยการเปิด / ปิดจอภาพอีกครั้งเมื่อเวลาผ่านไปต้องเปิดจอภาพ ปิด / ปิด 3 ครั้งแล้ว 5 จากนั้น 10 และในบางจุดก็ไม่สามารถเปิดไฟพื้นหลังได้ไม่ว่าจะเปิดกี่ครั้งก็ตาม ตะเกียงที่นำออกไปสู่แสงสว่างของพระเจ้ากลายเป็นขอบที่ดำคล้ำและกลายเป็นเศษเหล็กอย่างถูกกฎหมาย ความพยายามในการเปลี่ยนหลอดไฟ (ซื้อหลอดไฟใหม่ที่มีขนาดเหมาะสม) ไม่สำเร็จ (จอภาพสามารถเปิดไฟพื้นหลังได้หลายครั้ง แต่กลับไปที่โหมดเปิด - ปิดอย่างรวดเร็ว) และค้นหาสาเหตุของสิ่งที่อาจเป็นได้ ปัญหาที่เกิดขึ้นกับอุปกรณ์อิเล็กทรอนิกส์ของจอภาพทำให้ฉันมีความคิดเกี่ยวกับความจริงที่ว่าการประกอบไฟแบ็คไลท์ของจอภาพของคุณเองบน LED จะง่ายกว่าการซ่อมแซมวงจรอินเวอร์เตอร์ที่มีอยู่สำหรับหลอด CCFL โดยเฉพาะอย่างยิ่งเนื่องจากมีบทความแสดงอยู่ในเครือข่ายแล้ว ความเป็นไปได้พื้นฐานของการแทนที่ดังกล่าว

เราถอดจอภาพออก

มีการเขียนบทความจำนวนมากในหัวข้อการถอดประกอบจอภาพ จอภาพทั้งหมดมีความคล้ายคลึงกันมาก ดังนั้นโดยย่อ:
1. คลายเกลียวที่ยึดของจอภาพและสลักเกลียวเดียวที่ด้านล่างซึ่งยึดผนังด้านหลังของเคส


2. ที่ด้านล่างของเคสจะมีช่องสองช่องระหว่างด้านหน้าและด้านหลังของเคส โดยหนึ่งในนั้นเราใส่ไขควงปากแบนและเริ่มถอดฝาครอบออกจากสลักรอบๆ ขอบจอภาพทั้งหมด (เพียงแค่ค่อยๆ หมุนไขควงรอบแกนแล้วยกฝาครอบเคสขึ้น) ไม่จำเป็นต้องใช้ความพยายามมากเกินไป แต่เป็นการยากที่จะถอดเคสออกจากสลักในครั้งแรกเท่านั้น (ระหว่างการซ่อมแซมฉันเปิดหลายครั้งดังนั้นสลักจึงเริ่มถอดออกได้ง่ายกว่ามากเมื่อเวลาผ่านไป)
3. เรามีมุมมองการติดตั้งโครงโลหะภายในด้านหน้าเคส:


เราถอดบอร์ดด้วยปุ่มออกจากสลักถอด (ในกรณีของฉัน) ขั้วต่อลำโพงและถอดสลักสองตัวที่ด้านล่างออกแล้วเราก็นำกล่องโลหะด้านในออกมา
4. ทางด้านซ้ายคุณจะเห็นสายไฟ 4 เส้นสำหรับเชื่อมต่อไฟพื้นหลัง เรานำออกโดยการบีบเล็กน้อยเพราะ ตัวเชื่อมต่อจะทำในรูปแบบของไม้หนีบผ้าขนาดเล็กเพื่อป้องกันไม่ให้หลุดออก นอกจากนี้เรายังถอดสายเคเบิลกว้างที่ไปที่เมทริกซ์ (ที่ด้านบนของจอภาพ) โดยบีบขั้วต่อที่ด้านข้าง (เนื่องจากมีสลักด้านข้างในขั้วต่อแม้ว่าจะไม่ชัดเจนเมื่อมองที่ขั้วต่อ):


5. ตอนนี้คุณต้องแยกส่วน "แซนวิช" ที่มีเมทริกซ์และแบ็คไลท์:


ตามแนวเส้นรอบวงมีสลักที่เปิดออกด้วยการแงะเล็กน้อยด้วยไขควงแบนตัวเดียวกัน ขั้นแรกให้ถอดกรอบโลหะที่ยึดเมทริกซ์ออก หลังจากนั้นคุณสามารถคลายเกลียวสลักเกลียวขนาดเล็กสามตัว (ไขควงปากแฉกทั่วไปจะไม่ทำงานเนื่องจากขนาดที่เล็ก คุณจะต้องใช้อันที่เล็กเป็นพิเศษ) ที่ยึด บอร์ดควบคุมเมทริกซ์และเมทริกซ์สามารถถอดออกได้ (วิธีที่ดีที่สุดคือวางมอนิเตอร์บนพื้นผิวที่แข็ง เช่น โต๊ะที่ปูด้วยเมทริกซ์ผ้า คลายเกลียวบอร์ดควบคุม วางบนโต๊ะ คลี่ออกจนสุด ตรวจสอบและเพียงแค่ยกเคสเรืองแสงขึ้นโดยยกขึ้นในแนวตั้งและเมทริกซ์จะยังคงวางอยู่บนโต๊ะ ตามลำดับ - เช่น ครอบคลุมเมทริกซ์ที่วางอยู่บนโต๊ะด้วยเคสแบ็คไลท์ที่ประกอบแล้วพันสายเคเบิลผ่านปลายไปยังแผงควบคุมและ ขันสกรูบอร์ดควบคุมอย่างระมัดระวัง ยกชุดที่ประกอบขึ้น)
มันกลายเป็นเมทริกซ์แยกกัน:


และบล็อกแบ็คไลท์แยกกัน:


บล็อกแบ็คไลท์ถูกแยกชิ้นส่วนด้วยวิธีเดียวกัน แทนที่จะใช้กรอบโลหะ แบ็คไลท์จะถูกยึดด้วยกรอบพลาสติก ซึ่งวางตำแหน่งลูกแก้วที่ใช้กระจายแสงของแบ็คไลท์พร้อมกัน สลักส่วนใหญ่อยู่ด้านข้างและคล้ายกับสลักที่ยึดกรอบโลหะของเมทริกซ์ (เปิดโดยการแงะด้วยไขควงปากแบน) แต่ด้านข้างมีสลักหลายอันที่เปิด "เข้าด้านใน" (คุณต้องกด ด้วยไขควงเพื่อให้สลักเข้าไปในเคส)
ในตอนแรกฉันจำตำแหน่งของชิ้นส่วนทั้งหมดที่จะถอดออกได้ แต่กลับกลายเป็นว่าไม่สามารถประกอบชิ้นส่วนเหล่านี้ได้ "ไม่ถูกต้อง" และแม้ว่าชิ้นส่วนจะดูสมมาตรอย่างสมบูรณ์ แต่ระยะห่างระหว่างสลักในด้านต่างๆ ของกรอบโลหะและส่วนที่ยื่นออกมาสำหรับยึดที่ด้านข้างของกรอบพลาสติกที่ยึดแบ็คไลท์ไว้จะทำให้ไม่สามารถประกอบชิ้นส่วนเหล่านี้ได้ “ไม่ถูกต้อง” "
นั่นคือทั้งหมด - เราถอดจอภาพออก

ไฟ LED แถบ

ในตอนแรกมีการตัดสินใจที่จะสร้างแบ็คไลท์จากแถบ LED ที่มี LED สีขาว 3528 - 120 LEDs ต่อเมตร สิ่งแรกที่เปิดออกคือความกว้างของเทปคือ 9 มม. และความกว้างของแบ็คไลท์ (และที่นั่งสำหรับเทป) คือ 7 มม. (อันที่จริงมีแบ็คไลท์สองมาตรฐาน - 9 มม. และ 7 มม. แต่ในกรณีของฉันคือ 7 มม.) ดังนั้นหลังจากตรวจสอบเทปจึงตัดสินใจตัด 1 มม. จากขอบแต่ละด้านของเทปเพราะ สิ่งนี้ไม่ได้สัมผัสกับรางนำไฟฟ้าที่ด้านหน้าของเทป (และที่ด้านหลังตลอดทั้งเทปมีสายไฟกว้างสองเส้นซึ่งจะไม่สูญเสียคุณสมบัติเนื่องจากคุณสมบัติลดลง 1 มม. ที่แบ็คไลท์ ยาว 475 มม. เพราะกระแสจะน้อย) ไม่พูดเร็วกว่าทำ:


เรียบร้อยเหมือนกัน ไฟเส้น LEDเล็มตามความยาวทั้งหมด (ภาพแสดงตัวอย่างสิ่งที่เกิดขึ้นก่อนหน้าและสิ่งที่เกิดขึ้นหลังจากการตัดแต่ง)
เราจะต้องใช้เทป 475 มม. สองแถบ (19 ส่วน 3 LEDs ต่อแถบ)
ฉันต้องการให้ไฟแบ็คไลท์ของจอภาพทำงานในลักษณะเดียวกับไฟปกติ (เช่น เปิดและปิดโดยตัวควบคุมจอภาพ) แต่ฉันต้องการปรับความสว่างแบบ "แมนนวล" เช่นเดียวกับจอภาพ CRT รุ่นเก่า เนื่องจาก นี่เป็นฟังก์ชันที่ใช้บ่อย และฉันก็เบื่อที่จะปีนเมนูบนหน้าจอทุกครั้งที่ฉันกดปุ่มสองสามปุ่ม (ในจอภาพของฉัน ปุ่มขวา-ซ้ายไม่ได้ปรับโหมดจอภาพ แต่ปรับความดังของลำโพงในตัว จึงต้องเปลี่ยนโหมดในแต่ละครั้งผ่านเมนู) สำหรับสิ่งนี้พบคู่มือบนเครือข่ายสำหรับจอภาพของฉัน (ซึ่งมีประโยชน์ - แนบท้ายบทความ) และพบ + 12V, เปิด, Dim และ GND ในหน้าที่มี Power Board ตามโครงร่าง ที่เราสนใจ


เปิด - สัญญาณจากแผงควบคุมเพื่อเปิดไฟพื้นหลัง (+ 5V)
Dim - การควบคุมความสว่างของแบ็คไลท์ PWM
+ 12V อยู่ไกลจาก 12 แต่บางแห่งประมาณ 16V โดยไม่มีไฟแบ็คไลท์และบางแห่งประมาณ 13.67V เมื่อโหลดน้อย
นอกจากนี้ยังมีการตัดสินใจว่าจะไม่ปรับ PWM ใด ๆ กับความสว่างของแบ็คไลท์ แต่ให้จ่ายไฟให้กับแบ็คไลท์ด้วยไฟฟ้ากระแสตรง (ในขณะเดียวกันปัญหาก็ได้รับการแก้ไขด้วยข้อเท็จจริงที่ว่าสำหรับจอภาพบางรุ่น PWM ของแบ็คไลท์ไม่ทำงาน ความถี่ที่สูงมากและดวงตาบางส่วนจะเหนื่อยล้าจากสิ่งนี้เล็กน้อย) ในจอภาพของฉัน ความถี่ของ PWM "เนทีฟ" คือ 240 Hz
นอกจากนี้ บนบอร์ดยังพบหน้าสัมผัสที่ใช้สัญญาณ On (ทำเครื่องหมายเป็นสีแดง) และ + 12V ไปยังยูนิตอินเวอร์เตอร์ (รูปภาพสามารถขยายเพื่อดูหมายเหตุ):


ตัวควบคุมเชิงเส้น LM2941 ถูกนำมาใช้เป็นพื้นฐานของวงจรควบคุมส่วนใหญ่เนื่องจากปัจจุบันสูงถึง 1A มีพินควบคุมเปิด / ปิดแยกต่างหากซึ่งควรจะใช้เพื่อควบคุมการเปิด / ปิดไฟแบ็คไลท์ด้วยสัญญาณเปิด จากแผงควบคุมจอภาพ จริงอยู่ใน LM2941 สัญญาณนี้กลับด้าน (นั่นคือมีแรงดันไฟฟ้าที่เอาต์พุตเมื่ออินพุตเปิด / ปิดมีค่าเป็นศูนย์) ดังนั้นฉันต้องประกอบอินเวอร์เตอร์บนทรานซิสเตอร์หนึ่งตัวเพื่อให้ตรงกับสัญญาณเปิดโดยตรงจากแผงควบคุม และอินพุต LM2941 กลับด้าน โครงการไม่มีส่วนเกินอื่น ๆ :


การคำนวณแรงดันเอาต์พุตสำหรับ LM2941 ทำโดยสูตร:

Vout = Vref * (R1+R2)/R1

โดยที่ Vref = 1.275V, R1 ในสูตรจะตรงกับ R1 ในวงจร และ R2 ในสูตรจะตรงกับคู่ของตัวต้านทาน RV1 + RV2 ในวงจร (แนะนำตัวต้านทานสองตัวเพื่อการควบคุมความสว่างที่ราบรื่นยิ่งขึ้นและลดช่วงของแรงดันไฟฟ้าที่ควบคุม โดยตัวต้านทานปรับค่าได้ RV1)
ในฐานะ R1 ฉันใช้ 1 kOhm และการเลือก R2 จะดำเนินการตามสูตร:

R2=R1*(Vout/Vref-1)

แรงดันไฟฟ้าสูงสุดที่เราต้องการสำหรับเทปคือ 13V (ฉันใช้มากกว่า 12V เล็กน้อยเล็กน้อยเพื่อไม่ให้สูญเสียความสว่างและเทปจะรอดพ้นจากแรงดันไฟเกินเล็กน้อย) เหล่านั้น. ค่าสูงสุด R2 = 1,000*(13/1.275-1) = 9.91kΩ แรงดันไฟฟ้าขั้นต่ำที่เทปยังคงเรืองแสงอยู่คือประมาณ 7 โวลต์นั่นคือ ค่าต่ำสุด R2 = 1,000*(7/1.275-1) = 4.49kΩ R2 ของเราประกอบด้วยตัวต้านทานแบบปรับค่าได้ RV1 และทริมเมอร์แบบมัลติเทิร์น RV2 เราได้รับความต้านทาน RV1 9.91kOhm - 4.49kOhm = 5.42kOhm (เราเลือกค่าที่ใกล้ที่สุดของ RV1 - 5.1kOhm) และตั้งค่า RV2 ที่ประมาณ 9.91-5.1 = 4.81kOhm (อันที่จริงแล้วเป็นการดีที่สุดที่จะประกอบวงจรก่อน ตั้งค่าความต้านทานสูงสุดของ RV1 และวัดแรงดันที่เอาต์พุต LM2941 ตั้งค่าความต้านทาน RV2 เพื่อให้เอาต์พุตมีแรงดันสูงสุดที่ต้องการ (ในกรณีของเราคือประมาณ 13V)

การติดตั้งแถบ LED

เนื่องจากหลังจากตัดเทปไป 1 มม. สายไฟก็โผล่ออกมาที่ปลายเทป ฉันจึงติดเทปพันสายไฟที่กล่องในตำแหน่งที่จะติดเทป (น่าเสียดายที่ไม่ใช่สีน้ำเงินแต่เป็นสีดำ) เทปติดอยู่ที่ด้านบน (เป็นการดีที่จะอุ่นพื้นผิวด้วยเครื่องเป่าผมเพราะเทปกาวจะติดบนพื้นผิวที่อุ่นได้ดีกว่ามาก):


ถัดไป ติดฟิล์มด้านหลัง ลูกแก้ว และตัวกรองแสงที่วางอยู่ด้านบนของลูกแก้ว ตามขอบฉันหนุนเทปด้วยเศษยางลบ (เพื่อไม่ให้ขอบเทปหลุดออก):


หลังจากนั้นจะประกอบชุดแบ็คไลท์ในลำดับย้อนกลับ ติดตั้งเมทริกซ์ นำสายไฟแบ็คไลท์ออกมา
วงจรถูกประกอบบนเขียงหั่นขนม (เพราะความเรียบง่ายฉันตัดสินใจที่จะไม่สร้างบอร์ด) มันถูกขันผ่านรูที่ผนังด้านหลังของกล่องโลหะของจอภาพ:




สัญญาณไฟและการควบคุม เปิด เริ่มต้นจากแผงจ่ายไฟ:


พลังงานโดยประมาณที่จัดสรรให้กับ LM2941 คำนวณโดยสูตร:

Pd = (Vin-Vout)*Iout +Vin*Ignd

สำหรับกรณีของฉัน ค่า Pd = (13.6-13) * 0.7 + 13.6 * 0.006 = 0.5 วัตต์ ดังนั้นจึงตัดสินใจเลือกใช้หม้อน้ำที่เล็กที่สุดสำหรับ LM2941 (วางผ่านปะเก็นไดอิเล็กทริกเนื่องจากไม่ได้แยกออกจาก กราวด์ใน LM2941)
การประกอบขั้นสุดท้ายแสดงให้เห็นถึงประสิทธิภาพของการออกแบบ:


จากข้อดี:

  • ใช้แถบ LED มาตรฐาน
  • บอร์ดควบคุมที่เรียบง่าย
จากข้อบกพร่อง:
  • ความสว่างของแบ็คไลท์ไม่เพียงพอในเวลากลางวัน (จอภาพด้านหน้าหน้าต่าง)
  • ไฟ LED ในแถบไม่ได้เว้นระยะบ่อยพอที่จะแสดงแสงรูปกรวยเล็กๆ จาก LED แต่ละดวงใกล้กับขอบด้านบนและด้านล่างของจอภาพ
  • สมดุลแสงขาวลดลงเล็กน้อยและเป็นสีเขียวเล็กน้อย (ส่วนใหญ่แก้ไขได้ด้วยการปรับสมดุลแสงขาวของจอภาพหรือการ์ดแสดงผล)
ค่อนข้างดีเรียบง่ายและ ตัวเลือกงบประมาณซ่อมแบ็คไลท์ การชมภาพยนตร์หรือใช้จอภาพเป็นทีวีในครัวค่อนข้างสะดวกสบาย แต่อาจไม่เหมาะสำหรับการทำงานประจำวัน

ควบคุมความสว่างด้วย PWM

สำหรับแฮ็กเกอร์เหล่านั้นที่จำการควบคุมความสว่างและคอนทราสต์แบบอะนาล็อกไม่ได้ด้วยความคิดถึงแบบเก่า จอภาพ CRTคุณสามารถควบคุมจาก PWM มาตรฐานที่สร้างโดยบอร์ดควบคุมจอภาพโดยไม่ต้องถอดการควบคุมเพิ่มเติมใดๆ ออกไปภายนอก (โดยไม่ต้องเจาะเคสจอภาพ) ในการทำเช่นนี้ก็เพียงพอที่จะประกอบวงจร AND-NOT บนทรานซิสเตอร์สองตัวที่อินพุตของตัวควบคุมเปิด / ปิดและลบการควบคุมความสว่างที่เอาต์พุต (ตั้งค่า แรงดันขาออกคงที่ที่ 12-13V) รูปแบบการแก้ไข:


ความต้านทานของตัวต้านทานทริมเมอร์ RV2 สำหรับแรงดันไฟฟ้า 13V ควรอยู่ที่ประมาณ 9.9kOhm (แต่ควรตั้งค่าให้ตรงเมื่อเปิดตัวควบคุม)

ไฟแบ็คไลท์ LED ที่หนาแน่นยิ่งขึ้น

เพื่อแก้ปัญหาความสว่างไม่เพียงพอ (และในขณะเดียวกันก็มีความสม่ำเสมอ) ของแบ็คไลท์ จึงตัดสินใจติดตั้ง LED มากขึ้นและบ่อยขึ้น เนื่องจากปรากฎว่าการซื้อ LED ทีละรายการมีราคาแพงกว่าการซื้อเทป 1.5 เมตรและบัดกรีจากที่นั่น จึงเลือกตัวเลือกที่ประหยัดกว่า (การบัดกรี LED จากเทป)
ไฟ LED 3528 ดวงติดอยู่บนแถบ 4 แถบ กว้าง 6 มม. และยาว 238 มม. ไฟ LED 3 ดวงต่ออนุกรมกันใน 15 ชุดประกอบแบบขนานบนแถบทั้ง 4 แถบแต่ละแถบ (ต่อสายไฟสำหรับ LED) หลังจากบัดกรี LED และสายไฟแล้ว จะได้สิ่งต่อไปนี้:




แถบวางสองแถบที่ด้านบนและด้านล่างโดยมีสายไฟอยู่ที่ขอบของจอภาพในข้อต่อตรงกลาง:




แรงดันไฟฟ้าปกติทั่ว LED คือ 3.5V (ช่วง 3.2 ถึง 3.8V) ดังนั้นการประกอบ LED 3 ดวงในอนุกรมควรได้รับพลังงานประมาณ 10.5V ดังนั้นจึงจำเป็นต้องคำนวณพารามิเตอร์ของตัวควบคุมใหม่:


แรงดันไฟฟ้าสูงสุดที่เราต้องการสำหรับเทปคือ 10.5V เหล่านั้น. ค่าสูงสุด R2 = 1,000*(10.5/1.275-1) = 7.23kΩ แรงดันไฟฟ้าขั้นต่ำที่ชุด LED ยังคงเรืองแสงอยู่คือประมาณ 4.5 โวลต์นั่นคือ ค่าต่ำสุด R2 = 1,000*(4.5/1.275-1) = 2.53kΩ R2 ของเราประกอบด้วยตัวต้านทานแบบปรับค่าได้ RV1 และทริมเมอร์แบบมัลติเทิร์น RV2 เราได้ความต้านทาน RV1 7.23kOhm - 2.53kOhm = 4.7kOhm และตั้งค่า RV2 ประมาณ 7.23-4.7 = 2.53kOhm และปรับในวงจรประกอบเพื่อให้ได้ 10.5V ที่เอาต์พุต LM2941 ที่ความต้านทานสูงสุด RV1
LED มากกว่าหนึ่งเท่าครึ่งใช้กระแสไฟ 1.2A (ตามชื่อ) ดังนั้นการกระจายพลังงานของ LM2941 จะเท่ากับ Pd = (13.6-10.5) * 1.2 + 13.6 * 0.006 = 3.8 วัตต์ ซึ่งต้องใช้ของแข็งมากกว่าอยู่แล้ว ฮีทซิงค์เพื่อระบายความร้อน:


เรารวบรวม เชื่อมต่อ เราดีขึ้นมาก:


ข้อดี:
  • ความสว่างสูงเพียงพอ (อาจเปรียบเทียบได้ และอาจเหนือกว่าความสว่างของไฟพื้นหลัง CCTL แบบเก่าด้วยซ้ำ)
  • ไม่มีกรวยแสงที่ขอบของจอภาพจากไฟ LED แต่ละดวง (ไฟ LED อยู่ค่อนข้างบ่อยและไฟพื้นหลังสม่ำเสมอ)
  • ยังคงเป็นบอร์ดควบคุมที่เรียบง่ายและราคาถูก
ข้อบกพร่อง:
  • ปัญหาเกี่ยวกับสมดุลแสงขาวที่ออกโทนสีเขียวไม่ได้รับการแก้ไขแต่อย่างใด
  • LM2941 แม้ว่าจะมีฮีทซิงค์ขนาดใหญ่ แต่ก็ร้อนและทำให้ทุกอย่างภายในเคสร้อนขึ้น

บอร์ดควบคุมขึ้นอยู่กับตัวควบคุม step-down

เพื่อขจัดปัญหาเรื่องความร้อน จึงตัดสินใจประกอบดิมเมอร์โดยใช้ตัวควบคุมแรงดันไฟฟ้าแบบสเต็ปดาวน์ (ในกรณีของฉัน เลือก LM2576 ที่มีกระแสสูงถึง 3A) นอกจากนี้ยังมีอินพุตควบคุมเปิด / ปิดแบบกลับด้าน ดังนั้นอินเวอร์เตอร์ตัวเดียวกันบนทรานซิสเตอร์หนึ่งตัวจึงมีไว้สำหรับการจับคู่:


คอยล์ L1 ส่งผลต่อประสิทธิภาพของคอนเวอร์เตอร์ และควรเป็น 100-220 μH สำหรับกระแสโหลดประมาณ 1.2-3A แรงดันขาออกคำนวณโดยสูตร:

Vout=Vref*(1+R2/R1)

โดยที่ Vref = 1.23V. จาก R1 คุณจะได้ R2 โดยใช้สูตร:

R2=R1*(Vout/Vref-1)

ในการคำนวณ R1 เทียบเท่ากับ R4 ในวงจร และ R2 เทียบเท่ากับ RV1+RV2 ในวงจร ในกรณีของเราในการปรับแรงดันไฟฟ้าในช่วงตั้งแต่ 7.25V ถึง 10.5V เราใช้ R4 = 1.8kOhm, ตัวต้านทานแบบปรับค่าได้ RV1 = 4.7kOhm และตัวต้านทานการตัดแต่ง 10kOhm RV2 โดยมีค่าประมาณเริ่มต้นที่ 8.8kOhm (หลังจากประกอบวงจรแล้ว วิธีที่ดีที่สุดคือตั้งค่าที่แน่นอนโดยการวัดแรงดันที่เอาต์พุตของ LM2576 ที่ความต้านทานสูงสุด RV1)
สำหรับคอนโทรลเลอร์นี้ ฉันตัดสินใจสร้างบอร์ด (ขนาดไม่สำคัญเพราะมีพื้นที่เพียงพอในจอภาพสำหรับติดตั้งแม้แต่บอร์ดขนาดใหญ่):


การประกอบบอร์ดควบคุม:


หลังจากติดตั้งในจอภาพ:


ทุกคนอยู่ที่นี่:


หลังจากประกอบทุกอย่างดูเหมือนจะใช้งานได้:


ตัวแปรสุดท้าย:


ข้อดี:

  • ความสว่างเพียงพอ
  • ตัวควบคุมแบบลดระดับไม่ร้อนขึ้นและไม่ทำให้จอภาพร้อน
  • ไม่มี PWM ซึ่งหมายความว่าไม่มีการกะพริบที่ความถี่ใดๆ
  • การควบคุมความสว่างแบบอะนาล็อก (แมนนวล)
  • ไม่จำกัดความสว่างขั้นต่ำ (สำหรับคนชอบทำงานกลางคืน)
ข้อบกพร่อง:
  • ปรับสมดุลแสงสีขาวไปทางโทนสีเขียวเล็กน้อย (แต่ไม่มาก)
  • ที่ความสว่างต่ำ (ต่ำมาก) จะเห็นความไม่สม่ำเสมอในการเรืองแสงของ LED ของชุดประกอบต่างๆ เนื่องจากการแพร่กระจายของพารามิเตอร์

ตัวเลือกการอัปเกรด:

  • สมดุลสีขาวสามารถปรับได้ทั้งในการตั้งค่าจอภาพและในการตั้งค่าของการ์ดวิดีโอเกือบทุกชนิด
  • คุณสามารถลองใส่ LED อื่น ๆ ที่จะไม่ทำให้สมดุลสีขาวลดลงอย่างเห็นได้ชัด
  • เพื่อหลีกเลี่ยงการส่องสว่างที่ไม่สม่ำเสมอของ LED ที่ความสว่างต่ำ คุณสามารถใช้: a) PWM (ปรับความสว่างโดยใช้ PWM ที่จ่ายแรงดันไฟฟ้าที่กำหนดเสมอ) หรือ b) เชื่อมต่อ LED ทั้งหมดเป็นอนุกรมและป้อนด้วยแหล่งกระแสที่ปรับได้ (ถ้าคุณ เชื่อมต่อ LED ทั้งหมด 180 ดวงเป็นอนุกรม คุณจะต้องใช้ 630V และ 20mA) จากนั้นกระแสเดียวกันจะต้องผ่าน LED ทั้งหมด และแต่ละดวงจะมีแรงดันตกคร่อมของตัวเอง ความสว่างถูกควบคุมโดยการเปลี่ยนกระแสไม่ใช่แรงดัน
  • หากคุณต้องการสร้างวงจรที่ใช้ PWM สำหรับ LM2576 คุณสามารถใช้วงจร NAND ที่อินพุตเปิด/ปิดของตัวควบคุมสเต็ปดาวน์นี้ (คล้ายกับวงจรด้านบนสำหรับ LM2941) แต่จะเป็นการดีกว่าหากใส่ดิมเมอร์ ในช่องว่างของสายลบของ LED ผ่าน mosfet ระดับลอจิก

คุณสามารถดาวน์โหลดได้จากลิงค์:

  • คู่มือการใช้งาน AOC2216Sa
  • แผ่นข้อมูล LM2941 และ LM2576
  • LM2941 Regulator Schematics ในรูปแบบ Proteus 7 และ PDF
  • เค้าโครงบอร์ดสำหรับไฟ LED ในรูปแบบ Sprint Layout 5.0
  • ไดอะแกรมและการเดินสายไฟของบอร์ดควบคุมบน LM2576 ในรูปแบบ Proteus 7 และ PDF

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

จากคำอธิบายในหน้า เป็นไปตามที่แหล่งกำเนิดแสงนี้:
- ผลิตโดยใช้เทคโนโลยี LED COB
- แรงดันไฟฟ้า 220 โวลต์;
- การใช้พลังงาน 30 วัตต์;
- อุณหภูมิสี 2500-3200K;
- วัสดุของพื้นผิว (ฐาน) อลูมิเนียม
- ขนาดโดยรวม 40*60 มม.

ระหว่างที่แพ็กของกำลังเดินทางก็ศึกษาทฤษฏี
เทคโนโลยี LED COB คืออะไร?

จนถึงประมาณปี 2009 ผลิตภัณฑ์ LED มีทิศทางการพัฒนาเพียงทิศทางเดียว - การเพิ่มพลังของ LED หรือ Power LED การปรับปรุงเทคโนโลยีนี้ทำให้สามารถบรรลุพลังของ LED หนึ่งดวงที่ระดับ 10 วัตต์
เมื่อปรากฎออกมา การเพิ่มกำลังไฟอีกนั้นไม่สมเหตุสมผลเนื่องจากต้นทุนสูงในการผลิต LED กำลังสูงแยกต่างหาก มีบทบาทสำคัญในการค้นหาวิธีการพัฒนาที่แตกต่างออกไปโดยข้อเท็จจริงที่ว่า LED เป็นแหล่งกำเนิดแสงแบบจุด และกลายเป็นว่าไม่ใช่เรื่องง่ายและไม่ถูกนักที่จะส่องสว่างพื้นที่ผิวขนาดใหญ่โดยใช้พลังงานสูง ไฟ LED เพื่อให้ได้ผลลัพธ์ที่ยอมรับได้มากหรือน้อย จำเป็นต้องใช้ระบบออปติกเพื่อทำให้แสงกระจายตัว
ขั้นตอนต่อไปคือการใช้ LED SMD เพื่อสร้างแหล่งกำเนิดแสงแบบกระจายที่ยอมรับได้ - LED จำนวนมากถูกบัดกรีบนบอร์ดเดียว ข้อเสียคือความเข้มของแรงงานโดยรวมของกระบวนการ - การผลิต LED แต่ละดวง (แต่ละดวงอยู่บนพื้นผิวเซรามิก + ชั้นสารเรืองแสงส่วนบุคคล ฯลฯ) นอกจากนี้ ข้อเสียของวิธีนี้คือความน่าเชื่อถือต่ำของ LED แต่ละดวงและความจำเป็นในการซ่อมแซมหากอย่างน้อยหนึ่งดวงล้มเหลว
เป็นผลให้วิศวกรเกิดแนวคิดเกี่ยวกับความจำเป็นในการผลิต LED ที่ไม่มีคุณลักษณะส่วนบุคคลและวางไว้บนบอร์ดเดียวกัน ระยะทางสั้น ๆจากกันภายใต้ชั้นสารเรืองแสงทั่วไป เช่น เทคโนโลยี LED COB ในท้ายที่สุด สิ่งนี้ทำให้สามารถลดค่าใช้จ่ายของแหล่งกำเนิดแสงโดยรวม และในกรณีที่ LED แต่ละดวงล้มเหลว ให้เปลี่ยนโมดูลทั้งหมด (เมทริกซ์)

แพคเกจมาในซองจดหมายสีเหลืองที่มีห่อฟองด้านใน เมทริกซ์นั้นอยู่ในถุงพลาสติกที่เหมาะสม





อย่างที่คุณเห็น LEDs นั้นอยู่ใกล้กันจริง ๆ ปกคลุมด้วยชั้นของสารเรืองแสงทั่วไปและป้องกันด้วยกาวพลาสติกที่มีมวลคล้ายมวล
สารสีขาวรอบปริมณฑลของเมทริกซ์และวงจรป้องกันของไดรเวอร์ดูเหมือนยางหรือกาวร้อน - ไม่ใช่ก้อนแข็งและยืดหยุ่น สิ่งนี้ทำให้สามารถลบออกจากกรณีที่โดดเด่นที่สุดและพิจารณาว่าหนึ่งในนั้นคือไดโอดบริดจ์ MB10S ที่มีแรงดันย้อนกลับคงที่สูงสุด 1,000 โวลต์และกระแสไปข้างหน้าสูงสุด 0.5 แอมแปร์
แผ่นข้อมูล:

ขนาดตรงกับที่ระบุไว้ในคำอธิบาย



ความหนาของพื้นผิวคือ 1 มม. และน้ำหนักของเมทริกซ์มากถึง 8 กรัม

ไม่ต้องบอกก็รู้ว่าสำหรับไฟ LED กำลังสูง เมทริกซ์ก็ต้องการฮีทซิงค์เช่นกัน ดังนั้นจึงเลือกฮีทซิงค์จากโปรเซสเซอร์


ด้วยสกรูเกลียวปล่อยผ่านแผ่นระบายความร้อน KPT-8 เมทริกซ์ถูกยึดเข้ากับหม้อน้ำ
เกิดข้อผิดพลาดในลำดับการกระทำนี้ - ควรบัดกรีลวดก่อนที่จะต่อเมทริกซ์เข้ากับหม้อน้ำ - ความร้อนจากหัวแร้งเข้าไปในฮีตซิงก์ ผลการบัดกรีสามารถมองเห็นได้ในภาพถ่าย อย่างไรก็ตาม สายไฟถูกยึดไว้อย่างแน่นหนา และฉันไม่ได้เริ่มถอดเมทริกซ์ออก


การรวมครั้งแรกสร้างความประทับใจที่ลบไม่ออก - พูดว่า "สดใส" ไม่ต้องพูดอะไรเลย แม้ว่าจะมองจากระยะไกลในมุมเล็กน้อยกับระนาบของเมทริกซ์ แต่ก็มี "กระต่าย" ไว้ให้ เมื่อเทียบกับสิ่งที่มีอยู่ หลอดประหยัดไฟที่อุณหภูมิ 2800K แสงจะเป็นสีขาวและมีจำนวนมาก

ห้อง14ตร.ม. เมตรสว่างกว่าดี







หลังจากผ่านไป 20 นาที อุณหภูมิก็เพิ่มขึ้นเป็น 85 องศา นอกจากนี้ ฉันไม่ได้ทดสอบความแข็งแรงของเมทริกซ์ แม้ว่าชิปควบคุมจะสามารถควบคุมกระแสไฟผ่าน LED ที่มีความร้อนสูงได้

การทดสอบเพิ่มเติมดำเนินการโดยใช้การระบายความร้อนแบบบังคับด้วยตัวทำความเย็นมาตรฐานจากหม้อน้ำนี้และแผงควบคุมความเร็วพัดลม ฉันถอดตัวสุดท้ายออกจากแหล่งจ่ายไฟของพีซีเครื่องเก่า





อุณหภูมิไม่สูงกว่า 31.5 องศาเป็นเวลาหนึ่งชั่วโมงครึ่ง และพัดลมทำงานที่ความเร็วต่ำโดยไม่เร่งความเร็ว



หลังจากนั้น บอร์ดควบคุมความเร็วพัดลมก็ไม่รวมอยู่ในการออกแบบ และแหล่งจ่ายไฟถูกแทนที่ด้วย 9 โวลต์

การเพิ่มขึ้นของแรงดันไฟฟ้าในเครือข่ายทำให้มั่นใจได้ว่าการใช้พลังงานที่ประกาศไว้นั้นเป็นความจริง



ตามที่คาดไว้ กล้องตอบสนองต่อการกะพริบของเมทริกซ์ด้วยความถี่ 100 เฮิรตซ์ ฉันไม่ได้ถ่ายวิดีโอ แต่ฉันสามารถจับภาพต่อไปนี้ได้

เป็นไปได้ที่จะเอาชนะการกระเพื่อมได้โดยการบัดกรีตัวเก็บประจุเข้ากับไดโอดบริดจ์ สิ่งนี้จะทำให้แรงดันไฟฟ้าเพิ่มขึ้นเป็น 220 * 1.41 = 310.2 โวลต์ และจำเป็นต้องเล่นกับตัวต้านทานจำกัด BP5132H แต่เนื่องจากในตอนแรกฉันทราบว่าแหล่งกำเนิดแสงนี้ไม่เหมาะสำหรับที่อยู่อาศัย ฉันจึงไม่เริ่มการต่อสู้นี้
ขอบเขตของเมทริกซ์คือไฟถนนทั่วไป ห้องอเนกประสงค์ ฯลฯ ดังนั้นจึงละเลยการเต้นเป็นจังหวะได้
ด้วยความช่วยเหลือของ LATR มันเป็นไปได้ที่จะสร้าง (การทดลองดำเนินการในที่ทำงานและไม่ได้ถ่ายภาพเพื่อไม่ให้ตอบคำถาม: "ทำไม") ว่าเกณฑ์ที่ต่ำกว่าซึ่งเมทริกซ์ยังคงปล่อยออกมา ไฟเป็น 130 โวลท์คี่ ฉันไม่ได้จ่ายไฟเกิน 250 โวลต์ แต่ในกรณีนี้หน้ากากของช่างเชื่อมจะไม่รบกวน)
เนื่องจากแหล่งกำเนิดแสงนี้มีพลังงานสูงและความหนาแน่นของแสงที่เพิ่มขึ้นหน้าจอกระจายแสงด้านหน้าเมทริกซ์จะไม่ฟุ่มเฟือยเลย

เป็นผลให้ข้อเสียรวมถึง:
- การกระจายความร้อนที่เพิ่มขึ้น (ต้นทุนของเทคโนโลยี แต่ไม่ใช่การออกแบบ) และความจำเป็นในการใช้ฮีตซิงก์ (ควรระบายความร้อนที่ใช้งานอยู่)
- ค่าใช้จ่ายค่อนข้างสูง

อย่างไรก็ตาม ข้อเสียเหล่านี้ถูกชดเชยด้วยความสว่างของเมทริกซ์นี้ ความสามารถในการส่องสว่างในพื้นที่ขนาดใหญ่ และการปฏิบัติตามลักษณะที่ประกาศไว้
การกะพริบไม่สามารถนำมาประกอบกับคุณสมบัติเชิงลบได้เนื่องจากพื้นที่ของแอปพลิเคชันของเมทริกซ์ไม่ใช่สถานที่อยู่อาศัย
แยกกันฉันต้องการที่จะหันไปสมัครพรรคพวกของคำสั่ง "ผู้เกลียดชังจุดที่ 18") เพื่อน ๆ ฉันขอให้คุณเป็นกลางในการประเมินข้อมูลที่นำเสนอในการทบทวน โดยเฉพาะอย่างยิ่งเนื่องจากต้องใช้ความพยายามและเวลาค่อนข้างมากในการรวบรวม จัดระบบ และนำเสนอ

ผลิตภัณฑ์นี้จัดทำขึ้นเพื่อเขียนรีวิวโดยร้านค้า บทวิจารณ์ได้รับการเผยแพร่ตามข้อ 18 ของกฎของเว็บไซต์

ฉันวางแผนที่จะซื้อ +44 เพิ่มในรายการโปรด ชอบรีวิว +60 +111

กำลังโหลด...
สูงสุด