โมดูลแสดงผล 7 segment มีตัวอย่างในหน้าบทความ
โมดูล ds3231 มีตัวอย่างในหน้าบทความ ลองเล่นให้สามารถแสดงผลออกก่อน
เล่นให้เป็นทั้ง 2 ตัว แล้วเอามาเขียนโปรแกรมต่อรวมกันครับ
ตรองนี้อยากให้ลองฝึกเขียนโปรแกรมเพิ่ม หลักการคือแยกแต่ละตัวเลขออกมาแสดง และข้อความที่แสดงเป็นแบบ string ครับ
ตามตัวอย่างในบทความ https://www.arduinoall.com/b/2
ศึกษาและแกะโคดคำสั่งตรงนี้ครับ
void setDigit(int dig, int character)
{
int digits[]= {
128,64,32,16,8,4,2,1 };
//character set (0-9)0-9
// (10-19)0.-9.
// (20-45)A-Z
// (46-71)a-z
// (72)- (73) space
int characters[]= {
3,159,37,13,153,73,65,31,1,9,
2,158,36,12,152,72,64,30,0,8,
17,1,99,3,97,113,67,145,243,135,145,227,85,19,3,49,25,115,73,31,129,129,169,145,137,37,
5,193,229,133,33,113,9,209,247,143,81,227,85,213,197,49,25,245,73,225,199,199,169,145,137,37,
253,255 };
digitalWrite(RCLK_pin, LOW);
shiftOut(DIO_pin, SCLK_pin, LSBFIRST, characters[character]);
shiftOut(DIO_pin, SCLK_pin, LSBFIRST, digits[dig]);
digitalWrite(RCLK_pin, HIGH);
}
ตัวอักษรเก็บเป็นตำแหน่งของ array ดังนี้
// ขั้นที่ 3 กำหนดข้อความแสดงผล สามารถกำหนดให้เป็นตัวเลขหรือตัวอักษรได้ตามข้อมูลนี้
//character set (0-9)0-9
// (10-19)0.-9.
// (20-45)A-Z
// (46-71)a-z
// (72)- (73) space
เช่น // แสดงผลแบบตัวอักษร ตัวอย่างแสดงคำว่า Ardu
// showText('A','r','d','u'); // แก้ค่าที่จะให้แสดงผลตรงนี้
// แสดงผลแบบตัวเลข ตัวอย่างแสดงค่า 95.42
// showText(9,15,4,2); //15 --> แสดงเลข 5.
// แสดงผลแบบตัวเลข ตัวอย่างแสดงค่า 95.42
// showText(9,15,4,2); //15 --> แสดงเลข 5.
ถ้าอยากให้จุดหาย ก็ให้แสดงเลข 5 แทน 5. ครับ