|
楼主 |
发表于 2019-9-18 21:18:40
|
显示全部楼层
- #include <Arduino.h>
- #include <TM1637Display.h>
- // Module connection pins (Digital Pins)
- #define CLK 4
- #define DIO 3
- #define SPK 1
- #include <Wire.h>
- #include <DS3231.h>
- DS3231 clock;
- RTCDateTime dt;
- TM1637Display display(CLK, DIO);
- char kk = 0;
- char kkst = 0;
- char numtemp = 0;
- char k = 0x80;
- char jj = 0;
- int tpn = 0;
- int ckst = 0;
- #define TEST_DELAY 500
- uint8_t data[] = { 255, 0b10000000, 0, 255 };
- uint8_t mddata[] = {255,255,255,255};
- void setup()
- {
- clock.begin();
- pinMode(SPK,OUTPUT);
- // Set sketch compiling time
- //设置电脑时间校准
- /*
- clock.setDateTime(__DATE__, __TIME__);
- dt = clock.getDateTime();
- clock.setDateTime(dt.year,dt.month,dt.day, dt.hour,dt.minute,dt.second+6 );
- */
- display.setBrightness(0, true);
- }
- void loop()
- {
- dt = clock.getDateTime();
- if( (dt.hour == 9 && dt.minute >= 15 && dt.minute < 17) || (dt.hour == 11 && dt.minute >= 50 && dt.minute < 52) || (dt.hour == 11 && dt.minute >= 55 && dt.minute < 57) || (dt.hour == 13 && dt.minute >= 30 && dt.minute < 32) || (dt.hour == 16 && dt.minute >= 50 && dt.minute < 52) || (dt.hour == 16 && dt.minute >= 55 && dt.minute < 57) ){
- ckst = 1;
- }else{
- ckst = 0;
- }
- numtemp = ceil(dt.hour / 10);
- data[0] = display.encodeDigit(numtemp);
- numtemp = dt.hour - numtemp * 10;
- data[1] = display.encodeDigit(numtemp) | k;
- numtemp = ceil(dt.minute / 10);
- data[2] = display.encodeDigit(numtemp);
- numtemp = dt.minute - numtemp * 10;
- data[3] = display.encodeDigit(numtemp);
- if(jj == 6)jj =0;
- if(jj >= 5 && jj < 6){
- clock.forceConversion();
- tpn = ceil(clock.readTemperature());
- numtemp = ceil(tpn / 10);
- data[0] = display.encodeDigit(numtemp);
- numtemp = tpn - numtemp * 10;
- data[1] = display.encodeDigit(numtemp);
- data[2] = SEG_A | SEG_B | SEG_G | SEG_F;
- data[3] = SEG_A | SEG_D | SEG_E | SEG_F;
- display.setSegments(data);
- }else{
- display.setSegments(data);
- clock.getDateTime();
- }
- kk++;
- if(ckst == 1){
- if(kkst == 1){
- digitalWrite(SPK, HIGH);
- }else{
- digitalWrite(SPK, LOW);
- }
- }else{
- digitalWrite(SPK, LOW);
- }
- if(kk % 6 == 0){
- kkst = 0;
- }
- if(kk % 12 == 0){
- kkst = 1;
- }
-
- if (kk > 20) {
- k = 0;
- }
- if (kk >= 40) {
- k = 0x80;
- kk = 0;
-
- jj++;
- }
- }
复制代码 |
|