![基于Arduino的多功能數(shù)字時(shí)鐘_第1頁(yè)](http://file4.renrendoc.com/view/02b16e7e351a8f41740b32149afecb6e/02b16e7e351a8f41740b32149afecb6e1.gif)
![基于Arduino的多功能數(shù)字時(shí)鐘_第2頁(yè)](http://file4.renrendoc.com/view/02b16e7e351a8f41740b32149afecb6e/02b16e7e351a8f41740b32149afecb6e2.gif)
![基于Arduino的多功能數(shù)字時(shí)鐘_第3頁(yè)](http://file4.renrendoc.com/view/02b16e7e351a8f41740b32149afecb6e/02b16e7e351a8f41740b32149afecb6e3.gif)
![基于Arduino的多功能數(shù)字時(shí)鐘_第4頁(yè)](http://file4.renrendoc.com/view/02b16e7e351a8f41740b32149afecb6e/02b16e7e351a8f41740b32149afecb6e4.gif)
![基于Arduino的多功能數(shù)字時(shí)鐘_第5頁(yè)](http://file4.renrendoc.com/view/02b16e7e351a8f41740b32149afecb6e/02b16e7e351a8f41740b32149afecb6e5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Arduino的多功能數(shù)字時(shí)鐘實(shí)現(xiàn)功能:顯示時(shí)間、日期和星期斷電保存時(shí)間通過(guò)按鈕設(shè)置時(shí)間、日期整點(diǎn)響鈴自定義鬧鐘顯示溫度自定義報(bào)警溫度按鍵功能:按選擇鍵進(jìn)入設(shè)置時(shí)間功能;同時(shí)按+-鍵進(jìn)入鬧鐘和報(bào)警溫度設(shè)置功能;再按選擇鍵光標(biāo)跳動(dòng),光標(biāo)跳到哪當(dāng)前的參數(shù)即可通過(guò)加減鍵修改。實(shí)驗(yàn)所需器件:Arduino開(kāi)發(fā)板或Atmega328P芯片、DS1302時(shí)鐘芯片、溫度傳感器DS18b20、蜂鳴器、不帶鎖開(kāi)關(guān)、LCD1602、10K可調(diào)電阻、10K電阻(可不接,即DS18b20端口的電阻可去掉,不影響讀數(shù))ProteusISIS仿真圖:BUZIERkTEXTaWF旳陽(yáng)伽ChT忻poiyreifaMTiT
2、PO2lMTQfi:riiT16Ki3riTi*XrSf1Hri9PDWDiXCKjFaMTKro5/T1fiKDBK:Hl21旳&(OftHOCDAFCTiT22FTiTj(ArdJPCIWT23.ijJhTESH勵(lì)2015-65-175嘰用|歸0?AECHJl陽(yáng)3鵡溝i*K仙陀nnFBiMSCijFtlMTqFffi/TOECIIXTALIJ1iZITtPHrjTiSZSHTALCWT?rauAcaLUTsraK1#LHT9PC*jftKqreC1ACHTI2JCE斤.:5CLKT-IIgaVC-1VOZ2奇SCLKDSi.jfl2:Te:Ki網(wǎng)沁0或TEXT*實(shí)物圖;Arduino程序如
3、下:/*LCDRSpintodigitalpin12*LCDEnablepintodigitalpin11*LCDD4pintodigitalpin5*LCDD5pintodigitalpin4*LCDD6pintodigitalpin3*LCDD7pintodigitalpin2*LCDR/Wpintoground*LCDVSSpintoground/LCD1602顯示頭文件/溫度傳感器DS18B20頭文件/溫度傳感器DS18B20頭文件/DS18B20信號(hào)端口*LCDVCCpinto5V*/#include#include#include#include#defineONE_WIRE_BU
4、SA3OneWireoneWire(ONE_WIRE_BUS);DallasTemperaturesensors(&oneWire);LiquidCrystallcd(12,11,5,4,3,2);#definechooseA0/選擇端口#defineaddA1/加#defineminusA2/減#defineTone13/蜂鳴器端口uint8_tCE_PIN=8;/DS1302RST端口uint8_tIO_PIN=9;/DS1302DAT端口uint8_tSCLK_PIN=10;/DS1302CLK端口DS1302rtc(CE_PIN,IO_PIN,SCLK_PIN);/創(chuàng)建DS1302對(duì)象
5、unsignedlongseconds;ints=0,m=0,h=0,d=0,mon=0,y=0;/時(shí)間進(jìn)位intsecond=0,minute=0,hour=0,day=0,month=0,year=0;/當(dāng)前時(shí)間intSECOND=0,MINUTE=0,HOUR=0,DAY=0,MONTH=0,YEAR=0;/初始時(shí)間intchose=0,alarm_choose=0,ButtonDelay=10,frequence=2093;intalarm_hour=7,alarm_minute=30,alarm_second=0;/鬧鐘時(shí)間doubleTemperatures,Temp_Alarm=
6、30;voidsetup()for(inti=2;i=13;i+)pinMode(i,OUTPUT);digitalWrite(add,HIGH);digitalWrite(minus,HIGH);digitalWrite(choose,HIGH);lcd.begin(16,2);/初始化LCD1602sensors.begin();/初始化溫度傳感器DS18B20/Timet(2015,5,16,0,2,20,1);rtc.time(t);設(shè)置DS1302芯片初始時(shí)間set(rtc.year(),rtc.month(),rtc.date(),rtc.hour(),rtc.minutes(),
7、rtc.seconds();/通電讀取DS1302芯片的時(shí)間rtc.write_protect(false);/關(guān)閉DS1302芯片寫(xiě)保護(hù)rtc.halt(false);為true時(shí)DS1302暫停voidFormatDisplay(intcol,introw,intnum)/格式化輸出lcd.setCursor(col,row);if(num10)lcd.print(0);lcd.print(num);voidtime()/計(jì)算時(shí)間second=(SECOND+seconds)%60;/計(jì)算秒m=(SECOND+seconds)/60;/分鐘進(jìn)位FormatDisplay(6,1,secon
8、d);minute=(MINUTE+m)%60;/計(jì)算分鐘h=(MINUTE+m)/60;/小時(shí)進(jìn)位FormatDisplay(3,1,minute);hour=(HOUR+h)%24;/計(jì)算小時(shí)d=(HOUR+h)/24;/天數(shù)進(jìn)位FormatDisplay(0,1,hour);lcd.setCursor(2,1);lcd.print(:);lcd.setCursor(5,1);lcd.print(:);intDays(intyear,intmonth)/根據(jù)年月計(jì)算當(dāng)月天數(shù)intdays=0;if(month!=2)switch(month)case1:case3:case5:case7:
9、case8:case10:case12:days=31;break;case4:case6:case9:case11:days=30;break;else/閏年if(year%4=0&year%100!=0|year%400=0)days=29;elsedays=28;returndays;voidDay()/計(jì)算當(dāng)月天數(shù)intdays=Days(year,month);intdays_up;if(month=1)days_up=Days(year-1,12);elsedays_up=Days(year,month-1);day=(DAY+d)%days;if(day=0)day=days;i
10、f(DAY+d)=days+1)DAY-=days;mon+;if(DAY+d)=0)DAY+=days_up;mon-;FormatDisplay(8,0,day);voidMonth()/計(jì)算月份month=(MONTH+mon)%12;if(month=0)month=12;y=(MONTH+mon-1)/12;FormatDisplay(5,0,month);lcd.setCursor(7,0);lcd.print(-);voidYear()/計(jì)算年份year=(YEAR+y)%9999;if(year=0)year=9999;lcd.setCursor(0,0);if(year100
11、0)lcd.print(0);if(year100)lcd.print(0);if(year=7)chose=0;break;voidSet_Alarm_Hour()/設(shè)置鬧鐘小時(shí)DisplayCursor(1,1);if(digitalRead(add)=LOW)delay(ButtonDelay);if(digitalRead(add)=LOW)alarm_hour+;if(alarm_hour=24)alarm_hour=0;FormatDisplay(0,1,alarm_hour);if(digitalRead(minus)=LOW)delay(ButtonDelay);if(digi
12、talRead(minus)=LOW)alarm_hour-;if(alarm_hour=-1)alarm_hour=23;FormatDisplay(0,1,alarm_hour);voidSet_Alarm_Minute()/設(shè)置鬧鐘分鐘DisplayCursor(4,1);if(digitalRead(add)=LOW)delay(ButtonDelay);if(digitalRead(add)=LOW)alarm_minute+;if(alarm_minute=60)alarm_minute=0;FormatDisplay(3,1,alarm_minute);if(digitalRea
13、d(minus)=LOW)delay(ButtonDelay);if(digitalRead(minus)=LOW)alarm_minute-;if(alarm_minute=-1)alarm_minute=59;FormatDisplay(3,1,alarm_minute);voidSet_Alarm_Temp()/設(shè)置報(bào)警溫度DisplayCursor(10,1);if(digitalRead(add)=LOW)delay(ButtonDelay);if(digitalRead(add)=LOW)Temp_Alarm+;if(digitalRead(minus)=LOW)delay(But
14、tonDelay);if(digitalRead(minus)=LOW)Temp_Alarm-;voidSet_Alarm()/進(jìn)入報(bào)警設(shè)置if(digitalRead(add)=LOW&digitalRead(minus)=LOW)alarm_hour=hour;alarm_minute=minute;/alarm_choose=1;lcd.setCursor(0,0);lcd.print(setalarm);lcd.setCursor(6,1);lcd.print(00);/鬧鐘秒數(shù)while(1)if(digitalRead(choose)=LOW)delay(ButtonDelay);
15、if(digitalRead(choose)=LOW)alarm_choose+;lcd.setCursor(9,1);lcd.print(Temp_Alarm);lcd.setCursor(14,1);lcd.print(char)223);/顯示o符號(hào)lcd.setCursor(15,1);lcd.print(C);/顯示字母Cif(alarm_choose=1)Set_Alarm_Hour();if(alarm_choose=2)Set_Alarm_Minute();if(alarm_choose=3)Set_Alarm_Temp();if(alarm_choose=4)alarm_ch
16、oose=0;break;voidPoint_Time_Alarm()/正點(diǎn)蜂鳴if(minute=0&second=0)tone(Tone,frequence);delay(500);noTone(Tone);voidClock_Alarm()/鬧鐘指定時(shí)間蜂鳴if(hour=alarm_hour&minute=alarm_minute&second=alarm_second)tone(Tone,frequence);delay(5000);noTone(Tone);voidGetTemperatures()/獲取DS18B20溫度sensors.requestTemperatures();
17、/SendthecommandtogettemperaturesTemperatures=sensors.getTempCByIndex(0);lcd.setCursor(9,1);lcd.print(Temperatures);/獲取溫度lcd.setCursor(14,1);lcd.print(char)223);/顯示o符號(hào)lcd.setCursor(15,1);lcd.print(C);/顯示字母CvoidTemperatures_Alarm()/超過(guò)指定溫度報(bào)警if(Temperatures=Temp_Alarm)tone(Tone,frequence);delay(500);noTone(Tone);voidloo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)毛染行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 個(gè)人珠寶購(gòu)買(mǎi)合同范本
- 農(nóng)戶(hù)小麥預(yù)定合同范本
- 出國(guó)境旅游合同范本
- 北京市設(shè)備采購(gòu)合同范本
- 中英文商品合同范本
- 2024年安全準(zhǔn)入考試(外協(xié)搶修、施工人員)練習(xí)試題及答案
- 人力資源外包合同范本
- 2025年度高端倉(cāng)儲(chǔ)庫(kù)房承包合同示范范本
- 農(nóng)村 住房 出租合同范例
- 二零二五年度大型自動(dòng)化設(shè)備買(mǎi)賣(mài)合同模板2篇
- 2024版金礦居間合同協(xié)議書(shū)
- GA/T 2145-2024法庭科學(xué)涉火案件物證檢驗(yàn)實(shí)驗(yàn)室建設(shè)技術(shù)規(guī)范
- 2025內(nèi)蒙古匯能煤化工限公司招聘300人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年中國(guó)融通資產(chǎn)管理集團(tuán)限公司春季招聘(511人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 寵物護(hù)理行業(yè)客戶(hù)回訪(fǎng)制度構(gòu)建
- 電廠檢修管理
- 《SPIN銷(xiāo)售法課件》課件
- 機(jī)動(dòng)車(chē)屬性鑒定申請(qǐng)書(shū)
- 2024年中考語(yǔ)文試題分類(lèi)匯編:非連續(xù)性文本閱讀(學(xué)生版)
- 門(mén)店禮儀培訓(xùn)
評(píng)論
0/150
提交評(píng)論