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

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

完善資料讓更多小伙伴認識你,還能領取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:在面包板上構建電路

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

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

電路說明:

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

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

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

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

提示這一步:

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

注意:

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

步驟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的看門狗定時器進行倒計時,直到下次需要振動。請注意,這不是看門狗定時器的用途,但許多人已經(jīng)使用它來實現(xiàn)低功耗(但不準確)的延遲。如果您不知道它是什么,請在此處獲取更多信息。

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

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

此步驟的提示:

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

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

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

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

步驟4:獲取監(jiān)視案例

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

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

此步驟的提示:

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

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

步驟5:準備Perfboard布局

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

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

此步驟的提示:

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

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

步驟6:焊接組件放置

現(xiàn)在是時候開始焊接了。如果您按照電路圖,這應該是直截了當?shù)摹?/p>

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

注意:

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

此步驟的提示:

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

確保用萬用表檢查連接的連續(xù)性。

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

步驟7:連接電池和開關

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

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

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

此步驟的提示:

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

請務必仔細檢查您的聯(lián)系人是否牢固到位。

注意:

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

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

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

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

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

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

此步驟的提示:

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

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

步驟9:最終注釋

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

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

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

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

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

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

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

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

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

    關注

    1

    文章

    142

    瀏覽量

    25136
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一次消諧裝置與二消諧裝置區(qū)別、一次消諧器與二消諧器的區(qū)別

    一次消諧器與二消諧器是電力系統(tǒng)中用于抑制諧振過電壓的不同裝置,主要區(qū)別如下: 安裝位置:一次消諧器串聯(lián)于電壓互感器(PT)一次側中性點與地之間,直接承受高電壓;二
    的頭像 發(fā)表于 05-07 09:58 ?274次閱讀
    <b class='flag-5'>一次</b>消諧裝置與二<b class='flag-5'>次</b>消諧裝置區(qū)別、<b class='flag-5'>一次</b>消諧器與二<b class='flag-5'>次</b>消諧器的區(qū)別

    10分鐘上手寫代碼,LuatOS協(xié)程輕松掌握!

    10分鐘學會LuatOS協(xié)程,從此你的程序也能像通勤族利用碎片時間樣游刃有余。現(xiàn)在就去動手試試,開啟異步編程新體驗! 寫給第一次聽說協(xié)程的你?: 別怕!協(xié)程不是復雜概念,看完這篇,
    的頭像 發(fā)表于 04-10 15:18 ?162次閱讀
    10<b class='flag-5'>分鐘</b>上手寫代碼,LuatOS協(xié)程輕松掌握!

    請問dlp4500選擇play once點擊play是點擊一次個循環(huán)嗎?

    dlp4500選擇play once點擊play是點擊一次個循環(huán)嗎?
    發(fā)表于 02-28 08:42

    請問DLP9000是沒有VIDEO模式只能5個圖片一次的load嗎?

    你好,想問DLP9000是沒有VIDEO模式只能5個圖片一次的load嗎 以及您能看出這個DMD是啥型號的嗎 謝謝
    發(fā)表于 02-25 06:04

    歐度MEDI-SNAP一次性醫(yī)用插頭發(fā)布

    歐度MEDI-SNAP一次性醫(yī)用插頭產(chǎn)品組加入新成員啦!為滿足一次性內窺鏡、一次性手術消融刀等設備中的耗材需求,歐度將ODU MEDI-SNAP一次性醫(yī)用插頭的鎖定方式擴展為插拔自鎖和
    的頭像 發(fā)表于 02-21 16:00 ?388次閱讀

    一次性鋰電池為什么不能充電?文講清!

    一次性鋰電池不能充電,是由它的正負極材料、電解液等決定的。雖然它不能充電,但在某些場景下,還是有著不可替代的作用。希望通過這篇文章,能讓大家對一次性鋰電池有更深入的了解,以后在生活中使用的時候,也能更安全、更環(huán)保。
    的頭像 發(fā)表于 01-23 14:11 ?908次閱讀
    <b class='flag-5'>一次</b>性鋰電池為什么不能充電?<b class='flag-5'>一</b>文講清!

    請教ADC12D800RFRB評估板第一次使用問題

    ADC12D800RFRB評估板第一次使用問題 大家好,我的問題如下: 第一次使用的時候按照提供的個使用手冊,安裝了WV5,連好板子,PC也識別到了。但是手冊上說,第
    發(fā)表于 01-21 06:50

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

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

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

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

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

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

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

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

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

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

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

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

    ODU MEDI-SNAP一次性醫(yī)用插拔自鎖插頭產(chǎn)品介紹

    為滿足一次性內窺鏡、一次性手術消融刀等設備中的耗材需求,歐度全新推出了MEDI-SNAP一次性醫(yī)用插拔自鎖插頭,為醫(yī)療客戶打造了組在品質與經(jīng)濟性上均能滿足需求的高性價比解決方案。
    的頭像 發(fā)表于 09-10 09:59 ?754次閱讀

    labview如何做到一次觸發(fā)采集一次

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