欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

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

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

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

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

pYYBAGJVMl-AWDXDAAL481dF0xM081.png

定時器主要功能概述

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

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

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

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

如果想重新設(shè)置時間,請?jiān)俅伟聪隆癝ELECT”按鈕。

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

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

定時器所需的組件

poYBAGJVMmSAWTFYAAYiYBAQkK4517.png

Arduino

LCD1602鍵盤模塊

蜂鳴器

定時器的線路圖

poYBAGJVMmqADZxHAAGgiZZ6vTs070.png

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

制作Arduino定時器的代碼

adc_key_in = analogRead(0); // 從液晶鍵盤上讀取按鈕的值
// 檢查按下的是哪個按鈕
if (adc_key_in > 1000) return btnNONE; // 把它作為速度的第一個選項(xiàng)因?yàn)樗亲钣锌赡艿慕Y(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; // 當(dāng)所有讀取都失敗時,返回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按鈕,移動光標(biāo)到分鐘位置
case btnRIGHT:
{
cursor_pos = set_mins;
break;
}
// 如果按下left按鈕,移動光標(biāo)到小時位置
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(); // 獲取當(dāng)前時間

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

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

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

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

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187905
收藏 人收藏

    評論

    相關(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è)定的時間控制電路工作及對些電器進(jìn)行電力調(diào)節(jié),制作了這款實(shí)用多功能定時器。
    的頭像 發(fā)表于 07-20 15:32 ?2.1w次閱讀
    多功能<b class='flag-5'>定時器</b>電路<b class='flag-5'>制作</b>

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

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

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

    電子發(fā)燒友網(wǎng)站提供《基于Arduino定時器控制器的繼電器.zip》資料免費(fèi)下載
    發(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èi)下載
    發(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的洗衣機(jī)定時器

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

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

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

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

    在本文中,我們將學(xué)習(xí)如何制作簡單的 2 步 Arduino 可編程定時器電路,該電路可用于通過獨(dú)立可調(diào)的 ON 和 OFF 時序來切換
    的頭像 發(fā)表于 03-19 10:06 ?4720次閱讀
    如何<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可編程定時器電路

    在本文中,我們將學(xué)習(xí)如何制作簡單的2 步 Arduino 可編程定時器電路,該電路可用于通過獨(dú)立可調(diào)的 ON 和 OFF 時序來切換電氣
    的頭像 發(fā)表于 05-24 17:04 ?2517次閱讀
    如何<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ù)廚房定時器都是機(jī)械定時器,容易磨損。然而,上述數(shù)字廚房定時器電路比機(jī)械定時
    發(fā)表于 06-18 11:05 ?1679次閱讀
    分享<b class='flag-5'>一</b><b class='flag-5'>個</b>廚房<b class='flag-5'>定時器</b>電路

    Arduino洗手定時器

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

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

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

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

    在Linux,uC/OS,F(xiàn)reeRTOS等操作系統(tǒng)中,都帶有軟件定時器,原理大同小異。典型的實(shí)現(xiàn)方法是:通過硬件定時器產(chǎn)生固定的時鐘節(jié)拍,每次硬件
    的頭像 發(fā)表于 04-29 11:00 ?759次閱讀