ขอขยายความ ที่มาของค่า 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
วันอังคารที่ 13 กุมภาพันธ์ พ.ศ. 2561
วันพฤหัสบดีที่ 28 ธันวาคม พ.ศ. 2560
วิธีการติดตั้งไฟล์ bundle ใน Ubuntu
ปัญหาเกิดเมื่อต้องการติดตั้งไฟล์นามสกุล bundle
หาข้อมูลอย่างไว พบว่าต้องให้สิทธิ์ไฟล์ก่อน (Permission) แล้วจึงทำการแตกไฟล์
เช่น ชื่อไฟล์ VM64.bundle
เปิด Terminal ให้ Permission กับไฟล์
chmod a+x VM64.bundle
แตกไฟล์
sudo ./VM64.bundle
เป็นอันเรียบร้อย
หาข้อมูลอย่างไว พบว่าต้องให้สิทธิ์ไฟล์ก่อน (Permission) แล้วจึงทำการแตกไฟล์
เช่น ชื่อไฟล์ VM64.bundle
เปิด Terminal ให้ Permission กับไฟล์
chmod a+x VM64.bundle
แตกไฟล์
sudo ./VM64.bundle
เป็นอันเรียบร้อย
วันอาทิตย์ที่ 10 ธันวาคม พ.ศ. 2560
POST ข้อมูลไม่มา มาไม่ครบ PHP POST LIMITED SIZE : max_input_vars , post_max_size
สืบเนื่องจาก PHP 7.0 ที่ผมใช้อยู่ เมื่อผมทำการ POST ค่ามาแบบ ARRAY และมีจำนวนตัวแปรและ array มีขนาดใหญ่พอสมควร พอ print_r($_POST); ดูข้อมูลมาแต่มาไม่ครบ ลองตรวจสอบหน้า Form ก็แสดงผล Input ต่างๆ ได้ถูกต้อง จึงได้ลองตรวจสอบ php.ini พบว่ามีการให้ค่า default ค่านึงเอาไว้แค่ 1000 ค่า นั่นก็คือ ตั้งค่าการส่งตัวแปล POST เอาไว้แค่ 1000 ตัวนั่นเอง ผมจึงลองแก้ไขดังนี้
nano /etc/php/7.0/apache2/php.ini
แล้วหาบรรทัดที่เขียนว่า ;max_input_vars = 1000
ให้เอา ; ที่เป็นการคอมเม้นท์ออก แล้วแก้ จาก 1000 เป็นค่าที่ให้พอเหมาะกับจำนวนที่คุณคิดว่าจะส่งค่าตัวแปรผ่าน form มาแค่ไหน อาจจะเพิ่มมาอีกเท่าตัวเป็น 2000 ก็ตามแต่ความต้องการครับ
หลังแก้ php.ini แล้วพบว่า print_r($_POST); ได้ข้อมูลครบถ้วนเลยทีเดียว
หากแก้แล้วยังมีปัญหาอยู่ให้ลองดูว่าได้กำหนด post_max_size ไว้เท่าไหร่แล้วลองปรับแก้ดูครับ
หากแก้แล้วยังมีปัญหาอยู่ให้ลองดูว่าได้กำหนด post_max_size ไว้เท่าไหร่แล้วลองปรับแก้ดูครับ
ส่วนเรื่องผลเสียนั้นส่วนตัวผมเอง ผมคิดว่าหากระบบที่กำลังพัฒนามีจำนวน User ที่เยอะมากๆ และการการเรียกใช้ Form ลักษณะนี้มาเช่นกัน การตั้งค่านี้ อาจจะกิน Memory ของ Server มากตามไปด้วยลองทดสอบและคำนวนดีๆ นะครับ ระบบจำได้ไม่ล่ม :-) โชคดีครับ....
วันจันทร์ที่ 4 ธันวาคม พ.ศ. 2560
ซ่อม Power Bank (เสียอย่าพึ่งทิ้ง)
Power bank บางตัวบางรุ่นยางยี่ห้อ เมื่อผลิตออกมาแล้วบางตัวผลิตมาดีบางตัวมีปัญหาคละกันไปแล้วแต่ผู้ใช้จะเจอ ผมก็เจอปัญหาเหมือนกัน ซื้อมาได้ 2 สัปดาห์ เสีย !! ชาร์ตไม่เข้า พอลองแกะมาตรวจสอบพบว่าแผงวงจรชาร์ตมีชิปตัวนึงไหม้ อาจจะเกิดจากตัวหัวชาร์ตปล่อยไฟออกมาเยอะเกินไปหรือตอนผลิตอุปกรณ์ไม่ได้มาตรฐาน ผมจึงได้สั่งอุปกรณ์จาก ebay มาลองแก้ปัญหานี้ดู พบว่า Power bank ผมกลับมาใช้งานได้ตามปกติ แค่ซื้ออุปกรณ์ตัวเล็กๆ มา 1 ตัวราคาไม่ถึง 50 บาท เท่านั้น
หาก Power bank ของคุณๆ พึ่งซื้อมาและคิดว่า Batt ไม่เสื่อม น่าจะลองซื้อมาใช้ดูครับมีให้เลือกหลายแบบใน Ebay ครับ
หาก Power bank ของคุณๆ พึ่งซื้อมาและคิดว่า Batt ไม่เสื่อม น่าจะลองซื้อมาใช้ดูครับมีให้เลือกหลายแบบใน Ebay ครับ
วันจันทร์ที่ 30 ตุลาคม พ.ศ. 2560
สร้าง USB Boot Windows7 / Windows 10
สร้าง USB Boot Windows7 / Windows 10
เตรียม USB Bootable
ด้วย Windows 7 / Windows 10 เข้า Command Line ด้วย Administrator
diskpart
listdisk
select disk 1 (ตรงตัวเลข1 ให้ดูจากคำสั่งข้างบนว่า List Disk ออกมาแล้วเป็นลำดับที่เท่าไหร่)
clean
create partition primary
select partition 1
active
format fs=NTFS quick
assign
จบขั้นตอนการเตรียม USB
มาถึงขั้นตอนการทำเป็น Bootable
ให้เข้าไปที่ DVD หรือ ISO ที่เรา Mount ไว้ว่าเป็น Drive อะไร
cd boot
สั่ง
bootsect.exe /NT60 K: (K: คือ Drive ที่เราเตรียมไว้ตอนต้น)
แล้ว Copy ไฟล์ใน DVD ทั้งหมดลงใน Drive K: (USB ที่เตีรยมไว้)
เตรียม USB Bootable
ด้วย Windows 7 / Windows 10 เข้า Command Line ด้วย Administrator
diskpart
listdisk
select disk 1 (ตรงตัวเลข1 ให้ดูจากคำสั่งข้างบนว่า List Disk ออกมาแล้วเป็นลำดับที่เท่าไหร่)
clean
create partition primary
select partition 1
active
format fs=NTFS quick
assign
จบขั้นตอนการเตรียม USB
มาถึงขั้นตอนการทำเป็น Bootable
ให้เข้าไปที่ DVD หรือ ISO ที่เรา Mount ไว้ว่าเป็น Drive อะไร
cd boot
สั่ง
bootsect.exe /NT60 K: (K: คือ Drive ที่เราเตรียมไว้ตอนต้น)
แล้ว Copy ไฟล์ใน DVD ทั้งหมดลงใน Drive K: (USB ที่เตีรยมไว้)
วันเสาร์ที่ 23 กันยายน พ.ศ. 2560
phpMailer แสดงภาษาไทยไม่ถูกต้อง ภาษาต่างด้าว อ่านไม่ออก
เรื่องปัญหาการส่ง e-mail สำหรับมือใหม่อย่างผม ยังเจอกันอยู่บ่อยๆ ส่งไปยัง gmail hotmail อ่านได้ปกติ แต่พอส่งเข้า MS-OUTLOOK มีปัญหาตลอด
ต้องตรวจสอบเบื้องต้นแบบนี้ครับ
- ตรวจสอบว่าไฟล์ php ของเราเป็น utf-8 หรือยัง
- ตรวจสอบข้อมูลที่เราเอามาแสดงว่าเป็นการเข้ารหัสแบบใด แปลงให้เป็น utf-8 ครับโดยใช้ iconv
- subject กำหนดให้เป็นดังนี้
$mail->Subject = "=?utf-8?b?".base64_encode('ทดสอบหัวข้อเป็นภาษาไทย')."?=";
- ส่วนของเนื้อหาหากปรับเป็น utf-8 หมดแล้วไม่หายลองเข้าไปดูไฟล์ class.phpmailer.php โดยให้แก้จาก public $Encoding = '8bit'; ไปเป็น public $Encoding = 'base64'; ผมแก้ตามนี้แล้วหายครับ
ต้องตรวจสอบเบื้องต้นแบบนี้ครับ
- ตรวจสอบว่าไฟล์ php ของเราเป็น utf-8 หรือยัง
- ตรวจสอบข้อมูลที่เราเอามาแสดงว่าเป็นการเข้ารหัสแบบใด แปลงให้เป็น utf-8 ครับโดยใช้ iconv
- subject กำหนดให้เป็นดังนี้
$mail->Subject = "=?utf-8?b?".base64_encode('ทดสอบหัวข้อเป็นภาษาไทย')."?=";
- ส่วนของเนื้อหาหากปรับเป็น utf-8 หมดแล้วไม่หายลองเข้าไปดูไฟล์ class.phpmailer.php โดยให้แก้จาก public $Encoding = '8bit'; ไปเป็น public $Encoding = 'base64'; ผมแก้ตามนี้แล้วหายครับ
วันศุกร์ที่ 18 สิงหาคม พ.ศ. 2560
MariaDB ติดตั้ง Ubuntu 17.04
ปัญหาเกิดเมื่อติดตั้ง MariaDB แบบ Command line แล้ว ไม่มีให้ใส่รหัสผ่าน
เมื่อติดตั้ง phpmyadmin แล้วดันไม่ยอมให้รหัสว่างอีกแก้โดย
เปิด Terminal
#sudo mysql -uroot
แล้วเพิ่ม User ใหม่ซะเลยให้เข้าไป Graphic Mode ก่อนค่อยไปใส่ Password ให้ root ครับ
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'newuser'@'%' IDENTIFIED BY 'newpassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'
-> WITH GRANT OPTION;
เท่านี้ก็รอดแล้วครับ :-)
เมื่อติดตั้ง phpmyadmin แล้วดันไม่ยอมให้รหัสว่างอีกแก้โดย
เปิด Terminal
#sudo mysql -uroot
แล้วเพิ่ม User ใหม่ซะเลยให้เข้าไป Graphic Mode ก่อนค่อยไปใส่ Password ให้ root ครับ
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'newuser'@'%' IDENTIFIED BY 'newpassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'
-> WITH GRANT OPTION;
เท่านี้ก็รอดแล้วครับ :-)
สมัครสมาชิก:
บทความ (Atom)
แก้ Active Desktop Recovery
เข้าไปแก้ Value ในไฟล์ DeskHtmlVersion ให้กลายเป็น 0 ไม่ให้แสดงหน้าต่าง Active Desktop Recovery เข้าไปที่ HKEY_CURRENT_USER/Software/Mi...
-
ผมหาวิธีปลดล๊อค จากทั้ง Youtube ทั้ง blog ต่างๆ งงอยู่ตั้งนาน เลยมาสรุปไว้เผื่อได้ทำอีก.. สาเหตุ เมื่อเรา Factory Reset แล้ว ที่ติดปัญหาเ...
-
กรณี เปิดไฟล์ Excel 2007 / 2010 โดยตรงไม่ได้ เปิดแล้วเป็นหน้าขาว ต้องใช้ Open ถึงเปิดได้ บางคนอาจแก้ โดยการเข้าไป ติ๊กเอาค่านึง ใน Excel Opt...
-
เรื่องปัญหาการส่ง e-mail สำหรับมือใหม่อย่างผม ยังเจอกันอยู่บ่อยๆ ส่งไปยัง gmail hotmail อ่านได้ปกติ แต่พอส่งเข้า MS-OUTLOOK มีปัญหาตลอด ต้...
