女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

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

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

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

pYYBAGJVMl-AWDXDAAL481dF0xM081.png

定時器主要功能概述

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

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

通過上下箭頭鍵調整分鐘和小時的設置。

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

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

到達設定的時間后,蜂鳴器就會發出嗶嗶聲。

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

定時器所需的組件

poYBAGJVMmSAWTFYAAYiYBAQkK4517.png

Arduino

LCD1602鍵盤模塊

蜂鳴器

定時器的線路圖

poYBAGJVMmqADZxHAAGgiZZ6vTs070.png

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

制作Arduino定時器的代碼

adc_key_in = analogRead(0); // 從液晶鍵盤上讀取按鈕的值
// 檢查按下的是哪個按鈕
if (adc_key_in > 1000) return btnNONE; // 把它作為速度的第一個選項因為它是最有可能的結果
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(){
// 根據按下的按鈕檢查哪個條件是正確的
if(startTimer == true){
start_timer();
}
else if (setTimer == true){
set_timer();
}
}

// 這個函數將計算時間
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) // 根據哪個按鈕被按下來執行一個操作
{
// 如果按下select按鈕,則返回設置時間
case btnSELECT:
{
startTimer = false;
setTimer = true;
delay(300);
lcd.clear();
break;
}
case btnNONE:
{
break;
}
}
}

// 這個函數將設置時間
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) // 根據哪個按鈕被按下來執行一個操作
{
// 如果按下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的定時器就制作完成了,余下的工作你可以根據喜好對它進行美化或者開發更有趣的應用。

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

    關注

    188

    文章

    6490

    瀏覽量

    190070
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    語音控制模塊怎么和定時器相連,最后通過arduino板子控制步進電機驅動。

    首先,要通過語音模塊控制定時器定時定時器時間到了之后給arduino信號,
    發表于 06-13 13:40

    簡易定時器電路及制作

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

    高精度定時器電路及制作

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

    可調定時器電路及制作

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

    多功能定時器電路制作

    為了根據人們預先設定的時間控制電路工作及對些電器進行電力調節,制作了這款實用多功能定時器
    的頭像 發表于 07-20 15:32 ?2.2w次閱讀
    多功能<b class='flag-5'>定時器</b>電路<b class='flag-5'>制作</b>

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

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

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

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

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

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

    Arduino的內部定時器

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

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

    在本文中,我們將學習如何制作簡單的 2 步 Arduino 可編程定時器電路,該電路可用于通過獨立可調的 ON 和 OFF 時序來切換
    的頭像 發表于 03-19 10:06 ?5099次閱讀
    如何<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 可編程定時器電路,該電路可用于通過獨立可調的 ON 和 OFF 時序來切換電氣
    的頭像 發表于 05-24 17:04 ?2972次閱讀
    如何<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>電路

    分享廚房定時器電路

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

    Arduino洗手定時器

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

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

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

    如何實現軟件定時器

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過硬件定時器產生固定的時鐘節拍,每次硬件
    的頭像 發表于 04-29 11:00 ?1025次閱讀