ESP8266 UART連接電路

ESP8266 UART連接電路

ESP所使用的電壓為3.3V,意謂著GPIO輸出電壓HIGH準位3.3V,然而輸入容忍最大電壓也是3.3V,如果要透過ESP提供的UART與其他開發板連接時就要注意電壓準位問題,

Arduino UNO板子為例,它主要是以5V電壓為主,輸出電壓HIGH準位為5V。這種有輸入與輸入的電壓差需要轉換叫作Logic Level Shift,作法有很多種,依照你連接電路的方式選擇適合你的,下面提供幾個作法:

(繼續閱讀…)

 ESP8266 理解Flash更新電路

ESP8266 理解Flash更新電路

ESP8266電源電路有一定了解後,接下來就必需要理解ESP8266(簡稱ESP)的開機模式,ESP將MTDOGPIO0GPIO2組成一個3bit的設定模式,透過設定模式來告知ESP要用什麼樣的方式啟動,下面為3bit的組合設定:

MTDO GPIO0 GPIO2 Value 內容
0 0 0 0 unknown
0 0 1 1 UART0啟動
0 1 0 2 Jump start
0 1 1 3 Flash啟動
1 0 0 4 SDIO 低速 V2
1 0 1 5 SDIO 高速 V1
1 1 0 6 SDIO 低速 V1
1 1 1 7 SDIO 高速 V2

(繼續閱讀…)

 ESP8266 電源電路研究

ESP8266 電源電路研究

一開始接觸ESP8266的使用者必需要面對的就是電源電路,如何最小化連接電源電路讓ESP8266正常運作並與自已的電路連接,接下來分享一些個人心得供參考。

穩定電壓、充足電流

ESP8266第一次電源開啟後因連帶WiFi也會啟動,所以電流要求非常的大,至少要提供3.3V電壓,電流300ma以上的才能讓它順利的啟動,如果還有接其他電路的話可能就要充足的電流500ma否則可能會看到啟動時發生錯誤,引發看門狗(WDT)事件讓ESP8266不斷的重新啟動。

Soft WDT reset

ctx: cont
sp: 3ffef620 end: 3ffef7f0 offset: 01b0

>>>stack>>>
3ffef7d0:  feefeffe 00000000 3ffee7b4 402027c0
3ffef7e0:  feefeffe feefeffe 3ffee7d0 40100718
< <<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v6000001c
~ld

(繼續閱讀…)

 Arduino 進階 – digitalWrite 速度有點慢?

Arduino 進階 – digitalWrite 速度有點慢?

當在更新Arduino_DY_Daikin功能過程中,一些相容的Arduino板子無法使用PWM來產生38kHz,必需要使用軟體產生紅外線所需的38kHz波形,波形的產生是以方波來完成,波形的高、低算一個週期,而38khz代表的是一秒有3800次的波形高、低。,所以利用輸出的HIGHLOW及加上延遲就能完成方波的模擬,模擬的方式類似下面程式(範例產生50kHz波形):


void setup() { pinMode(4,OUTPUT); digitalWrite(4,LOW); } void loop() { digitalWrite(4,HIGH); delayMicroseconds(10); digitalWrite(4,LOW); delayMicroseconds(10); }

(繼續閱讀…)

 Arduino 使用 SCT013 量電流(ADS1115)

Arduino 使用 SCT013 量電流(ADS1115)

量電流方式有串聯方式與非接觸式,一般非接觸式都是使用霍爾電流感應方式量測,但因為使用感應電流方式取得一定比率的電流再回推實際值,這會因為環境因素影響準確性,但非接觸式有個好處如其名稱一樣,我們不需要變更線路設計就能量測到電流此篇為Arduino 使用 SCT013 量電流進階版本,主要是加上16位元解析度的ADC模組,及差分輸入解決電流只能只能量超過0.5A。

準備工作

下面列出硬體方面的準備工作如下: