在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

制作一個基于Arduino控制的定時器

科技觀察員 ? 來源:八色木 ? 作者:八色木 ? 2022-04-12 16:04 ? 次閱讀

制作一個由Arduino控制的定時器,并學習Arduino和LCD1602液晶顯示器以及鍵盤模塊的連接。

在這篇文章中,我們將學習如何創(chuàng)建一個由用戶控制的定時器。這個項目將幫助你管理時間,實現(xiàn)及時提醒。你可以方便地設(shè)定一個時間限制,然后離開,直到你聽到定時器發(fā)出“嗶嗶”聲后及時安排下一項工作。在這個項目中我們將使用一個Arduino液晶鍵盤模塊,你將從連接小蜂鳴器開始,直到讓設(shè)備啟動起來,并通過按鈕接口和LCD接口實現(xiàn)輸入和輸出功能。

pYYBAGJVMl-AWDXDAAL481dF0xM081.png

定時器主要功能概述

在啟動電源之后,定時器將顯示一個“Arduino-Timer”的信息,并持續(xù)3秒。

計時器將提示設(shè)置時間。你可以通過按下左右鍵來將光標移動到要修改的位置,如分鐘和小時。

通過上下箭頭鍵調(diào)整分鐘和小時的設(shè)置。

一旦設(shè)置了所需的時間,按下“SELECT”按鈕,計時器就會啟動。

如果想重新設(shè)置時間,請再次按下“SELECT”按鈕。

到達設(shè)定的時間后,蜂鳴器就會發(fā)出嗶嗶聲。

需要關(guān)閉蜂鳴器聲音,在聽到嗶嗶聲后按下鍵盤上的“RST”鍵。

定時器所需的組件

poYBAGJVMmSAWTFYAAYiYBAQkK4517.png

Arduino

LCD1602鍵盤模塊

蜂鳴器

定時器的線路圖

poYBAGJVMmqADZxHAAGgiZZ6vTs070.png

首先,將液晶鍵盤模塊直接插到在Arduino上。然后將蜂鳴器的正極連接到Arduino上的12號引腳上,并將蜂鳴的負極連接到GND上。

制作Arduino定時器的代碼

adc_key_in = analogRead(0); // 從液晶鍵盤上讀取按鈕的值
// 檢查按下的是哪個按鈕
if (adc_key_in > 1000) return btnNONE; // 把它作為速度的第一個選項因為它是最有可能的結(jié)果
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;

return btnNONE; // 當所有讀取都失敗時,返回btnNONE
}

void setup()
{
Serial.begin(115200);
pinMode(buzzer_pin, OUTPUT);

lcd.begin(16, 2); // 啟動與LCD鍵盤的通信
lcd.setCursor(0,0);
lcd.print("Arduino-");
lcd.setCursor(0, 1);
lcd.print(" Timer");
delay(3000);
}

void loop(){
// 根據(jù)按下的按鈕檢查哪個條件是正確的
if(startTimer == true){
start_timer();
}
else if (setTimer == true){
set_timer();
}
}

// 這個函數(shù)將計算時間
void start_timer(){
// 檢查時間是否正常
if(hrs == 0 && mins == 0 && secs == 0){
lcd.setCursor(0, 0);
lcd.print(" Time is UP");
lcd.setCursor(0, 1);
lcd.print(" Beep Beep");
digitalWrite(buzzer_pin, HIGH);
delay(500);
digitalWrite(buzzer_pin, LOW);
delay(500);
}

else if(secs < 0){
secs = 59;
mins = mins - 1;
}

else if(mins < 0){
mins = 59;
hrs = hrs - 1;
}

else
{
get_time = true;
counter();

lcd.setCursor(0, 0);
lcd.print("Timer is ON");

lcd.setCursor(0, 1);
lcd.print(hrs);
lcd.print(":");

lcd.setCursor(4, 1);
lcd.print(mins);
lcd.print(":");

lcd.setCursor(8, 1);
lcd.print(secs);
}

lcd_key = read_LCD_buttons(); // 讀取按鈕值

switch (lcd_key) // 根據(jù)哪個按鈕被按下來執(zhí)行一個操作
{
// 如果按下select按鈕,則返回設(shè)置時間
case btnSELECT:
{
startTimer = false;
setTimer = true;
delay(300);
lcd.clear();
break;
}
case btnNONE:
{
break;
}
}
}

