榆林國(guó)貿(mào)網(wǎng)站建設(shè)怎么做關(guān)鍵詞排名靠前
PCB 布局參考了老王0.8元128x32OLED顯示屏轉(zhuǎn)接板,開(kāi)源項(xiàng)目地址:老王0.8元128x32OLED。
老王家買(mǎi)的屏幕放了快一年了,終于還是決定整個(gè)單獨(dú)的模塊,之前一直打算集成到開(kāi)發(fā)板上的,不太靈活。相比那個(gè)轉(zhuǎn)接板,主要的修改是:
- 添加了3.3V LDO,ME6206A33,就是常用的662K,可以兼容3.3V 到5V 的輸入電壓;
- 四線SPI 接口加入了電平轉(zhuǎn)換電路,可以兼容3.3V 和5V 電平;
- 7pin 排針減少到6pin,去掉復(fù)位,沒(méi)什么用;
- 去掉多余的螺絲孔,板子面積很小,一個(gè)M3 螺絲就夠固定了。不需要螺絲固定的話(huà)還可以一剪子把螺絲孔突出的環(huán)形部分剪掉;
實(shí)物圖如下:
電路
就是復(fù)制粘貼成品OLED 模塊的上電路,電容的參數(shù)不敏感,小范圍變動(dòng)取值對(duì)屏幕工作沒(méi)什么影響,比如C4,換成0.1uF 實(shí)測(cè)也OK。
供電
參考ME6206 的規(guī)格書(shū):
OLED 工作電流不大,所以壓差應(yīng)該不超過(guò)300mV。理論上,如果輸入3.3V,輸出電壓仍大于3V,而OLED 芯片SSD1316 的規(guī)格書(shū)上說(shuō)最低電壓3V,所以足夠驅(qū)動(dòng)了。另外,OLED 模塊的電源正極V+ 可以不接,因?yàn)镃S 線默認(rèn)是高電平,只在通訊過(guò)程中拉低,其他幾個(gè)信號(hào)線也可能間歇地處于高電平,那么當(dāng)單片機(jī)使用5V 供電時(shí),可以只通過(guò)這幾個(gè)信號(hào)線給OLED 供電,實(shí)測(cè)基本能用,只是屏幕亮度會(huì)降低,還有點(diǎn)閃。
電平轉(zhuǎn)換
因?yàn)槟K是用SPI 驅(qū)動(dòng)的,參考:SPI 接口OLED 使用5V 信號(hào)驅(qū)動(dòng)可能需要電平轉(zhuǎn)換,就是說(shuō)如果直接和5V 單片機(jī)連在一起,屏幕可能不工作,所以就加了四組分壓電路,用來(lái)把5V 電平降到3.3V。
還有個(gè)撥動(dòng)開(kāi)關(guān)SW-LVL-SHIFT,開(kāi)關(guān)閉合時(shí)啟用分壓功能,斷開(kāi)后分壓電路就退化成了限流電路,下拉部分R7 至R10 失去作用,R3 和R6 串入信號(hào)線里限流。經(jīng)過(guò)實(shí)測(cè),用5V 的Arduino 驅(qū)動(dòng),只要限流電阻就夠了,OLED 可以工作,所以四個(gè)下拉電阻和撥動(dòng)開(kāi)關(guān)可以不裝。不過(guò),SPI 信號(hào)線SCLK 和MOSI 上的限流電阻肯定會(huì)影響信號(hào)的上升時(shí)間,也就是說(shuō)SPI 通信頻率不能太高,雖說(shuō)我也沒(méi)試過(guò)最高能到多少。
焊接
- 原理圖里那兩個(gè)和0.1uF 電容并聯(lián)的4.7uF 電容可以不裝,之前試過(guò),能用;
- 像上面說(shuō)的,2k 下拉電阻R7 至R10 以及撥動(dòng)開(kāi)關(guān)也可以不裝;
- 如果確定不需要兼容5V 電平,LDO 可以去掉,1k 限流電阻可以用一坨錫替代;
- LDO 的輸入輸出電阻也可以用1uF,怎么方便怎么來(lái);
所有元件都是貼片的,而且是單面安裝,推薦使用焊錫膏配加熱臺(tái)的焊接方式,我是用針管點(diǎn)錫膏的,反正元件種類(lèi)不多,熟悉之后也挺快的,唯一的難點(diǎn)就是那個(gè)座子,我就沒(méi)遇到過(guò)能一次性焊好的。如果用加熱臺(tái)焊接,注意座子底下焊錫膏盡量少一點(diǎn),免得之后連錫太多拖不開(kāi);要是焊錫膏太多,融化的錫球還可能把座子給頂起來(lái)。不推薦用熱風(fēng)木倉(cāng)焊座子,很容易烤壞,其實(shí)加熱臺(tái)基本也焊不了座子,只是能初步把座子固定在焊盤(pán)上,之后用烙鐵的時(shí)候稍微省點(diǎn)事。
座子的焊盤(pán)我修改過(guò),把引腳的焊盤(pán)向外拉長(zhǎng)了,就是為了方便檢查和用烙鐵拖。除了電烙鐵,必要的工具還有放大鏡和助焊膏。處理連錫的方法就是先助焊膏滿(mǎn)上,把烙鐵頭用海綿或者鋼絲球清理干凈,然后輕柔的貼在連錫的焊盤(pán)上向外拖。動(dòng)作輕柔的目的是避免把焊盤(pán)刮壞,引腳的焊盤(pán)間距太小了,阻焊層很脆弱。此外,還要避免烙鐵頭把融化的錫擠到座子里面。除了容易連錫,還容易虛焊,可以用放大鏡快速觀察一下,涂滿(mǎn)助焊膏,在烙鐵頭上沾一點(diǎn)焊錫,然后從里往外拖,讓烙鐵上的錫沾到引腳和焊盤(pán)上,沾得焊錫太多就容易把焊錫擠進(jìn)座子內(nèi)部。烙鐵和座子引腳接觸時(shí)間太長(zhǎng)的話(huà)會(huì)讓座子內(nèi)部的銅引腳被加熱到比較高的溫度,焊錫也就更容易跑進(jìn)去。
故障排除
如果單片機(jī)程序ok,但屏幕全黑,沒(méi)反應(yīng),首先考慮是不是座子上連錫或虛焊。連錫用放大鏡很容易觀察到,用干凈的烙鐵頭配上助焊膏也很容易拖干凈,所以更可能是虛焊。此時(shí)需要先把屏幕拔下來(lái),這里也有點(diǎn)要注意的地方,如果是虛焊,說(shuō)明座子的引腳只靠塑料件固定著,沒(méi)連到焊盤(pán)上,那么,剛經(jīng)過(guò)高溫焊接,塑料肯定有一些變形,引腳的固定不一定牢靠,有可能在拔掉屏幕時(shí)把座子的引腳一起拔下來(lái),避免的方法當(dāng)然是盡量控制焊接溫度和時(shí)間。然后要么拿放大鏡純靠眼力判斷虛焊的地方,要么就用萬(wàn)用表測(cè)量焊盤(pán)和座子引腳的通斷,可能需要用細(xì)尖表筆,一個(gè)一個(gè)掃過(guò)去,熟練的話(huà)也不怎么費(fèi)勁。
如果屏幕能亮,但是亮度比較低,會(huì)閃爍,那可能是那個(gè)560K 的電阻沒(méi)焊好。加熱臺(tái)上焊接有時(shí)候會(huì)出現(xiàn)立碑的現(xiàn)象,就是電阻之類(lèi)的小東西一側(cè)的焊錫比較少,然后電阻被另一側(cè)的焊錫拉著拽起來(lái)了,導(dǎo)致電阻一邊浮空??傊蟛糠謫?wèn)題應(yīng)該都是和座子的焊接有關(guān),其他元件沒(méi)焊好容易觀察到。
例程
使用例程參考Arduino 版u8g2 庫(kù)的例子,屏幕型號(hào)SSD1316 128x32,四線SPI 驅(qū)動(dòng)方式,RST 不連接, 參數(shù)上寫(xiě)U8X8_PIN_NONE
。雖然,似乎大部分人都說(shuō)這屏幕是128x32,但我不管怎么試,看起來(lái)都更像是128x28,用8x7 的字符剛好夠顯示4 行,8x8 的字符第四行會(huì)顯示不全。順便放上一個(gè)Hello world 例程,Arduino 加U8G2 庫(kù),使用硬件SPI:
/*HelloWorld.ino"Hello World" version for U8x8 APIUniversal 8bit Graphics Library (https://github.com/olikraus/u8g2/)Copyright (c) 2016, olikraus@gmail.comAll rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/#include
#include #ifdef U8X8_HAVE_HW_SPI
#include
#endif//DC 連接到D9, CS 到D10,SCK 和MOSI 連到對(duì)應(yīng)的SPI 引腳,V+ 連接到5V 或3.3V 電源,也可以不接。
U8X8_SSD1316_128X32_4W_HW_SPI u8x8(10, 9, U8X8_PIN_NONE); void setup(void)
{u8x8.begin();u8x8.setPowerSave(0);
}void loop(void)
{static bool line = false;u8x8.setFont(u8x8_font_chroma48medium8_r);if(line) {u8x8.drawString(0,1,"1: 8x7 character");u8x8.drawString(0,2,"2: 4 line => 28 ");}else {u8x8.drawString(0,1,"Hello World! ");u8x8.drawString(0,2,"Hello World! ");}line = !line;u8x8.drawString(0,0,"0 start line");u8x8.drawString(0,3,"3 end line");delay(2000);
}