發表文章

目前顯示的是有「Arduino」標籤的文章

Arduino:有紅燈倒數計時的紅綠燈控制電路

圖片
  功能 一開始縱向的紅色 LED 亮,伴隨著從 120 秒開始的倒數計時 ( 倒數秒數為 3 位數時不顯示,倒數至 2 位數即 99 秒時才開始顯示 ),且橫向的綠色 LED 同時跟著亮。當縱向的紅色 LED 倒數至 3 秒時,橫向的綠色 LED 熄滅,且橫向的黃色 LED 亮;當縱向的紅色 LED 倒數至 0 秒時 ( 不顯示 ),縱向的紅色 LED 熄滅,轉而縱向的綠色 LED 亮,且橫向的紅色 LED 亮,伴隨著從 120 秒開始的倒數計時( 一樣倒數秒數為 3 位數時不顯示,倒數至 2 位數即 99 秒時才開始顯示 )。當橫向的紅色 LED 倒數至 3 秒時,縱向的綠色 LED 熄滅,縱向的的黃色 LED 亮;當橫向的紅色 LED 倒數至 0 秒時 ( 不顯示 ),橫向的紅色 LED 熄滅,縱向的綠色 LED 亮,如此周而復始。 電路圖 圖一   有紅燈倒數計時的紅綠燈控制電路圖

Arduino:基本紅綠燈控制電路

圖片
電路接線圖 如圖一所示:

Arduino IDE 在安裝或更新 esp 32 開發板套件出現 「4 DEADLINE_EXCEEDED: context deadline exceeded」錯誤訊息時之解決方法

How to Fix ESP32 Install Error: "4 DEADLINE_EXCEEDED: context deadline exceeded" 如果想要用 Arduino IDE 撰寫可對 esp 32 系列開發板進行燒錄的程式,則事先須安裝 CP2102 USB to UART 的驅動程式外,還必須在 Arduino IDE 中安裝支援該系列開發板的核心函數庫。不過,當 Arduino IDE 在安裝或更新較大開發板套件如 esp 32 系列開發板 3.3.6 或其它版失敗時,常會出現如下的錯誤訊息: 4 DEADLINE_EXCEEDED: context deadline exceeded (Client.Timeout or context cancellation while reading body) 該訊息說明了因為下載逾時,導致安裝或更新的中止。原因是 Arduino IDE 在安裝或更新開發板套件時連網的預設終止時間為 60 秒 ( 參考資料 1 ) ,因此當網速較慢或套件較大時,一旦安裝或更新套件時間超過就會直接被中止。碰到這種情況簡單的解決方法就是去更改 Arduino IDE 的網路連線逾時終止時間 (timeout) 的配置,適當增加該秒數即可,方法如下:

Arduino:I2C 16x2 LCD 攝氏溫度、濕度與時間顯示電路

圖片
Clock with  Thermo-hygrometer   Using Arduino and I2C 16x2 LCD 功能 如圖一與圖二所示,指撥開關 DIP Switch ON 時 LCD 顯示攝氏溫度、相對濕度與時間;指撥開關 DIP Switch OFF 時則可調整時間。其中 Hour 按鈕開關用來調整時,Minute 按鈕開關則可以調整分。 圖一      LCD 顯示攝氏溫度、相對濕度與時間

Arduino:具有倒數計時自動回復功能的行人穿越道號誌控制系統

圖片
  A  Pedestrian Crossing Safety Circuit with Self-resetting Functions Using Arduino 先前文章 具有倒數計時自動回復功能的行人穿越道號誌控制電路 是以純硬體電路的方式來完成,本文則是用微控器寫控制程式的方式來達成相同功能。 功能 路口在無行人穿越道路時會有黃燈閃爍;但是當有行人要安全地穿越道路時,行人按下「通行」按鈕後,路口的黃燈會熄滅同時紅燈亮且倒數 30 秒計時開始並顯示。此時,駕駛人看到紅燈亮,車輛會停下來等待行人通過。當倒數計時完畢,路口恢復閃黃燈且紅燈熄滅,車輛恢復通行。

Arduino:簡易行人穿越道號誌控制器

圖片
  A Simple  Pedestrian Crossing Safety System Using Arduino 先前的一篇文章 — 簡易行人穿越道號誌控制電路 ,是採硬體的方式設計出來的電路。本篇文章則是介紹以微控器靭體的方式撰寫程式來完成此簡單系統。 功能 平時路口閃黃燈,但當行人要安全地穿越車道,行人可按下「通行」按鈕,讓路口原本閃爍的黃燈熄滅,且另外的紅燈變亮,讓看到紅燈亮的車輛停下來等待行人通過。當行人穿越車道後,按下「回復」按鈕,則紅燈變熄滅,黃燈恢復閃爍。

Arduino:抽獎器

