日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Arduino的大型實時時鐘的制作

454398 ? 來源:wv ? 2019-10-22 17:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:

使用p10 Matrix Display和DS3231 RTC時鐘。

硬件:

Arduino Uno x 1

按鈕(鍵盤)x 4

RTC模塊(DS3231)

P10點矩陣顯示

軟件:

Arduino IDE

DMD 2庫/DMD庫

在此之前,您需要一個必須在Arduino IDE上安裝的支持庫。要下載上面提到的DMD2庫

步驟2:連接

* Arduino-》 RTC模塊*

A4-》 SDA

A5-》 SCL

VCC-》 5V

GND-》 GND

* Arduino-》 P10 DMD *

D8-》 SCK

D6-》 A

D7- 》 B

D11-》 R

D13-》 CLK

D9-》 OE

第3步:代碼

You can find the sample code below.

//使用Arduino的Chakra Healing Harmonizer

/*訪問Channel以獲得更有趣的信息項目https://www.youtube.com/channel/UCks-9JSnVb22dlqt.。.*/

byte dayOfWeek=4;

byte dayOfMonth=1;#include //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)

#include //

#include //

#include “Wendy3x5.h”

#include “Wire.h”

#define DS1307_I2C_ADDRESS 0x68int AlarmSetPin = 2;

int SnoozePin = 3;

int Alarm = 4;

int AlarmSet = 0;

int Snooze = 0;

int a,b;

// Convert normal decimal numbers to binary coded decimal

byte decToBcd(byte val)

{

return ( (val/10*16) + (val%10) );

}// Convert binary coded decimal to normal decimal numbers

byte bcdToDec(byte val)

{

return ( (val/16*10) + (val%16) );

}// 1) Sets the date and time on the ds1307

// 2) Starts the clock

// 3) Sets hour mode to 24 hour clock// Assumes you‘re passing in valid numbersvoid setDateDs1307(byte second, // 0-59

byte minute, // 0-59

byte hour, // 1-23

byte dayOfWeek, // 1-7

byte dayOfMonth, // 1-28/29/30/31

byte month, // 1-12

byte year) // 0-99

{

Wire.beginTransmission(DS1307_I2C_ADDRESS);

Wire.write(0);

Wire.write(decToBcd(second)); // 0 to bit 7 starts the clock

Wire.write(decToBcd(minute));

Wire.write(decToBcd(hour));

Wire.write(decToBcd(dayOfWeek));

Wire.write(decToBcd(dayOfMonth));

Wire.write(decToBcd(month));

Wire.write(decToBcd(year));

Wire.write(00010000); // sends 0x10 (hex) 00010000 (binary) to control register - turns on square wave

Wire.endTransmission();

}// Gets the date and time from the ds1307

void getDateDs1307(byte *second,

byte *minute,

byte *hour,

byte *dayOfWeek,

byte *dayOfMonth,

byte *month,

byte *year)

{

// Reset the register pointer

Wire.beginTransmission(DS1307_I2C_ADDRESS);

Wire.write(0);

Wire.endTransmission();

Wire.requestFrom(DS1307_I2C_ADDRESS, 7);

}//Fire up the DMD library as dmd

DMD dmd(1,1);void ScanDMD()

{

dmd.scanDisplayBySPI();

}void setup()

{

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; //initialize TimerOne’s interrupt/CPU usage used to scan and refresh the display

Timer1.initialize( 5000 ); //period in microseconds to call ScanDMD. Anything longer than 5000 (5ms) and you can see flicker.

Timer1.attachInterrupt( ScanDMD ); //attach the Timer1 interrupt to ScanDMD which goes to dmd.scanDisplayBySPI() //clear/init the DMD pixels held in RAM

dmd.clearScreen( true ); //true is normal (all pixels off), false is negative (all pixels on)

dmd.selectFont(Wendy3x5 ); Wire.begin(); // Change these values to what you want to set your clock to.

// You probably only want to set your clock once and then remove

// the setDateDs1307 call. second = 0;

minute = 35;

hour = 11; // use 24-hour time otherwise day/date calculations will be off

dayOfWeek = 1;

dayOfMonth = 23;

month = 3;

year = 14;

//uncomment the setDateDs1307 call below to set time to intervals above. Remember if you set the time

//you need to uncomment the line below again otherwise the sketch will only stay at the time set.

//setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year); pinMode(AlarmSetPin, INPUT_PULLUP);

pinMode(SnoozePin, INPUT_PULLUP);

pinMode(Alarm, OUTPUT);

digitalWrite(Alarm, LOW);

}void drawDay()

