色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何制作每5分鐘振動一次的手表

454398 ? 來源:工程師吳畏 ? 2019-08-23 16:23 ? 次閱讀

第1步:準備零件和工具

如何制作每5分鐘振動一次的手表

以下是零件和這個項目你需要的工具。有些是可選的,它們的使用將在整個教學中得到解釋。

電子部分:

ATTiny85

圓盤振動電機(或任何類型的振動電機,尋找低功率電機)

CR2032電池(或任何類型的紐扣電池)

1N4001二極管(或任何其他通用二極管)

PN2222A晶體管(或任何類型的通用NPN晶體管)

47歐姆電阻(1/4瓦)

100歐姆電阻器(可選)

其他部件:

紐扣電池座

面包板

Perfboard

連接線

滑動開關

壓接線端子(可選但推薦

8針芯片插座(可選但推薦)

工具:

使用Arduino的ATTiny85程序員(或者其他程序員,如果你有的話)

Multitester

剝線器

烙鐵

S電線

雙面膠帶

步驟2:在面包板上構建電路

按照上圖和上圖顯示電路。請特別注意方向,否則電路可能無法正常工作。請務必查看上圖中的注釋,了解有關具體細節的更多信息

完成構建后,您會注意到什么都不會發生。這是因為ATTiny85尚未編程。我們將在下一步做到這一點。

電路說明:

ATTiny85在引腳5上向NPN晶體管(Q1)發出一個信號,作為產生電流的開關流過電機。

電阻器(R1)降低電機電壓,使振動強度降低。

電阻器(R2)降低晶體管基極的電壓。

二極管(D1)作為反激二極管,可以保護電路免受電壓從電機切斷的電壓尖峰的影響。

提示這一步:

我個人更喜歡切斷電線,使它們在面包板上平放。如果出現任何問題,這會使電路板看起來更清晰,更容易進行可視化調試。

注意:

請注意我建造的面包板的圖片可能會注意到滑動開關丟失了。我拍照時忘了添加它。這是可以的,因為電路在沒有它的情況下仍然可以工作。

步驟3:使用Arduino編程ATTiny85

在電路工作之前,我們需要使用程序員對ATTIny85進行編程。

如果你還沒有程序員,你可以通過以下方法之一輕松制作一個instructables:如果你想快速擁有一個程序員,一個是面包板版本。另一個是arduino盾牌的形式,它將來會更加永久使用。這兩個中的任何一個都可以工作。

復制下面的代碼并使用程序員上傳:

#include

#include

#include

#include

const byte motorPin = 0;

volatile unsigned long wdCounter = 0; // Volatile tells compiler to reload each time instead of optimizing

unsigned long motorDuration = 500000;

unsigned long waitDuration = 0;

unsigned long wdCounterTarget = 75;

unsigned long timeDelayStarted = 0;

bool isInDelay = false;

void setup () {

pinMode ( motorPin, OUTPUT );

ADCSRA = 0; // Turn off the ADC

startMotorSequence(); // Run the motor once on startup

sleepNow();

}

void loop () {

if ( wdCounter == wdCounterTarget ) { // Check if counter has reached target.

wdCounter = 0;

timeDelayStarted = micros();

isInDelay = true; // Now in delay mode

}

// Continue to loop until enough time has passed to reach waitDuration

if ( isInDelay

&& micros() - timeDelayStarted 》= waitDuration) {

startMotorSequence(); // Run the motor sequence

wdCounter = 0;

isInDelay = false; // End delay mode

}

if ( !isInDelay ) {

sleepNow();

}

}

void startMotorSequence() {

digitalWrite( motorPin, HIGH );

_delay_us(motorDuration); // Blocking function delay

digitalWrite ( motorPin, LOW );

}

void sleepNow () {

set_sleep_mode ( SLEEP_MODE_PWR_DOWN ); // set sleep mode to Power Down. The most energy efficient setting.

power_all_disable (); // Turn power off to TIMER 1, TIMER 2, and Serial Interface

noInterrupts (); // Turn off interrupts as a precaution. Timed sequence follows

resetWatchDog (); // Reset watchdog, making sure every flag is properly set

sleep_enable (); // Allows the system to be commanded to sleep

interrupts (); // Turn on interrupts. Guarantees next instruction is executed

sleep_cpu (); // Goodnight, ATTiny85

sleep_disable (); // Returns here after Watchdog ISR fires.

power_all_enable (); // Turn on power to TIMER1, TIMER 2, and Serial Interface

}

void resetWatchDog () {

MCUSR = 0; // Clear various “reset” flags

WDTCR = bit ( WDCE ) | bit ( WDE ) | bit ( WDIF ); // Allow changes, disable reset, clear existing interrupt

WDTCR = bit ( WDIE ) | 1 《《 WDP3 | 0 《《 WDP2 | 0 《《 WDP1 | 0 《《 WDP0; // 4s timeout

wdt_reset (); // Reset the watchdog using the parameters

}

ISR ( WDT_vect ) {

wdt_disable(); // Disable the watchdog timer

wdCounter++; // Increase the watchdog firing counter.

}

代碼成功升級后,重新插入ATTiny85芯片面包板。振動電機應開始振動約0.5秒。然后它會倒計時大約5分鐘,然后再次振動。

代碼說明:

為降低功耗,代碼利用ATTiny85的看門狗定時器進行倒計時,直到下次需要振動。請注意,這不是看門狗定時器的用途,但許多人已經使用它來實現低功耗(但不準確)的延遲。如果您不知道它是什么,請在此處獲取更多信息。

電路需要每5分鐘或300秒振動一次。因此看門狗使用4秒間隔并觸發75次(4 * 75 = 300)。請注意,如果要更改延遲,則還需要更改計算。

倒計時結束時,代碼的其他部分很簡單。觸發電機0.5秒,然后通過觸發看門狗重新開始倒計時。

此步驟的提示:

如果存在上傳錯誤,請務必仔細檢查程序員的連接。要幫助進行故障排除,只需從Arduino中復制錯誤代碼并搜索答案。

如果有任何意外行為,請確保您下載的代碼沒有任何更改。

如果仍有問題,請考慮上傳一個簡單的閃爍電路,以測試您的程序員是否按預期工作。

如果電機沒有振動或連續振動,請務必仔細檢查上一步的連接。您也可以嘗試切斷電源并使用滑動開關將其重新打開以重新啟動程序。

步驟4:獲取監視案例

找一個能容納你電路的表殼。您需要很多空間,因為除了電線之外,您將在面包板中安裝所有組件。如果您愿意,也可以3D打印自己的盒子。

在我的最后,我使用了一個里面有很多空間的破碎兒童手表。我刪除了所有現有組件,挖空了它,并試圖估計空間是否足以讓所有東西都適合它。

此步驟的提示:

為了幫助估算您的電路是否適合您的情況,請嘗試構建下一步中找到的電路,而無需焊接組件然后將電路安裝在里面。

至少,您需要的尺寸不會小于您的CR2032電池。

步驟5:準備Perfboard布局

使用標尺測量所選案例中可用空間的尺寸。根據這些測量結果切斷一塊穿孔板。

上圖中的圖表/布局與我們使用面包板制作的電路相同,只是更緊湊。它有10個水平孔和6個垂直孔。這是我能提出的這個電路的最小版本。如果此布局不符合您選擇的案例,那么您可能需要自行更改布局,或找到更大的案例。

此步驟的提示:

在開始焊接之前,如圖所示彎曲組件的支腳,使其保持在原位。

如果電路板緊密貼合,可以選擇用砂紙打磨電路板的兩側。

步驟6:焊接組件放置

現在是時候開始焊接了。如果您按照電路圖,這應該是直截了當的。

如果您不知道如何焊接,這是一個可以解決的問題。

注意:

顯示上述電路圖的第一張圖片使用自上而下的視圖。這意味著,如果您要從下面焊接組件,則方向將翻轉,如第二張圖像所示。很容易混淆!

此步驟的提示:

在切斷腿之前先將組件焊接到位。

確保用萬用表檢查連接的連續性。

如果您不想使用過多的焊料,您可以使用最近切割成直線的組件的支腿,如上圖所示。

步驟7:連接電池和開關

為了能夠將電池與我們的電路連接,我們首先需要使用電池座。我們可以使用我們在面包板上制作電路時使用的電池座,但這可能不適合您選擇的情況。

一種解決方案是將電線末端連接到壓接線端子,如圖所示在上面的第一張圖片中。制作其中兩個,然后讓它們與電池的正極和負極接觸,并用電工膠帶包好。

將電線焊接到電路和滑動開關上。務必通過觸發滑動開關測試電路。就像上次一樣,振動電機應運行0.5秒,表示您的連接正確且正常工作。

此步驟的提示:

使用萬用表檢查電線末端是否從電池讀取電壓。

請務必仔細檢查您的聯系人是否牢固到位。

注意:

壓接線端子有助于使接觸點更大并且更容易固定到位。

如果您沒有壓接電線端子,只需剝去電線末端并使用它,因為接觸仍然有效。

您可能已經注意到滑動開關位于電池的負極線上。無論是積極的還是消極的,這仍然有效。我做了后者,因為它放在我自己的表殼里面是有意義的。

步驟8:將電路放在表殼中并蓋上蓋子

測試你構建的電路,看看是否一切正常。然后小心地將電路放置在您選擇的表殼上,用雙面膠帶將組件固定到位。

將其蓋住,加上表帶,戴上表格,就完成了!

此步驟的提示:

在添加電路之前,不要忘記為表殼涂漆。我選擇了黑色,因為粉紅色并不是我的風格。

使用厚而柔軟的膠帶,特別是將粘性電機固定到位。我發現它能夠承受振動并保持電機就位。

步驟9:最終注釋

以下是有關該項目的最終說明。如果你想知道我為什么在這個項目中做出某些決定,那就很重要了。它還包括有關如何根據自己的喜好修改和改進電路的說明:

代碼經過優化,可以盡可能少地使用電源。有關我如何在這里做的更多信息。

我目前正在佩戴的手表已經運行了2周(在2019-03-26,我會隨時更新此聲明)。我希望手表可以使用至少3個月。

R1 100歐姆電阻用于降低通過振動電機的電流。這使電機變弱但節省電池壽命。如果您覺得在所選外殼內部振動太弱,可以取下此電阻并用電線更換。

我在其中一個步驟中提到振動之間的延遲是“大約”5分鐘。這個項目依賴于ATTiny85的內部時鐘進行定時,這不是很準確(相信我,我測試過它)。預計每5分鐘偏移100ms至1s,但這取決于房間的當前溫度和電池的當前電壓。盡管如此,不要為此煩惱。我發現準確性并不重要。請記住,這個項目告訴我們時間的流逝,而不是當前的確切時間。如果它仍然困擾你,可以考慮在電路中添加一個外部晶體。

通過修改代碼可以改變5分鐘的等待時間。只有了解代碼并且知道自己在做什么,才能執行此操作。對于那些有足夠信心的人,請查看變量 waitDuration 和 wdCounterTarget ,以及第71行,其中設置了看門狗超時。

請務必查看Github存儲庫以獲取此代碼的最新版本,以防萬一有更新或改進。

最后,查看并關注項目頁面。我為這個項目計劃了很多改進,例如使用SMD元件使手表更小,并添加外部晶體以獲得更準確的時序。所以要留意這一點。

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

    關注

    1

    文章

    140

    瀏覽量

    24705
收藏 人收藏

    評論

    相關推薦

    ADS1148上電5左右才有一次正確采樣,為什么會這樣?

    為什么會出現不穩定的情況,般上電5左右才有一次正確采樣
    發表于 12-23 06:25

    DAC3482在按字寬度輸入模式下,為啥SYNC信號16*n個FIFO采樣重復一次

    下圖是DAC3482 中FIFO的說明。該FIFO的深度是8。在按字寬度輸入模式下,為啥SYNC信號16*n個FIFO采樣重復一次?按照我的理解SYNC信號是用來重置FIFO寫指針的,FIFO深度是8,那SYNC信號就應該
    發表于 12-20 06:04

    請問ADC12D1000有一次轉換完成標志嗎?

    老師說AD轉換芯片,轉換完成一次后,會發出個轉換完成信號標志,讓我確定需要多少周期時間后再采樣,但是我在數據手冊上面 并沒有轉換完成信號標志的輸出, 數據手冊上寫的是只要有時鐘給AD芯片
    發表于 11-21 06:45

    ADS8555轉換一次,ADC輸出值會漲高點,直到滿0x7FFF,為什么?

    ADS8555轉換一次,ADC輸出值會漲高點(這時測量外部電壓是不變的),直到滿0x7FFF。(注:這里使用并行模式)
    發表于 11-14 08:37

    一次電源與二電源有什么不同

    在電力系統和電子設備的供電領域中,一次電源與二電源是兩個至關重要的概念。它們各自承擔著不同的功能和角色,共同確保電力供應的穩定性和可靠性。本文將對一次電源與二電源的定義、區別以及它
    的頭像 發表于 10-10 14:10 ?2043次閱讀

    一次電池分類以及應用場景詳解

    01 一次電池簡介 一次電池即原電池(primarycell、primarybattery)(俗稱干電池),是放電后不能再充電使其復原的電池,通電電池有正極、負極電解以及容器和隔膜等組成。 一次電池
    的頭像 發表于 09-30 17:52 ?752次閱讀
    <b class='flag-5'>一次</b>電池分類以及應用場景詳解

    labview如何做到一次觸發采集一次

    最近在做個電壓測試模塊,要求是在個時間段內,出現個上升沿觸發采集,并且只采集一次,采集次數為出現上升沿的次數,采集時間,采樣率及單
    發表于 08-07 10:16

    一次消諧器的構造

    今天來給大家介紹一下一次消諧器的構造。 一次消諧器是種用于消除電力系統中的諧波及無功功率的裝置,它由感性元件和電容器構成,感性元件用于吸收系統中的無功功率,而電容器則用于補償系統中的感性無功功率
    的頭像 發表于 05-30 14:55 ?424次閱讀

    STM32L152進入待機模式1分鐘喚醒一次,18個小時后無法喚醒是怎么回事?

    目前在使用STM32L152時,設置了RTC喚醒,每隔1分鐘喚醒一次,周期采集數據并上傳,開始都是正常喚醒工作,但是在18個小時候,設備就無法喚醒,但是重新插拔電池后又可以正常工作18個小時
    發表于 05-17 13:43

    stm32使用emwin定時器s讀取一次時間,會出現跳秒的原因?

    使用emwin 定時器 s 讀取一次時間,發現會出現跳秒的情況,是怎么個情況? 時鐘使用的是 stm32 單片機自帶的 rtc
    發表于 04-28 07:34

    基波是一次諧波么 基波與一次諧波的區別

    基波是一次諧波么 基波與一次諧波的區別? 基波和一次諧波是兩個不同的概念。 基波是在諧波分析中指的是頻率最低且沒有任何諧波成分的波形,它是構成復雜波形的基礎。在正弦波中,基波就是正弦波的本身。基波
    的頭像 發表于 04-08 17:11 ?7828次閱讀

    STM32F205利用DMA實現多通道ADC采樣,但是啟動一次轉換才能更新一次結果是為什么?

    mode; 3、軟件SWSTART啟動AD轉換后,啟動一次內存中只有一次轉換結果更新,要完成12采樣需要SWSTART啟動12,為什
    發表于 03-27 06:37

    一次消諧裝置投入使用后,如何進行測試?

    材料制作一次消諧裝置具有散熱性能好、體積小、熱容量大等特點,可以用于多種電壓互感器。 一次消諧裝置,ZB-LXQ,在出廠時主要測量交流1mA和10mA的工頻電壓,對于一次消諧裝置,測
    的頭像 發表于 02-20 11:30 ?503次閱讀

    電力系統一次設備和二設備區別,二回路的分類

    在電力系統中,一次設備是指直接參與電能生產、傳輸和分配的電氣設備,如發電機、變壓器、電力電纜等。電力二設備是指對電力系統一次設備進行監視、測量、控制、調節和保護的輔助設備,不直接與電能主電路連接
    的頭像 發表于 01-19 10:10 ?2955次閱讀
    電力系統<b class='flag-5'>一次</b>設備和二<b class='flag-5'>次</b>設備區別,二<b class='flag-5'>次</b>回路的分類

    ADUCM360怎樣才能實現AD0.2秒采集一次數據?

    ADUCM360怎樣才能實現AD0.2秒采集一次數據?用定時器0.2秒中斷一次,在定時器中斷中開始AD單轉換
    發表于 01-12 06:34
    主站蜘蛛池模板: caoporn 免费视频| 一天不停的插BB十几次| 久久国产乱子伦精品免费M| 国产成人精品电影在线观看| japansemature护士| 777久久人妻少妇嫩草AV蜜桃| 夜色私人影院永久入口| 亚洲欧美日韩国产手机在线| 亚洲电影网址| 亚洲国产第一| 亚洲免费在线视频| 亚洲精品久久久无码一区二区 | 皮皮色狼网| 欧美精品99久久久啪啪| 女教师の诱惑| 欧美性情video sexo视频| 欧美v1deossexo高清| 欧美性爱 成人| 日本人的xxxxxxxxx69| 日韩欧美国产免费看清风阁| 三级视频网站| 小草观看免费高清视频| 亚洲国产中文在线视频| 亚洲欭美日韩颜射在线二| 伊人久久大香线蕉综合高清| 综合网伊人| babesvideos欧美最新| 被室友C哭调教双性| 成人毛片免费观看视频大全| 国产成人自产拍免费视频| 国产欧美精品一区二区色综合| 国内精品自线在拍2020不卡| 精品国产乱码久久久久久软件| 久久精品男人影院| 嗯 用力啊 嗯 c我 啊哈老师| 秋霞午夜理论理论福利无码| 三级黄网站| 亚洲欧美偷拍视频一区| 69丰满少妇AV无码区| 东北真实仑乱| 火影小南被爆羞羞网站|