วันอังคารที่ 13 กุมภาพันธ์ พ.ศ. 2561

ที่มาของค่า 3f, 6 ,5b, 4f, 66, 6d, 7d, 7, 7f, 6f ใน Arduino สำหรับป้อนให้ 74HC595 แสดงผล 7 Segment

ขอขยายความ ที่มาของค่า 0x3f, 0x06 , 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f ใน Code Arduino สำหรับป้อนให้ 74HC595 แสดงผล 7 Segment

เนื่องจากค่าที่ 74HC595 ต้องการนั้น เป็น Binary (ฐาน2) เราจึงต้องส่งค่าไปยัง 7 Segment ไปเป็น Binary เสมอ เมื่อเราดูโค๊ดตัวอย่างในเว็บต่างๆ จะเห็นเป็นค่า

int num[] = { 0x3f, 0x06 , 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f };

ตัวแปล num ได้เก็บค่าเป็น Array โดยเมื่อเอาค่าแต่ละค่ามาแปลงเป็นฐาน 2 จะพบว่าตรงกับการแสดงผลของ 7 Segment พอดี โดยหากเราต่อ 7 Segment ดังตัวอย่างด้านล่าง วิธีการมองเลขฐาน 2 ที่ส่งไปยัง 7 Segment นั้นให้มองจากด้านหลังมาด้านหน้าครับ จะยกตัวอย่างการแปลความมายดังนี้

ส่งค่า แสดงผลเป็นตัวเลข 1 บน 7 Segment

Hex = 6 ;
Binary = 110 ;
ตำแหน่ง a บน 7 Segment  = 0 ;
ตำแหน่ง b บน 7 Segment  = 1 ;
ตำแหน่ง c บน 7 Segment  = 1 ;
เมื่อได้ค่าดังนี้ 7 Segment จะแสดงผลเป็นเลข 1 ให้ครับ


                  a = Q0 (74hc595)
             _________________
            |                                  |
            |                                  |
            |                                  |
 f =Q5 |                                  |  b  =Q1
            |                                  |
            |          g = Q6             |
            _________________
            |                                  |
            |                                  |
e = Q4 |                                  |  c = Q2
            |                                  |
            |                                  |
            |                                  |
            _________________
                     d = Q3


แก้ Active Desktop Recovery

เข้าไปแก้ Value ในไฟล์ DeskHtmlVersion  ให้กลายเป็น 0 ไม่ให้แสดงหน้าต่าง Active Desktop Recovery เข้าไปที่  HKEY_CURRENT_USER/Software/Mi...