// shows day of week

{

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

switch(dayOfWeek)

{

case 1:

dmd.drawString( 1,0, “Sun,”, 3, GRAPHICS_NORMAL );

break; case 2:

dmd.drawString( 1,0, “Mon,”, 3, GRAPHICS_NORMAL );

break; case 3:

dmd.drawString( 1,0, “Tue,”, 3, GRAPHICS_NORMAL );

break; case 4:

dmd.drawString( 1,0, “Wed,”, 3, GRAPHICS_NORMAL );

break; case 5:

dmd.drawString( 1,0, “Thu,”, 3, GRAPHICS_NORMAL );

break; case 6:

dmd.drawString( 1,0, “Fri,”, 3, GRAPHICS_NORMAL );

break; case 7:

dmd.drawString( 1,0, “Sat,”, 3, GRAPHICS_NORMAL );

break;

}

}void drawDate()

// shows numerical date

{

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

switch(dayOfMonth)

{

case 1:

dmd.drawString( 20,0, “01”, 2, GRAPHICS_NORMAL );

break;

case 2:

dmd.drawString( 20,0, “02”, 2, GRAPHICS_NORMAL );

break;

case 3:

dmd.drawString( 20,0, “03”, 2, GRAPHICS_NORMAL );

break;

case 4:

dmd.drawString( 20,0, “04”, 2, GRAPHICS_NORMAL );

break;

case 5:

dmd.drawString( 20,0, “05”, 2, GRAPHICS_NORMAL );

break;

case 6:

dmd.drawString( 20,0, “06”, 2, GRAPHICS_NORMAL );

break;

case 7:

dmd.drawString( 20,0, “07”, 2, GRAPHICS_NORMAL );

break;

case 8:

dmd.drawString( 20,0, “08”, 2, GRAPHICS_NORMAL );

break;

case 9:

dmd.drawString( 20,0, “09”, 2, GRAPHICS_NORMAL );

break;

case 10:

dmd.drawString( 20,0, “10”, 2, GRAPHICS_NORMAL );

break;

case 11:

dmd.drawString( 20,0, “11”, 2, GRAPHICS_NORMAL );

break;

case 12:

dmd.drawString( 20,0, “12”, 2, GRAPHICS_NORMAL );

break;

case 13:

dmd.drawString( 20,0, “13”, 2, GRAPHICS_NORMAL );

break;

case 14:

dmd.drawString( 20,0, “14”, 2, GRAPHICS_NORMAL );

break;

case 15:

dmd.drawString( 20,0, “15”, 2, GRAPHICS_NORMAL );

break;

case 16:

dmd.drawString( 20,0, “16”, 2, GRAPHICS_NORMAL );

break;

case 17:

dmd.drawString( 20,0, “17”, 2, GRAPHICS_NORMAL );

break;

case 18:

dmd.drawString( 20,0, “18”, 2, GRAPHICS_NORMAL );

break;

case 19:

dmd.drawString( 20,0, “19”, 2, GRAPHICS_NORMAL );

break;

case 20:

dmd.drawString( 20,0, “20”, 2, GRAPHICS_NORMAL );

break;

case 21:

dmd.drawString( 20,0, “21”, 2, GRAPHICS_NORMAL );

break;

case 22:

dmd.drawString( 20,0, “22”, 2, GRAPHICS_NORMAL );

break;

case 23:

dmd.drawString( 20,0, “23”, 2, GRAPHICS_NORMAL );

break;

case 24:

dmd.drawString( 20,0, “24”, 2, GRAPHICS_NORMAL );

break;

case 25:

dmd.drawString( 20,0, “25”, 2, GRAPHICS_NORMAL );

break;

case 26:

dmd.drawString( 20,0, “26”, 2, GRAPHICS_NORMAL );

break;

case 27:

dmd.drawString( 20,0, “27”, 2, GRAPHICS_NORMAL );

break;

case 28:

dmd.drawString( 20,0, “28”, 2, GRAPHICS_NORMAL );

break;

case 29:

dmd.drawString( 20,0, “29”, 2, GRAPHICS_NORMAL );

break;

case 30:

dmd.drawString( 20,0, “30”, 2, GRAPHICS_NORMAL );

break;

case 31:

dmd.drawString( 20,0, “31”, 2, GRAPHICS_NORMAL );

break;

}

}void drawHour()

// draws the hour hand

{

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

if (hour》12) //Remove this if command for 24 hour time

{

hour=hour-12; // This is a 12 hour Clock

}

switch(hour)

{

case 1:

dmd.drawString( 0,0, “01”, 2, GRAPHICS_NORMAL );

break;

case 2:

dmd.drawString( 0,0, “02”, 2, GRAPHICS_NORMAL );

break;

case 3:

dmd.drawString( 0,0, “03”, 2, GRAPHICS_NORMAL );

break;

case 4:

dmd.drawString( 0,0, “04”, 2, GRAPHICS_NORMAL );

break;

case 5:

dmd.drawString( 0,0, “05”, 2, GRAPHICS_NORMAL );

break;

case 6:

dmd.drawString( 0,0, “06”, 2, GRAPHICS_NORMAL );

break;

case 7:

dmd.drawString( 0,0, “07”, 2, GRAPHICS_NORMAL );

break;

case 8:

dmd.drawString( 0,0, “08”, 2, GRAPHICS_NORMAL );

break;

case 9:

dmd.drawString( 0,0, “09”, 2, GRAPHICS_NORMAL );

break;

case 10:

dmd.drawString( 0,0, “10”, 2, GRAPHICS_NORMAL );

break;

case 11:

dmd.drawString( 0,0, “11”, 2, GRAPHICS_NORMAL );

break;

case 12:

dmd.drawString( 0,0, “12”, 2, GRAPHICS_NORMAL );

break;

case 13:

dmd.drawString( 0,0, “13”, 2, GRAPHICS_NORMAL );

break;

case 14:

dmd.drawString( 0,0, “14”, 2, GRAPHICS_NORMAL );

break;

case 15:

dmd.drawString( 0,0, “15”, 2, GRAPHICS_NORMAL );

break;

case 16:

dmd.drawString( 0,0, “16”, 2, GRAPHICS_NORMAL );

break;

case 17:

dmd.drawString( 0,0, “17”, 2, GRAPHICS_NORMAL );

break;

case 18:

dmd.drawString( 0,0, “18”, 2, GRAPHICS_NORMAL );

break;

case 19:

dmd.drawString( 0,0, “19”, 2, GRAPHICS_NORMAL );

break;

case 20:

dmd.drawString( 0,0, “20”, 2, GRAPHICS_NORMAL );

break;

case 21:

dmd.drawString( 0,0, “21”, 2, GRAPHICS_NORMAL );

break;

case 22:

dmd.drawString( 0,0, “22”, 2, GRAPHICS_NORMAL );

break;

case 23:

dmd.drawString( 0,0, “23”, 2, GRAPHICS_NORMAL );

break;

case 24:

dmd.drawString( 0,0, “24”, 2, GRAPHICS_NORMAL );

break;

}

}void drawMinute()