圖片
Electronic Raffle Machine Arduino 開發板:Uno 程式撰寫語言:C 功能 電源打開,四位數七段顯示器如圖一所示,顯示「 ---- 」。按鈕按下後, 四位數七段顯示器的每一位數會快速地各自從一隨機數值開始持續遞加一顯示,如圖二所示。一段時間後,千位數的數字先停止 遞加一,該位數顯示數字不動,其餘位數則仍繼續 快速地 持續 遞加一顯示 ,如圖三所示 。再 一段時間後,百位數 的數字也停止 遞加一 ,該位數 顯示數字不動,而其餘位數則仍繼續 快速地 持續 遞加一顯示 ,如圖四所示 。又 再 一段時間後,十位數 的數字也停止 遞加一 ,該位數 顯示數字不動,剩下的個位數則仍繼續 快速地 持續 遞加一顯示 ,如圖五所示 。接著再過一段時間, 個位數 的數字也停止 遞加一 ,該位數 顯示數字不動 ,如圖六所示 。 最終,抽獎抽到的號碼其所有位數就靜止 顯示在顯示器上。 圖一    四位數七段顯示器一開始顯示「----」

Arduino:可指定範圍亂數號碼產生器

圖片
 Arduino 開發板:Uno 程式撰寫語言:C 功能 在數字 0~999 範圍內,設定好欲選取亂數的號碼範圍 (範圍至多可涵蓋 500 個連續數字) 後,最多可連續選取 500 個不同的亂數號碼顯示。 電源打開後,四位數七段顯示器顯示「     0 」,如圖一所示。 按鍵 1  ( 最小號碼設定鍵 ) 初次按下,如圖二所示顯示器閃爍顯示「 L  0 」,表示可以開始調整可選取的亂數最小號碼。短按該按鍵後放開,號碼會逐次遞加一並閃爍顯示;長按按鍵不放,號碼快速連續遞加一閃爍顯示。調整亂數最小號碼完成後,按下 按鍵 3  ( 設定鍵 ),亂數最小號碼就會完成設定,顯示器會靜態顯示「 L  X 」(X 為能選取亂數最小號碼的最終設定值)。 按鍵 2  ( 最大號碼設定鍵 ) 初次按下,如圖三所示顯示器閃爍顯示「 H  Y 」,表示可以開始調整亂數最大號碼 (Y為能選取的最小亂數號碼設定值再加一)。短按按鍵後放開,號碼逐次遞加一閃爍顯示;長按按鍵不放,號碼快速連續遞加一閃爍顯示。調整亂數最大號碼完成後,按下按鍵 3 ( 設定鍵 ),亂數最大號碼就會完成設定,顯示器靜態顯示「 H  Y 」(Y 為能選取亂數最小號碼的最終設定值)。 按鍵 4  ( 亂數號碼選擇鍵 ) 每按下一次,如圖四所示顯示器會顯示指定範圍內不重複的亂數號碼。 若已無不重複的亂數可選時,顯示器如圖五所示會顯示「 End  」。

Arduino:四位數七段顯示器顯示按鈕按下的計數值

圖片
 Arduino 開發板:UNO 程式碼撰寫語言:C 功能 電源打開的初始狀態,四位數七段顯示器僅一位數顯示,顯示 0。 當按鈕 1 (SW1) 每按下一次,計數值從 0 開始逐次遞加一,並顯示於七段顯示器上。且若計數值為一位數,則四位數七段顯示器只顯示一位數數值;若計數值為二位數,則四位數七段顯示器只顯示二位數數值,…。例如計數值為 12,顯示器不會顯示 0012,只會顯示12。 當按鈕 2 (SW2,Reset 鍵) 每次按下,計數值就會被重新歸零。

Arduino:電子輪盤

圖片
Electronic Roulette Arduino 控制板:Uno 程式碼編寫語言:C 語言 功能 按鈕按下不放,八顆 LED 會快速地以跑馬燈方式依序循環單顆點亮,形成單一亮點快速的循環移動。且每一顆 LED 點亮時,會伴隨「答」的一聲聲響;按鈕一旦鬆開,LED 仍會因先前按鈕按下時持續加速累積的動能,繼續以跑馬燈方式依序循環點亮,但是亮點移動速度會阻力的存在而慢慢變慢,亮點最終會停止移動並停留於隨機位置的 LED 上。 電路接線 硬體電路接線如圖一所示,八顆 LED 的陽極皆接至 $+5V$,陰極分別透過八顆 $220$ $ \Omega$ 電阻接至 Uno 的 pin 9,pin 8,pin 7,pin 6,pin 5,pin 4,pin 3 以及 pin 2。

Arduino:控制多顆 LED 依序漸亮與漸熄且循環不已

圖片
  Arduino 控制板:Uno 程式碼編寫語言:C 語言 功能 六顆 LED 依序輪流單顆漸亮後漸熄,如此循環不已。 電路接線圖