RTC DS1302 Module (DS1302) [S030]



https://www.youtube.com/watch?v=_TlS8qnRSx8


*GitHubhttps://github.com/rdiot/rdiot-s030.git


* Specs

Color: Green

Material: PCB

Voltage: 2v ~ 5.5v

Length: 43mm

Width: 23mm


* Contents

- Connect

VCC ----- 5V

GND ----- GND

CLK ----- D6

DAT ----- D7

RST ----- D8

 

- Setup Default Value

#define SET_DATE_TIME_JUST_ONCE

  seconds    = 0;

  minutes    = 44;

  hours      = 9;

  dayofweek  = 2;  // Day of week, any day can be first, counts 1...7

  dayofmonth = 2; // Day of month, 1...31

  month      = 2;  // month 1...12

  year       = 2016;



- Key Code

// Set your own pins with these defines !

#define DS1302_SCLK_PIN   6    // Arduino pin for the Serial Clock

#define DS1302_IO_PIN     7    // Arduino pin for the Data I/O

#define DS1302_CE_PIN     8    // Arduino pin for the Chip Enable


#define bcd2bin(h,l)    (((h)*10) + (l))

#define bin2bcd_h(x)   ((x)/10)

#define bin2bcd_l(x)    ((x)%10)


#define DS1302_SECONDS           0x80

#define DS1302_MINUTES           0x82

#define DS1302_HOURS             0x84

#define DS1302_DATE              0x86

#define DS1302_MONTH             0x88

#define DS1302_DAY               0x8A

#define DS1302_YEAR              0x8C

#define DS1302_ENABLE            0x8E

#define DS1302_TRICKLE           0x90

#define DS1302_CLOCK_BURST       0xBE

#define DS1302_CLOCK_BURST_WRITE 0xBE

#define DS1302_CLOCK_BURST_READ  0xBF

#define DS1302_RAMSTART          0xC0

#define DS1302_RAMEND            0xFC

#define DS1302_RAM_BURST         0xFE

#define DS1302_RAM_BURST_WRITE   0xFE

#define DS1302_RAM_BURST_READ    0xFF


#define DS1302_D0 0

#define DS1302_D1 1

#define DS1302_D2 2

#define DS1302_D3 3

#define DS1302_D4 4

#define DS1302_D5 5

#define DS1302_D6 6

#define DS1302_D7 7


// Bit for reading (bit in address)

#define DS1302_READBIT DS1302_D0 // READBIT=1: read instruction


// Bit for clock (0) or ram (1) area, 

// called R/C-bit (bit in address)

#define DS1302_RC DS1302_D6


// Seconds Register

#define DS1302_CH DS1302_D7   // 1 = Clock Halt, 0 = start


// Hour Register

#define DS1302_AM_PM DS1302_D5 // 0 = AM, 1 = PM

#define DS1302_12_24 DS1302_D7 // 0 = 24 hour, 1 = 12 hour


// Enable Register

#define DS1302_WP DS1302_D7   // 1 = Write Protect, 0 = enabled


// Trickle Register

#define DS1302_ROUT0 DS1302_D0

#define DS1302_ROUT1 DS1302_D1

#define DS1302_DS0   DS1302_D2

#define DS1302_DS1   DS1302_D2

#define DS1302_TCS0  DS1302_D4

#define DS1302_TCS1  DS1302_D5

#define DS1302_TCS2  DS1302_D6

#define DS1302_TCS3  DS1302_D7


  ds1302_struct rtc;

  char buffer[80];     // the code uses 70 characters.


  // Read all clock data at once (burst mode).

  DS1302_clock_burst_read( (uint8_t *) &rtc);


  sprintf(buffer, "Date=%d-%d-%d [%d]", \

    2000 + bcd2bin( rtc.Year10, rtc.Year), \

    bcd2bin( rtc.Month10, rtc.Month), \

    rtc.Day, \

    bcd2bin( rtc.Date10, rtc.Date));


  lcd.print(buffer);

'2) Sensor > RTC' 카테고리의 다른 글

DS3231 AT24C32 IIC Clock Module (DS3231SN) [S174]  (0) 2016.09.11
Tiny RTC DS1307 I2C Module (DS1307) [S029]  (0) 2016.09.11
Posted by RDIoT
|

Tiny RTC DS1307 I2C Module (DS1307) [S029]



https://www.youtube.com/watch?v=Ai9vbMClES8


*GitHubhttps://github.com/rdiot/rdiot-s029.git


* Specs

DS1307 I2C real-time clock chip (RTC)

24C32 32K I2C EEPROM memory

The using LIR2032 rechargeable lithium battery with charging circuit

Solve the problem DS1307 with backup battery can not read and write.

Fully charged, it can provide the DS1307 timing 1.

Compact design, 27mm * 28mm * 8.4mm

Leads to the a DS1307 clock pin, to provide the clock signal for the microcontroller.

Other I2C devices can be cascaded


* Contents

- Library : https://github.com/adafruit/RTClib


- Connect

GND - GND

VCC - 5V

SDA - SDA

SCL - SCL


- Key Code

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