{

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

switch(minute)

{

case 0:

dmd.drawString( 12,0, “00”, 2, GRAPHICS_NORMAL );

break;

case 1:

dmd.drawString( 12,0, “01”, 2, GRAPHICS_NORMAL );

break;

case 2:

dmd.drawString( 12,0, “02”, 2, GRAPHICS_NORMAL );

break;

case 3:

dmd.drawString( 12,0, “03”, 2, GRAPHICS_NORMAL );

break;

case 4:

dmd.drawString( 12,0, “04”, 2, GRAPHICS_NORMAL );

break;

case 5:

dmd.drawString( 12,0, “05”, 2, GRAPHICS_NORMAL );

break;

case 6:

dmd.drawString( 12,0, “06”, 2, GRAPHICS_NORMAL );

break;

case 7:

dmd.drawString( 12,0, “07”, 2, GRAPHICS_NORMAL );

break;

case 8:

dmd.drawString( 12,0, “08”, 2, GRAPHICS_NORMAL );

break;

case 9:

dmd.drawString( 12,0, “09”, 2, GRAPHICS_NORMAL );

break;

case 10:

dmd.drawString( 12,0, “10”, 2, GRAPHICS_NORMAL );

break;

case 11:

dmd.drawString( 12,0, “11”, 2, GRAPHICS_NORMAL );

break;

case 12:

dmd.drawString( 12,0, “12”, 2, GRAPHICS_NORMAL );

break;

case 13:

dmd.drawString( 12,0, “13”, 2, GRAPHICS_NORMAL );

break;

case 14:

dmd.drawString( 12,0, “14”, 2, GRAPHICS_NORMAL );

break;

case 15:

dmd.drawString( 12,0, “15”, 2, GRAPHICS_NORMAL );

break;

case 16:

dmd.drawString( 12,0, “16”, 2, GRAPHICS_NORMAL );

break;

case 17:

dmd.drawString( 12,0, “17”, 2, GRAPHICS_NORMAL );

break;

case 18:

dmd.drawString( 12,0, “18”, 2, GRAPHICS_NORMAL );

break;

case 19:

dmd.drawString( 12,0, “19”, 2, GRAPHICS_NORMAL );

break;

case 20:

dmd.drawString( 12,0, “20”, 2, GRAPHICS_NORMAL );

break;

case 21:

dmd.drawString( 12,0, “21”, 2, GRAPHICS_NORMAL );

break;

case 22:

dmd.drawString( 12,0, “22”, 2, GRAPHICS_NORMAL );

break;

case 23:

dmd.drawString( 12,0, “23”, 2, GRAPHICS_NORMAL );

break;

case 24:

dmd.drawString( 12,0, “24”, 2, GRAPHICS_NORMAL );

break;

case 25:

dmd.drawString( 12,0, “25”, 2, GRAPHICS_NORMAL );

break;

case 26:

dmd.drawString( 12,0, “26”, 2, GRAPHICS_NORMAL );

break;

case 27:

dmd.drawString( 12,0, “27”, 2, GRAPHICS_NORMAL );

break;

case 28:

dmd.drawString( 12,0, “28”, 2, GRAPHICS_NORMAL );

break;

case 29:

dmd.drawString( 12,0, “29”, 2, GRAPHICS_NORMAL );

break;

case 30:

dmd.drawString( 12,0, “30”, 2, GRAPHICS_NORMAL );

break;

case 31:

dmd.drawString( 12,0, “31”, 2, GRAPHICS_NORMAL );

break;

case 32:

dmd.drawString( 12,0, “32”, 2, GRAPHICS_NORMAL );

break;

case 33:

dmd.drawString( 12,0, “33”, 2, GRAPHICS_NORMAL );

break;

case 34:

dmd.drawString( 12,0, “34”, 2, GRAPHICS_NORMAL );

break;

case 35:

dmd.drawString( 12,0, “35”, 2, GRAPHICS_NORMAL );

break;

case 36:

dmd.drawString( 12,0, “36”, 2, GRAPHICS_NORMAL );

break;

case 37:

dmd.drawString( 12,0, “37”, 2, GRAPHICS_NORMAL );

break;

case 38:

dmd.drawString( 12,0, “38”, 2, GRAPHICS_NORMAL );

break;

case 39:

dmd.drawString( 12,0, “39”, 2, GRAPHICS_NORMAL );

break;

case 40:

dmd.drawString( 12,0, “40”, 2, GRAPHICS_NORMAL );

break;

case 41:

dmd.drawString( 12,0, “41”, 2, GRAPHICS_NORMAL );

break;

case 42:

dmd.drawString( 12,0, “42”, 2, GRAPHICS_NORMAL );

break;

case 43:

dmd.drawString( 12,0, “43”, 2, GRAPHICS_NORMAL );

break;

case 44:

dmd.drawString( 12,0, “44”, 2, GRAPHICS_NORMAL );

break;

case 45:

dmd.drawString( 12,0, “45”, 2, GRAPHICS_NORMAL );

break;

case 46:

dmd.drawString( 12,0, “46”, 2, GRAPHICS_NORMAL );

break;

case 47:

dmd.drawString( 12,0, “47”, 2, GRAPHICS_NORMAL );

break;

case 48:

dmd.drawString( 12,0, “48”, 2, GRAPHICS_NORMAL );

break;

case 49:

dmd.drawString( 12,0, “49”, 2, GRAPHICS_NORMAL );

break;

case 50:

dmd.drawString( 12,0, “50”, 2, GRAPHICS_NORMAL );

break;

case 51:

dmd.drawString( 12,0, “51”, 2, GRAPHICS_NORMAL );

break;

case 52:

dmd.drawString( 12,0, “52”, 2, GRAPHICS_NORMAL );

break;

case 53:

dmd.drawString( 12,0, “53”, 2, GRAPHICS_NORMAL );

break;

case 54:

dmd.drawString( 12,0, “54”, 2, GRAPHICS_NORMAL );

break;

case 55:

dmd.drawString( 12,0, “55”, 2, GRAPHICS_NORMAL );

break;

case 56:

dmd.drawString( 12,0, “56”, 2, GRAPHICS_NORMAL );

break;

case 57:

dmd.drawString( 12,0, “57”, 2, GRAPHICS_NORMAL );

break;

case 58:

dmd.drawString( 12,0, “58”, 2, GRAPHICS_NORMAL );

break;

case 59:

dmd.drawString( 12,0, “59”, 2, GRAPHICS_NORMAL );

break;

}

}void drawSec()