// 這個函數(shù)將設(shè)置時間
void set_timer(){
counter();
lcd.setCursor(0, 0);
lcd.print("Set Time");

lcd.setCursor(0, 1);
lcd.print("Hrs:");
lcd.print(hrs);

lcd.setCursor(8, 1);
lcd.print("Mins:");
lcd.print(mins);

lcd.setCursor(0,1);
lcd_key = read_LCD_buttons(); // 讀取按鈕值

switch (lcd_key) // 根據(jù)哪個按鈕被按下來執(zhí)行一個操作
{
// 如果按下RIGHT按鈕,移動光標到分鐘位置
case btnRIGHT:
{
cursor_pos = set_mins;
break;
}
// 如果按下left按鈕,移動光標到小時位置
case btnLEFT:
{
cursor_pos = set_hrs;
break;
}
// 如果up被按下, 分鐘或小時加1
case btnUP:
{
delay(300);
if(cursor_pos == set_mins){
mins++;
if(mins > 59){
mins = 0;
}
}
else if(cursor_pos == set_hrs){
hrs++;
if(hrs > 24){
hrs = 0;
}
}
break;
}
// 如果Down被按下, 分鐘或小時減1
case btnDOWN:
{
delay(300);
if(cursor_pos == set_mins){
mins--;
if(mins < 0){
mins = 60;
}
}
else if(cursor_pos == set_hrs){
hrs--;
if(hrs < 0){
hrs = 24;
}
}
break;
}
// 如果按下SELECT按鈕,啟動定時器
case btnSELECT:
{
startTimer = true;
setTimer = false;
mins = mins - 1;
delay(300);
break;
}
case btnNONE:
{
break;
}
}
}

void counter() {
unsigned long currentMillis = millis(); // 獲取當前時間

// 檢查“interval”時間是否已超過(1000毫秒)
if ((unsigned long)(currentMillis - previousMillis) >= interval) {

lcd.clear();
if(get_time == true){
secs--;
get_time = false;
}
previousMillis = millis();
}
}

