lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

ขอคำแนะนำการเอาเวลาจาก DS3231 มาแสดงที่ module 7 segment

MOSSQUITO
MOSSQUITO
IP: 171.97.55.x
6 เดือนที่ผ่านมา

ขอคำแนะนำการเอาเวลาจาก DS3231 มาแสดงที่ module 7 segment ครับ มือใหม่ลองแล้วยังงงๆ

ผมใช้ module 7 segment ตามรูปครับ

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
6 เดือนที่ผ่านมา

โมดูลแสดงผล 7 segment มีตัวอย่างในหน้าบทความ

โมดูล ds3231 มีตัวอย่างในหน้าบทความ ลองเล่นให้สามารถแสดงผลออกก่อน

เล่นให้เป็นทั้ง 2 ตัว แล้วเอามาเขียนโปรแกรมต่อรวมกันครับ

QUOTE 
ความคิดเห็นที่ #2
MOSSQUITO
MOSSQUITO
IP: 210.4.134.x
6 เดือนที่ผ่านมา
ทั้ง 2 Module แสดงผลได้หมดแล้วครับ ผมลองเอามารวมกัน ปัญหาคือเราจะแยกเวลาแต่ละตัวมายังไง ผมใช้วิธีเอาเวลามาใส่ใน array โดยใช้โค๊ต แล้วเอาไปใส่ที่ละหลักใน 7 segment แต่มันแสดง 8888 หมดเลย ต้องแปลงรูปแบบก่อนไหมครับ void get_time() { //get time DateTime now = RTC.now(); //save time to array RTC[6] = now.year(); RTC[5] = now.month(); RTC[4] = now.day(); RTC[3] = now.dayOfWeek(); //returns 0-6 where 0 = Sunday RTC[2] = now.hour(); RTC[1] = now.minute(); RTC[0] = now.second(); }
QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน
เจ้าของร้าน
6 เดือนที่ผ่านมา

ตรองนี้อยากให้ลองฝึกเขียนโปรแกรมเพิ่ม หลักการคือแยกแต่ละตัวเลขออกมาแสดง และข้อความที่แสดงเป็นแบบ string ครับ

QUOTE 
ความคิดเห็นที่ #4
MOSSQUITO
MOSSQUITO
IP: 171.97.54.x
6 เดือนที่ผ่านมา
ผมแยกแต่ละตัวเลขออกมาได้แล้วในรูปแบบ string แต่ในตัวอย่างเป็นรูปแบบ char พอ covert string เป็น char มันกลายเป็นภาษาอื่นแทนครับ
QUOTE 
ความคิดเห็นที่ #5
เจ้าของร้าน
เจ้าของร้าน
6 เดือนที่ผ่านมา

ตามตัวอย่างในบทความ 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.

QUOTE 
ความคิดเห็นที่ #6
MOSSQUITO
MOSSQUITO
IP: 210.4.134.x
6 เดือนที่ผ่านมา
ขอบคุณครับ ตอนนี้ผมสมารถแสดงตัวเลขตามเวลาได้แล้ว แต่อยากให้จุดกระพริบ ผมต้องเพิ่มส่วนไหน ผมใช้วิธีให่แสดงผลโดยใช้ disp_c[] ลองเปลี่ยนตัวเลขในวงเล็บก็ไม่แสดงต้องใช้ %10+10 ถึงจะแสดงจุดต่อท้ายตัวเลข และอีกอย่างผมใช้แบตเตอรี่ 9v จ่ายไฟ พอเปิดไฟเรื่อยๆแล้วเหมือน error ติดแค่ตัวเลขเดียวค้าง Reset ไม่หาย ต้องเอาไปต่อกับคอมก่อน พอกับมาใช้กับแบต 9v ก้อนเดิมก็ใช้ได้ปกติ สักพักก็เป็นอีกครับ
QUOTE 
ความคิดเห็นที่ #7
เจ้าของร้าน
เจ้าของร้าน
6 เดือนที่ผ่านมา

// แสดงผลแบบตัวเลข ตัวอย่างแสดงค่า 95.42
// showText(9,15,4,2); //15 --> แสดงเลข 5.

ถ้าอยากให้จุดหาย ก็ให้แสดงเลข 5 แทน 5. ครับ

1
แสดงความคิดเห็นที่ 1-7 จากทั้งหมด 7 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
275.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A225
5.00 บาท
  • สั่งซื้อ
Go to Top