{

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

switch(second)

{

case 0:

dmd.drawString( 24,0, “00”, 2, GRAPHICS_NORMAL );

break;

case 1:

dmd.drawString( 24,0, “01”, 2, GRAPHICS_NORMAL );

break;

case 2:

dmd.drawString( 24,0, “02”, 2, GRAPHICS_NORMAL );

break;

case 3:

dmd.drawString( 24,0, “03”, 2, GRAPHICS_NORMAL );

break;

case 4:

dmd.drawString( 24,0, “04”, 2, GRAPHICS_NORMAL );

break;

case 5:

dmd.drawString( 24,0, “05”, 2, GRAPHICS_NORMAL );

break;

case 6:

dmd.drawString( 24,0, “06”, 2, GRAPHICS_NORMAL );

break;

case 7:

dmd.drawString( 24,0, “07”, 2, GRAPHICS_NORMAL );

break;

case 8:

dmd.drawString( 24,0, “08”, 2, GRAPHICS_NORMAL );

break;

case 9:

dmd.drawString( 24,0, “09”, 2, GRAPHICS_NORMAL );

break;

case 10:

dmd.drawString( 24,0, “10”, 2, GRAPHICS_NORMAL );

break;

case 11:

dmd.drawString( 24,0, “11”, 2, GRAPHICS_NORMAL );

break;

case 12:

dmd.drawString( 24,0, “12”, 2, GRAPHICS_NORMAL );

break;

case 13:

dmd.drawString( 24,0, “13”, 2, GRAPHICS_NORMAL );

break;

case 14:

dmd.drawString( 24,0, “14”, 2, GRAPHICS_NORMAL );

break;

case 15:

dmd.drawString( 24,0, “15”, 2, GRAPHICS_NORMAL );

break;

case 16:

dmd.drawString( 24,0, “16”, 2, GRAPHICS_NORMAL );

break;

case 17:

dmd.drawString( 24,0, “17”, 2, GRAPHICS_NORMAL );

break;

case 18:

dmd.drawString( 24,0, “18”, 2, GRAPHICS_NORMAL );

break;

case 19:

dmd.drawString( 24,0, “19”, 2, GRAPHICS_NORMAL );

break;

case 20:

dmd.drawString( 24,0, “20”, 2, GRAPHICS_NORMAL );

break;

case 21:

dmd.drawString( 24,0, “21”, 2, GRAPHICS_NORMAL );

break;

case 22:

dmd.drawString( 24,0, “22”, 2, GRAPHICS_NORMAL );

break;

case 23:

dmd.drawString( 24,0, “23”, 2, GRAPHICS_NORMAL );

break;

case 24:

dmd.drawString( 24,0, “24”, 2, GRAPHICS_NORMAL );

break;

case 25:

dmd.drawString( 24,0, “25”, 2, GRAPHICS_NORMAL );

break;

case 26:

dmd.drawString( 24,0, “26”, 2, GRAPHICS_NORMAL );

break;

case 27:

dmd.drawString( 24,0, “27”, 2, GRAPHICS_NORMAL );

break;

case 28:

dmd.drawString( 24,0, “28”, 2, GRAPHICS_NORMAL );

break;

case 29:

dmd.drawString( 24,0, “29”, 2, GRAPHICS_NORMAL );

break;

case 30:

dmd.drawString( 24,0, “30”, 2, GRAPHICS_NORMAL );

break;

case 31:

dmd.drawString( 24,0, “31”, 2, GRAPHICS_NORMAL );

break;

case 32:

dmd.drawString( 24,0, “32”, 2, GRAPHICS_NORMAL );

break;

case 33:

dmd.drawString( 24,0, “33”, 2, GRAPHICS_NORMAL );

break;

case 34:

dmd.drawString( 24,0, “34”, 2, GRAPHICS_NORMAL );

break;

case 35:

dmd.drawString( 24,0, “35”, 2, GRAPHICS_NORMAL );

break;

case 36:

dmd.drawString( 24,0, “36”, 2, GRAPHICS_NORMAL );

break;

case 37:

dmd.drawString( 24,0, “37”, 2, GRAPHICS_NORMAL );

break;

case 38:

dmd.drawString( 24,0, “38”, 2, GRAPHICS_NORMAL );

break;

case 39:

dmd.drawString( 24,0, “39”, 2, GRAPHICS_NORMAL );

break;

case 40:

dmd.drawString( 24,0, “40”, 2, GRAPHICS_NORMAL );

break;

case 41:

dmd.drawString( 24,0, “41”, 2, GRAPHICS_NORMAL );

break;

case 42:

dmd.drawString( 24,0, “42”, 2, GRAPHICS_NORMAL );

break;

case 43:

dmd.drawString( 24,0, “43”, 2, GRAPHICS_NORMAL );

break;

case 44:

dmd.drawString( 24,0, “44”, 2, GRAPHICS_NORMAL );

break;

case 45:

dmd.drawString( 24,0, “45”, 2, GRAPHICS_NORMAL );

break;

case 46:

dmd.drawString( 24,0, “46”, 2, GRAPHICS_NORMAL );

break;

case 47:

dmd.drawString( 24,0, “47”, 2, GRAPHICS_NORMAL );

break;

case 48:

dmd.drawString( 24,0, “48”, 2, GRAPHICS_NORMAL );

break;

case 49:

dmd.drawString( 24,0, “49”, 2, GRAPHICS_NORMAL );

break;

case 50:

dmd.drawString( 24,0, “50”, 2, GRAPHICS_NORMAL );

break;

case 51:

dmd.drawString( 24,0, “51”, 2, GRAPHICS_NORMAL );

break;

case 52:

dmd.drawString( 24,0, “52”, 2, GRAPHICS_NORMAL );

break;

case 53:

dmd.drawString( 24,0, “53”, 2, GRAPHICS_NORMAL );

break;

case 54:

dmd.drawString( 24,0, “54”, 2, GRAPHICS_NORMAL );

break;

case 55:

dmd.drawString( 24,0, “55”, 2, GRAPHICS_NORMAL );

break;

case 56:

dmd.drawString( 24,0, “56”, 2, GRAPHICS_NORMAL );

break;

case 57:

dmd.drawString( 24,0, “57”, 2, GRAPHICS_NORMAL );

break;

case 58:

dmd.drawString( 24,0, “58”, 2, GRAPHICS_NORMAL );

break;

case 59:

dmd.drawString( 24,0, “59”, 2, GRAPHICS_NORMAL );

break;

}

}void drawCol1()