至此一款基于Arduino的定時器就制作完成了,余下的工作你可以根據(jù)喜好對它進行美化或者開發(fā)更有趣的應(yīng)用。

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

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187819
收藏 人收藏

    評論

    相關(guān)推薦

    簡易定時器電路及制作

    簡易定時器電路及制作
    發(fā)表于 04-14 11:38 ?737次下載
    簡易<b class='flag-5'>定時器</b>電路及<b class='flag-5'>制作</b>

    高精度定時器電路及制作

    高精度定時器電路及制作
    發(fā)表于 04-14 11:39 ?14次下載
    高精度<b class='flag-5'>定時器</b>電路及<b class='flag-5'>制作</b>

    可調(diào)定時器電路及制作

    可調(diào)定時器電路及制作
    發(fā)表于 04-14 11:44 ?10次下載
    可調(diào)<b class='flag-5'>定時器</b>電路及<b class='flag-5'>制作</b>

    多功能定時器電路制作

    為了根據(jù)人們預(yù)先設(shè)定的時間控制電路工作及對些電器進行電力調(diào)節(jié),制作了這款實用多功能定時器
    的頭像 發(fā)表于 07-20 15:32 ?2.1w次閱讀
    多功能<b class='flag-5'>定時器</b>電路<b class='flag-5'>制作</b>

    Arduino開發(fā)板定時器定時中斷的詳細資料免費下載

    arduino定時器包含定時器/計數(shù)0,定時器/計數(shù)1,
    發(fā)表于 11-19 08:00 ?29次下載

    基于Arduino定時器控制器的繼電器

    電子發(fā)燒友網(wǎng)站提供《基于Arduino定時器控制器的繼電器.zip》資料免費下載
    發(fā)表于 07-11 15:20 ?3次下載
    基于<b class='flag-5'>Arduino</b><b class='flag-5'>定時器</b><b class='flag-5'>控制器</b>的繼電器

    使用555定時器制作些樂器

    電子發(fā)燒友網(wǎng)站提供《使用555定時器制作些樂器.zip》資料免費下載
    發(fā)表于 11-16 09:56 ?1次下載
    使用555<b class='flag-5'>定時器</b>來<b class='flag-5'>制作</b><b class='flag-5'>一</b>些樂器

    基于Arduino Pro Mini 328的洗衣機定時器

    這是我的洗衣機的更換部件,它的洗滌定時器壞了。原來的定時器機械定時器/方向開關(guān),它可以通過以下方式
    發(fā)表于 12-07 14:14 ?2次下載

    Arduino的內(nèi)部定時器

    電子發(fā)燒友網(wǎng)站提供《Arduino的內(nèi)部定時器.zip》資料免費下載
    發(fā)表于 02-09 11:03 ?0次下載
    <b class='flag-5'>Arduino</b>的內(nèi)部<b class='flag-5'>定時器</b>

    如何制作簡單的2步Arduino可編程定時器電路

    在本文中,我們將學習如何制作簡單的 2 步 Arduino 可編程定時器電路,該電路可用于通過獨立可調(diào)的 ON 和 OFF 時序來切換
    的頭像 發(fā)表于 03-19 10:06 ?4711次閱讀
    如何<b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的2步<b class='flag-5'>Arduino</b>可編程<b class='flag-5'>定時器</b>電路

    如何制作簡單的2步Arduino可編程定時器電路

    在本文中,我們將學習如何制作簡單的2 步 Arduino 可編程定時器電路,該電路可用于通過獨立可調(diào)的 ON 和 OFF 時序來切換電氣
    的頭像 發(fā)表于 05-24 17:04 ?2505次閱讀
    如何<b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的2步<b class='flag-5'>Arduino</b>可編程<b class='flag-5'>定時器</b>電路

    分享廚房定時器電路

    廚房計時是我們在廚房中使用的小工具,以幫助我們烹飪食物。我們使用的大多數(shù)廚房定時器都是機械定時器,容易磨損。然而,上述數(shù)字廚房定時器電路比機械定時
    發(fā)表于 06-18 11:05 ?1658次閱讀
    分享<b class='flag-5'>一</b><b class='flag-5'>個</b>廚房<b class='flag-5'>定時器</b>電路

    Arduino洗手定時器

    電子發(fā)燒友網(wǎng)站提供《Arduino洗手定時器.zip》資料免費下載
    發(fā)表于 06-29 10:48 ?0次下載
    <b class='flag-5'>Arduino</b>洗手<b class='flag-5'>定時器</b>

    stm32定時器能同時控制燈以不同頻率閃爍嗎?

    STM32的定時器功能強大,**STM32的定時器可以同時控制燈以不同頻率閃爍** 。
    的頭像 發(fā)表于 12-13 10:43 ?2361次閱讀

    如何實現(xiàn)軟件定時器

    在Linux,uC/OS,F(xiàn)reeRTOS等操作系統(tǒng)中,都帶有軟件定時器,原理大同小異。典型的實現(xiàn)方法是:通過硬件定時器產(chǎn)生固定的時鐘節(jié)拍,每次硬件
    的頭像 發(fā)表于 04-29 11:00 ?746次閱讀
    主站蜘蛛池模板: 俺也来国产精品欧美在线观看 | 51国产| 四虎电影院 | 91大神精品全国在线观看 | 3344在线| 涩久久| 我把美女日出白浆 | 婷婷丁香六月天 | 国产在线一卡二卡 | 美女视频一区二区三区在线 | 久久这里只有精品免费播放 | 久久精品综合网 | 人人做人人爽 | 在线电影天堂 | 在线观看免费视频片 | 国产高清在线 | 午夜毛片视频 | 日本黄色网址免费 | 哪个网站可以看av | 欧美黑人性色黄在线视频 | 亚洲高清资源 | 在线种子搜索 | 色天使在线视频 | 777奇米影视一区二区三区 | 日韩欧美国产电影 | 国产精品天天看天天爽 | 作爱在线观看 | 久久久精品波多野结衣 | 亚洲人成电影在线 | 9色在线| 欧美极品在线视频 | 午夜视频免费观看黄 | 成人午夜久久 | 忘忧草爱网 | 丁香六月婷婷在线 | 不卡视频一区二区三区 | 午夜影院在线观看 | 色香视频一sxmv首页 | 激情五月社区 | 免费一级e一片在线播放 | 国产va免费精品观看 |