#include "RTClib.h"

 

LiquidCrystal_I2C lcd(0x27,20,4);  // LCD2004

RTC_Millis rtc;

String dt;

String ut;

 

void setup()

{

  lcd.init();  // initialize the lcd 

  lcd.backlight();

  lcd.print("start LCD2004");

  

  rtc.begin(DateTime(F(__DATE__), F(__TIME__)));

 

  delay(1000);

  lcd.clear();

}

 

void loop()

{

 

  lcd.setCursor(0,0);

  lcd.print("S029:DS1307");

 

  DateTime now = rtc.now();

 

  dt = (String)now.year()+"/";

  dt += (String)now.month()+"/";

  dt += (String)now.day()+" ";

  dt += (String)now.hour()+":";

  dt += (String)now.minute()+":";

  dt += (String)now.second();

 

  lcd.setCursor(0,1);

  lcd.print(dt);

 

  ut = (String)now.unixtime();


  lcd.setCursor(0,2);

  lcd.print("unixtime="+ut);

}



'2) Sensor > RTC' 카테고리의 다른 글

DS3231 AT24C32 IIC Clock Module (DS3231SN) [S174]  (0) 2016.09.11
RTC DS1302 Module (DS1302) [S030]  (0) 2016.09.11
Posted by RDIoT
|

8 Channel Solid State Relay Module [S168]




https://www.youtube.com/watch?v=zitAS2YxezE



* Specs

Description:

5V Omron solid state relays 240V 2A, output with resistive fuse 240V 2A

Size: 103*53*21mm/4.05*2.08*0.82"

The input power supply: 5V DC (160mA)

The input control signal voltage:

(0-2.5V low state relays ON)

(3.3-5V state high relay OFF)

2.54cm pin and blue KF301 terminals connected to the control line is more convenient

Module interface:

Input section:

DC +: positive power supply (relay voltage power supply)

DC-: connect power negative

CH1: 1 signal to trigger the end of the relay module (low level trigger valid)

CH2: 2-way relay module signal triggering end (low level trigger valid)

CH3: 3 relay module signal triggering end (low level trigger valid)

CH4: 4-channel relay module signal triggering end (low level trigger valid)

CH5: 5-way relay module signal triggering end (low level trigger valid)

CH6: 6-way relay module signal triggering end (low level trigger valid)

CH7: 7-way relay module signal triggering end (low level trigger valid)

CH8: 8-channel relay module signal triggering end (low level trigger valid)

Voltage version   quiescent current   working current    trigger voltage     trigger current

   1-way 5V               0mA                  13.8mA                 0-2.5V                2mA

   2-way 5V               0mA                  26.8mA                 0-2.5V                2mA

   3-way 5V               0mA                    37mA                 0-2.5V                 2mA

   4-way 5V               0mA                    48mA                 0-2.5V                 2mA

   5-way 5V               0mA                    59mA                 0-2.5V                 2mA

   6-way 5V               0mA                    70mA                 0-2.5V                 2mA

   7-way 5V               0mA                    81mA                 0-2.5V                 2mA

   8-way 5V               0mA                    90mA                 0-2.5V                 2mA


* Contents

- Key Code

#define RELAY1  9

#define RELAY2  8

#define RELAY3  7

#define RELAY4  6

#define RELAY5  5

#define RELAY6  4

#define RELAY7  3

#define RELAY8  2


void setup()

{    

  pinMode(RELAY1, OUTPUT);       

  pinMode(RELAY2, OUTPUT);

  pinMode(RELAY3, OUTPUT);

  pinMode(RELAY4, OUTPUT);

  pinMode(RELAY5, OUTPUT);

  pinMode(RELAY6, OUTPUT);

  pinMode(RELAY7, OUTPUT);

  pinMode(RELAY8, OUTPUT);


  digitalWrite(RELAY1,LOW);           

  digitalWrite(RELAY2,LOW);           

  digitalWrite(RELAY3,LOW);           

  digitalWrite(RELAY4,LOW);           

  digitalWrite(RELAY5,LOW);           

  digitalWrite(RELAY6,LOW);           

  digitalWrite(RELAY7,LOW);           

  digitalWrite(RELAY8,LOW);           

  delay(2000);


  digitalWrite(RELAY1,HIGH);           

  digitalWrite(RELAY2,HIGH);           

  digitalWrite(RELAY3,HIGH);           

  digitalWrite(RELAY4,HIGH);           

  digitalWrite(RELAY5,HIGH);           

  digitalWrite(RELAY6,HIGH);           

  digitalWrite(RELAY7,HIGH);           

  digitalWrite(RELAY8,HIGH);           

}


void loop()

{

   digitalWrite(RELAY1,HIGH);          // Turns Relay 1 Off

   digitalWrite(RELAY2,HIGH);          // Turns Relay 2 Off


   delay(1000);                        // Wait 1 seconds

   digitalWrite(RELAY1,LOW);           // Turns ON Relays 1   

   digitalWrite(RELAY2,LOW);           // Turns ON Relays 2

   delay(1000); // Wait 1 seconds

}

Posted by RDIoT
|