{

dmd.drawString( 8,0, “:”, 1, GRAPHICS_NORMAL );

}void drawCol2()

{

dmd.drawString( 20,0, “:”, 1, GRAPHICS_NORMAL );

}void runClock()

{

// drawDay();

// drawDate();

drawHour();

drawCol1();

drawMinute();

drawCol2();

drawSec();

// CheckAlarm();}/*void AlarmSequence() {

drawDay();

drawDate();

drawHour();

drawCol();

drawMinute();

digitalWrite(Alarm, HIGH);

delay(1000);

dmd.clearScreen( true );

digitalWrite(Alarm, LOW);

delay(1000);

}

*/

/*void CheckAlarm() {

AlarmSet = digitalRead(AlarmSetPin);

Snooze = digitalRead(SnoozePin);

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);*/

/* Only Trigger Alarm If it is a day listed below. This can be changed by changing the numbers to any of the following:

1 = Sunday

2 = Monday

3 = Tuesday

4 = Wednesday

5 = Thursday

6 = Friday

7 = Saturday

*/

/* if(dayOfWeek == 2 || dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5 ||dayOfWeek == 6) { //This is days ALLOWED to ring alarm

if(hour == 18 && minute == 05 ) { //Set Time Here (In 24 hour Time)

if(AlarmSet == LOW) { //If alarm pin is on

Snooze = digitalRead(SnoozePin);

while(Snooze == HIGH)

{

Snooze = digitalRead(SnoozePin);

AlarmSequence();

}

}

}

}

}

*/

void loop()

{

runClock();

}

第4步:功能

DMD

32 x 16個高亮度紅色LED(總共512個LED),間距為10mm

支持5V操作

可以在12米遠(yuǎn)的地方看到

堅固的塑料框架

板載控制器IC

Arduino兼容庫,圖形功能

RTC

計算秒,分鐘,小時和年份

Accura cy:0oC至+40oC時為+ 2ppm至-2ppm,-40oC至+85oC時為+ 3.5ppm至-3.5ppm

數(shù)字溫度傳感器,精度為±3oC

兩次日警報

