Posts

Showing posts from May, 2019

Arduino 學習筆記#7 用麵包板外接LED燈與電阻

Image
要點亮麵包板外接的LED燈,大約需要2V的電壓,而Arduino上的pin 5V和其他pin皆可輸出5V電壓,過高的電壓會使過高的電流流經LED,使LED燒壞,所以需要再接上一個電阻,來限制電流的流量。 電阻的計算方式,則可套用歐姆定律:R = V/I 一般LED燈最高需要20~25mA的電流方可點亮(電流越低,亮度越暗),壓降約2~2.5V,所以電阻兩端的電壓為3V(5V - 2V) 因電路上的電流皆相同,所以I = 0.02A(200mA) 故R = 3V/0.02A =  150歐姆 保險起見,可挑選220歐姆的電阻。 Arduino接線方式如下圖(圖源: 軟爛番茄工作室 ) 程式碼可套用專案#1 void setup(){     pinMode(7, OUTPUT); } void loop(){     digitalWrite(7, HIGH);     delay(1000);     digitalWrite(7, LOW);     delay(1000); } 學習來源: ROHM詳細解釋需要電阻的原因 https://www.rohm.com.tw/electronics-basics/resistors/r_what1 葉難清楚地解釋計算電阻的方式 http://yehnan.blogspot.com/2012/03/arduinoled220-ohm.html 軟爛番茄工作室則教你如何實作簡易專案,並教你如何辨別電阻 https://www.youtube.com/watch?v=cWEJMusT-hI

Arduino 學習筆記#6 麵包板

Image
麵包板中間部分直向的每5點接通,上下橫向的每25點接通(圖片來源: 軟爛番茄工作室 ) 學習來源: https://www.youtube.com/watch?v=xIlhSKaM4yo  (3:59)

Arduino 學習筆記#5 上拉電阻

Image
在#3專案(判斷pin7的電壓,來顯示pin13的LED暗亮),pin7的接腳在未接入GND或5V時,會受到附近電廠干擾,使得pin13的LED時暗時亮 圖片來源: 軟爛番茄工作室 為了讓pin7的電壓狀態處於穩定的狀態,所以加上一個上拉電阻*,讓未接線時,處於高電位,因兩端無電位差,電流為0,故pin7(A)會處於高電位。 上拉電阻 :如果外部組件未啟用,上拉電阻則「微弱地」將輸入電壓訊號「拉高」,通過這樣,上拉電阻可以使引腳即使在未連接外部組件的時候也能保持確定的邏輯電平。 圖片來源: 軟爛番茄工作室 而因為Arduino有內建上拉電阻,所以只需要讓pin7變成INPUT狀態並輸出高電壓,即可啟動上拉電阻,但因Arduino沒有內建下拉電阻,所以只能自行接入 圖片來源: 軟爛番茄工作室 基於專案#3的程式碼,只要加入pinMode(7, INPUT)和digitalWrite(7, HIGH)即可讓pin7的電壓不受附近電廠干擾 void setup(){     pinMode(7, INPUT);     digitalWrite(7, HIGH);     pinMode(13, OUTPUT); } void loop(){         if(digitalRead(7) == HIGH){         digitalWrite(13, HIGH);     }else{         digitalWrite(13, LOW);     } } 學習來源: https://www.youtube.com/watch?v=xIlhSKaM4yo 備註: 一般較少用Arduino內建的上拉電阻,因歐姆值較高(約20K歐姆~50K歐姆) 電阻值越高,對抗雜訊干擾的能力越弱,對開關切換訊號的反應靈敏度也會降低;電阻值越低,代表從電源引入的電流越多。 所以通常會自行外接上拉電阻,普通的按鈕開關電路通常採用10K歐姆的外接上拉電阻,對於要求高反應速率的電子訊號切換場合,上拉電阻通常使用5K歐姆,甚至4.7K或1K歐姆。 擷取自:超圖解Arduino互動設計入門2(4-14)

Arduino 學習筆記#4 基礎物理:電流、電壓、電阻

