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

สอบถามการตั้งค่าRTCด้วยสวิทช์ครับ

MaDz
MaDz (Guest)
IP: 14.207.38.x
2 ปีที่ผ่านมา

Laughingผมใช้โปรแกรมนี้เป็นตัวตั้งเวลาให้ตัว RTC ตอนแรก

#include <DS3231.h>

DS3231  rtc(SDA, SCL);

 

Time  t;

 

void setup()

{

  

  Serial.begin(115200);

 

  rtc.begin();

  

  rtc.setDOW(MONDAY);  

  rtc.setTime(21, 20,30);    

  rtc.setDate(24, 11, 2014);

}

void loop()

{

  t = rtc.getTime();

 

  Serial.print(t.hour, DEC);

  Serial.print(" : ");

  Serial.print(t.min, DEC);

  Serial.print(" : ");

  Serial.print(t.sec, DEC);

  delay (1000);

}

 

 

Laughingพอได้เวลาที่ต้องการแล้ว ผมใชัโ)รแกรมต่อไปนี้ให้มันแสดงออกจอLCD 

 

// include the library code:

#include <LiquidCrystal.h>

#include <DS3231.h>

#include "TM1637.h"

#define ON 1

#define OFF 0

 

int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};

unsigned char ClockPoint = 1;

unsigned char Update;

unsigned char halfsecond = 0;

unsigned char second;

unsigned char min = 0;

unsigned char hour = 0;

 

 

DS3231  rtc(SDA, SCL);

Time  t;

 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

 

void setup() {

  

   rtc.begin();

 

  lcd.begin(16, 2);

 

}

 

void loop() {

   

  

   t = rtc.getTime();

   lcd.setCursor(0, 0);

  

  lcd.print ("TIME  ");

  lcd.print(rtc.getTimeStr());

  

  lcd.setCursor(0, 1);

  

  lcd.print("DATE  ");   

  lcd.print(rtc.getDateStr());

 

  delay (1000); 

}

 

มันแสดงเวลาและวันที่ออกมาได้แล้ว  แต่ผมอยากจะต่อสวิทช์เพื่อที่จะใช้ตั้งเวลาจากภายนอกโดยไม่ต้องมาเขียนโปรแกรมใหม่  ต้องเริ่มตรงไหน ช่วยแนะนำหน่อยครับ Smile

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

เยี่ยมเลยครับ ทำออกแล้ว ติดนิดหน่อยผมขอแนะนำประมาณนี้ครับ

โฟกัสที่ วิธีตั้งค่า ปกติเซตที่โคดนี้ ตามที่บอกผมนะครับ

  rtc.setDOW(MONDAY);  

  rtc.setTime(21, 20,30);    

  rtc.setDate(24, 11, 2014);

แล้วต้องการใช้สวิตช์เป็นอินพุตการตั้งค่า ออกแบบการกดสวิตช์ตามต้องการครับ อาจจะกดแบบแช่ไว้ 3 วิ หรือกด 2 ปุ่มพร้อมกันเพื่อเซตค่าต่าง ๆ

คอนเซฟคือ จะมีอยู่ 3 ปุ่ม บางปุ่มสามารถยุบรวมกันได้

1. ปุ่มกดเพื่อเซต/เซฟ โหมด

2. ปุ่มกดขึ้น

3. ปุ่มกดลง

สมมุติผมออกแบบว่า กดปุ่มเซต 1 ครั้งจะมาเซตที่โหมดวันที่ กดอีกครั้งมาที่โหมดเวลา กดอีกครั้งมาที่โหมดวัน

กดปุ่มขึ้นลงเพื่อเปลี่ยนค่าตัวเลข กด ปุ่มเซตอีกครั้งเพื่อไปเซตค่าเลขชุดถัดไป ประมาณนี้ครับ

คำสั่งที่ใช้งานก็ digitalRead(PIN) กับ ใช้ IF ในการเช็คเงื่อนไข ต่าง ๆ ครับ Laughing

 

QUOTE 
ความคิดเห็นที่ #2
MaDz
MaDz (Guest)
IP: 171.7.138.x
2 ปีที่ผ่านมา

ขอถามครับ ว่าการต่อไมโครสวิตช์กดติดปล่อยดับแบบ 4 ขา เข้ากับตัวบอร์ด arduino ต่อแบบไหน ช่วยแนะนำหน่อยครับ Smile

ตอนนี้ผมเปลี่ยนมาใช้จอ LCD แบบ 1602 LCD (Blue Screen) 16x2 LCD with backlight of the LCD screen พร้อม I2C Interface ครับ อีกนิดนะครับ

 

ขอบคุณครับ Laughing

QUOTE 
ความคิดเห็นที่ #3
MaDz
MaDz (Guest)
IP: 171.7.138.x
2 ปีที่ผ่านมา

2004 LCD (Blue Screen) 20x4 LCD with backlight of the LCD screen พร้อม I2C Interface ขนาด 20 ตัวอักษร 4 แถว 

 

จอ LCD ตัวนี้ครับ ขอโทษทีครับ 

QUOTE 
ความคิดเห็นที่ #4
เจ้าของร้าน
เจ้าของร้าน
2 ปีที่ผ่านมา

สวิตช์ต่อวงจรและเขียนโคดตามนี้ครับ

ตัวอย่างการใช้งานจอ LCD แบบ I2C ดูตามบทความนี้ครับ

 

QUOTE 
ความคิดเห็นที่ #5
MaDz
MaDz (Guest)
IP: 171.7.138.x
2 ปีที่ผ่านมา

คือตอนนี้ติดตรงที่ว่าไม่รู้ว่าจะเลือกหลักเวลายังไง

เช่น เลือกปรับชั่วโมง ปรับนาที วินาที แบบไหนครับ

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

ไม่ยากครับ เราโฟกัสกันที่โคดนี้

  rtc.setDOW(MONDAY);  

  rtc.setTime(21, 20,30);    

  rtc.setDate(24, 11, 2014);

สังเกตว่าจะเป็นตัวเลขแต่ละตัว

เราจะใช้ตัวแปรแทน เช่น

int mm, ss,hr

แล้วเซตตัวแปรแต่ละตัวโดยการกดปุ่ม จากนั้นก็เอาตัวแปรไปแทนในโคด  rtc.setTime(hr, mm,ss);  

 

QUOTE 
ความคิดเห็นที่ #7
MaDz
MaDz (Guest)
IP: 171.7.90.x
2 ปีที่ผ่านมา

ตอนนี้ตั้งค่าเวลาได้ทุกหลักแล้วครับ

แต่มาติดตรงที่การตั้งค่าวันที่ เดือน ปี  กดตั้งค่าและเพิ่มค่าของวันที่ เดือน ปี ได้

แต่ไม่จำค่าที่ตั้งไป จะกลับไปเป็นค่าเดิมก่อนหน้า  ครับ

QUOTE 
ความคิดเห็นที่ #8
เจ้าของร้าน
เจ้าของร้าน
2 ปีที่ผ่านมา

เยี่ยมเลยครับ ผมว่าดูโคดอีกนิดหน่อยก็น่าจะได้แล้วครับ Laughing

QUOTE 
ความคิดเห็นที่ #9
MaDz
MaDz (Guest)
IP: 27.130.227.x
2 ปีที่ผ่านมา

ทำได้แล้วครับ ขอบคุณมากสำหรับคำแนะนำดีๆครับ Laughing

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

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

สมาชิก 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