編程方波輸出

寄存器老化調(diào)整400Khz I2C接口

低功耗

自動斷電電池開關(guān)電路

CR2032備用電池,使用壽命為兩到三年

步驟5:該項目的工作:簡單時鐘

第6步:該項目的工作:按設(shè)置進行計時

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 時鐘
    +關(guān)注

    關(guān)注

    11

    文章

    2000

    瀏覽量

    135288
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6527

    瀏覽量

    197518
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    MAX31342:低功耗實時時鐘的理想之選

    MAX31342:低功耗實時時鐘的理想之選 在電子設(shè)備的設(shè)計中,實時時鐘(RTC)是一個至關(guān)重要的組件,它為設(shè)備提供精確的時間信息,確保系統(tǒng)的正常運行。今天,我們要介紹的是 Maxim 公司
    的頭像 發(fā)表于 03-26 16:25 ?177次閱讀

    深度剖析DS17285/DS17287等實時時鐘芯片:功能、特性與應(yīng)用

    深度剖析DS17285/DS17287等實時時鐘芯片:功能、特性與應(yīng)用 在電子設(shè)計領(lǐng)域,實時時鐘(RTC)芯片是確保系統(tǒng)時間準(zhǔn)確性和穩(wěn)定性的關(guān)鍵組件。今天我們將深入探討Maxim
    的頭像 發(fā)表于 03-24 17:15 ?388次閱讀

    DS3234:高精度SPI總線實時時鐘的卓越之選

    DS3234:高精度SPI總線實時時鐘的卓越之選 在電子設(shè)備中,實時時鐘(RTC)是確保設(shè)備準(zhǔn)確計時的關(guān)鍵組件。DS3234作為一款低功耗、高精度的SPI總線實時時鐘,集成了溫度補償晶體振蕩器
    的頭像 發(fā)表于 03-24 16:00 ?237次閱讀

    深入剖析DS2417:實時時鐘芯片的技術(shù)奧秘

    深入剖析DS2417:實時時鐘芯片的技術(shù)奧秘 在電子設(shè)備的設(shè)計中,實時時鐘(RTC)芯片扮演著至關(guān)重要的角色,它能為設(shè)備提供精確的時間信息。DS2417就是這樣一款功能強大的實時時鐘芯片,下面將為
    的頭像 發(fā)表于 03-24 15:40 ?234次閱讀

    深入剖析DS1347:低功耗SPI實時時鐘的卓越之選

    深入剖析DS1347:低功耗SPI實時時鐘的卓越之選 在電子設(shè)備的設(shè)計中,實時時鐘(RTC)是一個至關(guān)重要的組件,它能夠為系統(tǒng)提供精確的時間信息。今天,我們將深入探討Maxim Integrated
    的頭像 發(fā)表于 03-24 10:00 ?179次閱讀

    RTC實時時鐘芯片的作用

    在物聯(lián)網(wǎng)、工業(yè)控制、車載、醫(yī)療與消費電子中,精確、連續(xù)、掉電不丟失的真實時間是系統(tǒng)運行的基礎(chǔ)。RTC(Real-TimeClock)實時時鐘芯片是一種獨立專用計時芯片,負(fù)責(zé)提供穩(wěn)定日歷時鐘、斷電續(xù)航、定時中斷與高精度時間戳。
    的頭像 發(fā)表于 03-20 15:36 ?969次閱讀
    RTC<b class='flag-5'>實時時鐘</b>芯片的作用

    實時時鐘(RTC)

    在電子設(shè)備的精密世界里,實時時鐘(RTC)如同一位永不疲倦的守夜人,默默維持著系統(tǒng)的時間秩序。無論主電源中斷還是設(shè)備進入低功耗休眠,RTC都能依靠備用電源(如鋰電池或超級電容)持續(xù)運行,確保時間信息
    的頭像 發(fā)表于 03-12 08:21 ?255次閱讀
    <b class='flag-5'>實時時鐘</b>(RTC)

    RTC實時時鐘芯片和時鐘晶振在本質(zhì)、功能和角色完全不同

    RTC實時時鐘芯片(Real-Time Clock)和時鐘晶振(Crystal Oscillator)在電子系統(tǒng)中協(xié)同工作,但本質(zhì)、功能和角色完全不同。
    的頭像 發(fā)表于 03-11 17:13 ?689次閱讀
    RTC<b class='flag-5'>實時時鐘</b>芯片和<b class='flag-5'>時鐘</b>晶振在本質(zhì)、功能和角色完全不同

    深入解析bq32000實時時鐘:特性、應(yīng)用與設(shè)計要點

    深入解析bq32000實時時鐘:特性、應(yīng)用與設(shè)計要點 在電子設(shè)備的設(shè)計中,實時時鐘(RTC)是一個關(guān)鍵組件,它為系統(tǒng)提供精確的時間和日期信息。TI的bq32000實時時鐘以其豐富的特性和可靠的性能
    的頭像 發(fā)表于 02-09 11:25 ?432次閱讀

    BQ32002實時時鐘芯片:特性、應(yīng)用與設(shè)計要點

    BQ32002實時時鐘芯片:特性、應(yīng)用與設(shè)計要點 引言 在電子設(shè)備的設(shè)計中,實時時鐘(RTC)起著至關(guān)重要的作用,它能夠為系統(tǒng)提供精確的時間和日期信息。BQ32002作為一款性能出色的實時時鐘芯片
    的頭像 發(fā)表于 02-09 11:10 ?299次閱讀

    EPSON RX-4571LC實時時鐘模塊,滿足緊湊型設(shè)備的精準(zhǔn)計時

    如今可穿戴產(chǎn)品越來越普及功能不斷增加,對設(shè)備緊湊度的要求越來越高,傳統(tǒng)的分立式實時時鐘電路已經(jīng)難以滿足主流設(shè)計需要,高效、小巧的RTC實時時鐘模塊應(yīng)運而生。愛普生/EPSON是一家為應(yīng)用客戶提供時鐘
    的頭像 發(fā)表于 01-29 16:46 ?396次閱讀
    EPSON RX-4571LC<b class='flag-5'>實時時鐘</b>模塊,滿足緊湊型設(shè)備的精準(zhǔn)計時

    愛普生RTC實時時鐘模塊解析與選型指南

    32.768kHz晶振廣泛應(yīng)用于各類時鐘電路中,雖然價格較低的音叉晶振用得多,但如果對穩(wěn)定性要求更高、在一些更精密的電子設(shè)備中往往就得需要更精準(zhǔn)的32.768kHz有源晶振或者實時時鐘模塊(RTC
    的頭像 發(fā)表于 01-05 16:40 ?1079次閱讀
    愛普生RTC<b class='flag-5'>實時時鐘</b>模塊解析與選型指南

    芯伯樂PCF8563:0.25μA低功耗實時時鐘解決方案

    在各類需要精準(zhǔn)計時、日歷功能的嵌入式系統(tǒng)中,實時時鐘芯片(RTC)是不可或缺的核心元件。芯伯樂PCF8563作為一款基于IIC接口的超低功耗實時時鐘/日歷芯片,以其高精度、小封裝、強抗干擾能力
    的頭像 發(fā)表于 11-28 18:34 ?746次閱讀
    芯伯樂PCF8563:0.25μA低功耗<b class='flag-5'>實時時鐘</b>解決方案

    實時時鐘芯片與晶振的不同之處

    實時時鐘芯片和晶振在電子設(shè)備中都扮演著提供時鐘信號的重要角色,但它們的本質(zhì)、功能和復(fù)雜程度卻大相徑庭。簡單來說,晶振是產(chǎn)生穩(wěn)定頻率的“心臟”,而實時時鐘芯片則是管理和分配這些“心跳”的“大腦”。
    的頭像 發(fā)表于 07-24 17:04 ?1912次閱讀
    <b class='flag-5'>實時時鐘</b>芯片與晶振的不同之處

    內(nèi)置晶振、小封裝的實時時鐘IC-SD

    鴻合智遠(yuǎn)|興威帆電子:內(nèi)置晶振、小封裝的實時時鐘IC-SD
    的頭像 發(fā)表于 05-28 10:01 ?1151次閱讀
    內(nèi)置晶振、小封裝的<b class='flag-5'>實時時鐘</b>IC-SD
    绥德县| 梓潼县| 大邑县| 江阴市| 商都县| 富源县| 惠来县| 彭山县| 景德镇市| 四子王旗| 商洛市| 古田县| 莲花县| 松原市| 娄底市| 天门市| 蓬安县| 历史| 抚宁县| 柳州市| 揭西县| 视频| 台东县| 精河县| 双江| 武威市| 平乡县| 阿合奇县| 苍梧县| 沂南县| 邢台市| 时尚| 正定县| 夹江县| 台安县| 永顺县| 红原县| 黑水县| 仁寿县| 余干县| 齐齐哈尔市|