電流: 導體兩端有電位差,產生電荷在導體流動的現象,稱為電流(如同水需要有高低差,才會流動)(來源:超圖解p.2-2) 自由電子在通電的迴路中會由電池的負電流向正電,而電流的方向則與其相反。 電子流的大小(A, 安培),為單位時間內流經導線某一截面的電量(I = Q/t) https://www.youtube.com/watch?v=DZlGgYtCctA 電壓: 兩端程高低差的電位差 推動電流能力的大小 自由電子流經震動中的原子時發生碰撞,碰撞將電能產生熱能,造成功率消耗和電壓降(V=IR) https://www.youtube.com/watch?v=D8ql_lniCks 電路的所有的接地點,都需要是同一個(共同接地),這樣不同電壓才會有相同的參考基準點,而Arudino上的3個接地槽(GND)都是相通的。 Arduino有直流電壓調節電路,會自動把直流電壓轉為5V和3.3V,所以至少需要輸入6~7V,一般都輸入9V。而Arudino上有個接腳叫做Vin,可直接讀取輸入的電壓(來源:超圖解p.2-7)。 電阻: 電子流經震動中的原子時,所產生的阻力,極為電阻 https://www.youtube.com/watch?v=lnC6J9AplMc 所謂的1Ω就是施加1V的電壓後,會讓1A的電流流通的電阻值,或者是當1A電流通時,會讓電壓成為1V的電阻值。 https://www.rohm.com.tw/electronics-basics/resistors/r_what1 影響電阻大小的因素為:電線長度、截面積大小、材質 https://www.youtube.com/watch?v=wcdKuX7goOM 電阻就像個塞子,塞住了就不會產生電流,也就不會產生壓降,亦不受外界影響 ex: 上拉電阻:如果外部組件未啟用,上拉電阻則「微弱地」將輸入電壓訊號「拉高」,通過這樣,上拉電阻可以使引腳即使在未連接外部組件的時候也能保持確定的邏輯電平。 https://zh.wikipedia.org/wiki/%E4%B8%8A%E6%8B%89%E7%94%B5%E9%98%BB 電容: 儲存電的裝置,如同蓄水池。 需要電容的原因:直流電的電壓會時高時低(電壓過低的話會導致電器關閉),所以需要一個容器儲存部

Arduino 學習筆記#3 讀取接腳的狀態

新語法 digitalRead(接腳); 接腳:0~13, A1~A5 用於讀取接腳處於高電位(HIGH)或低電位(LOW)* *所有數位和類比接腳,都能讀取/輸出0與1訊號。只要輸入值超過電源電壓的一半(ex:2.6V),就代表高電位(HIGH ; 1) ; 反之,則代表低電位(LOW ; 0) 目標:讓pin 7連接低電位時熄滅,連至高電位時,pin 13亮起 void setup(){     pinMode(7, INPUT);     pinMode(13,OUTPUT); } void loop(){         if(digitalRead(7) == HIGH){         digitalWrite(13, HIGH);         }else{         digitalWrite(13, LOW);     }; } 學習來源: https://www.youtube.com/watch?v=hY33--luLYs&t=14s

Arduino 學習筆記#2 點亮第一顆LED

Arduino的程式碼,分成兩個部分 void setup(){ 設定的內容,啟動時會先跑這裡面的程式碼一次 eg. 設定溫度為23度 } 和 void loop(){ 重複執行的內容 eg. 重複偵測周遭溫度,決定調升或調降溫度 } 基本語法 1. 工作接腳設定(接腳要輸入還是輸出) pinMode(工作接腳, 模式); 工作接腳:0~13, A0~A5 模式:INPUT 或是 OUTPUT ex. pinMode(7, OUTPUT); 2. 工作接腳數位訊號設定(要輸入或輸出什麼) digitalWrite(工作接腳, 狀態); 狀態:HIGH(高電位、5v、開起)或是LOW(低電為、0V、關閉) ex. digitalWrite(A3, HIGH); 3. 讓Arduino暫停 delay(毫秒數); ex. delay(1000); 範例:讓板子上的13號接口旁的LED亮起來 void setup(){     pinMode(13, OUTPUT); } void loop(){     digitalWrite(13, HIGH);     delay(1000);     digitalWrite(13, LOW);     delay(300); } 學習來源: https://www.youtube.com/watch?v=TJ8IqbyuTu4

Arduino 學習筆記#1 安裝

Image
Step 1 下載Arduino Create Agent: https://github.com/arduino/arduino-create-agent Step 2 開啟 Arduino 網頁編譯器 https://www.arduino.cc/en/Main/Software Step 3 連結Arduino板子與電腦