нужна помощь с по работе OLED 1.3
- Войдите на сайт для отправки комментариев
Сб, 16/03/2019 - 12:51
здравствуйте. собирал маленькое устройство, но столкнулся с проблемой некорректной работы экранов на 1.3 дюйма. при оновлении температуры на дисплее изображение смещается кусками, иногда даже не прочитать температуру.
01 | /* |
02 |
03 | PrintTest.pde |
04 | |
05 | How to use the base class "Print" |
06 | |
07 | >>> Before compiling: Please remove comment from the constructor of the |
08 | >>> connected graphics display (see below). |
09 | |
10 | Universal 8bit Graphics Library, <a href="https://github.com/olikraus/u8glib/" title="https://github.com/olikraus/u8glib/" rel="nofollow">https://github.com/olikraus/u8glib/</a> |
11 | |
12 | Copyright (c) 2012, <a href="mailto:olikraus@gmail.com">olikraus@gmail.com</a> |
13 | All rights reserved. |
14 |
15 | Redistribution and use in source and binary forms, with or without modification, |
16 | are permitted provided that the following conditions are met: |
17 |
18 | * Redistributions of source code must retain the above copyright notice, this list |
19 | of conditions and the following disclaimer. |
20 | |
21 | * Redistributions in binary form must reproduce the above copyright notice, this |
22 | list of conditions and the following disclaimer in the documentation and/or other |
23 | materials provided with the distribution. |
24 |
25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND |
26 | CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
27 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
28 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
29 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
30 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
31 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
32 | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
33 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
34 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
35 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
36 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
37 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
38 | |
39 | */ |
40 |
41 |
42 | #include "U8glib.h" |
43 |
44 | // setup u8g object, please remove comment from one of the following constructor calls |
45 | // IMPORTANT NOTE: The following list is incomplete. The complete list of supported |
46 | // devices with all constructor calls is here: <a href="https://github.com/olikraus/u8glib/wiki/device" title="https://github.com/olikraus/u8glib/wiki/device" rel="nofollow">https://github.com/olikraus/u8glib/wiki/device</a> |
47 |
48 | //U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) |
49 | U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI |
50 | //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI |
51 |
52 |
53 |
54 |
55 | #include <OneWire.h> |
56 | #include <DallasTemperature.h> |
57 | #define ONE_WIRE_BUS 8 // номер пина к которому подключен DS18B20 |
58 | OneWire oneWire(ONE_WIRE_BUS); |
59 | DallasTemperature sensors(&oneWire); |
60 |
61 | void draw( void ) { |
62 | // graphic commands to redraw the complete screen should be placed here |
63 | sensors.requestTemperatures(); |
64 | u8g.setFont(u8g_font_helvR08); |
65 | u8g.setPrintPos(36, 15); |
66 | // call procedure from base class, <a href="http://arduino.cc/en/Serial/Print" title="http://arduino.cc/en/Serial/Print" rel="nofollow">http://arduino.cc/en/Serial/Print</a> |
67 | u8g.print( "OUT TEMP" ); |
68 | u8g.setFont(u8g_font_fub25); |
69 | u8g.setPrintPos(35, 50); |
70 | // call procedure from base class, <a href="http://arduino.cc/en/Serial/Print" title="http://arduino.cc/en/Serial/Print" rel="nofollow">http://arduino.cc/en/Serial/Print</a> |
71 | u8g.print(String(sensors.getTempCByIndex(0) , 1)); |
72 | u8g.setFont(u8g_font_helvR08); |
73 | u8g.setPrintPos(33, 62); |
74 | u8g.print( "CHERY A13" ); |
75 | } |
76 |
77 | void setup ( void ) { |
78 | // flip screen, if required |
79 | // u8g.setRot180(); |
80 | sensors.begin(); |
81 | } |
82 |
83 | void loop ( void ) { |
84 | // picture loop |
85 | u8g.firstPage(); |
86 | do { |
87 | draw(); |
88 | } while ( u8g.nextPage() ); |
89 | |
90 | // rebuild the picture after some delay |
91 | delay(500); |
92 | } |
при оновлении температуры на дисплее изображение смещается кусками, иногда даже не прочитать температуру.
Ни схемы, ни фото нет, но остатки кофейной гущи в кружке показывают, что вроде подтягивающие резисторы на линии I2C отсутствуют.
Попробуйте другую библиотеку - adafruit, например. Возможно корень зла в этом, но точно покажет только экспиримент.
до этого был другой дисплей, он работал спокойно с библиотекой OLED_I2C. но он разбился. заказал другие у того же продавца. а они с этой библиотекой отказались работать. видимо чипы разные. фот хотел скинуть, но не знаю как. сейчас пробую библиотеку AZOLED. с ней все прекрасно вроде работает, но не могу увеличить размер цифр.
до этого был другой дисплей, он работал спокойно с библиотекой OLED_I2C.
Вы прочитали моё сообщени #1?
Запросто может оказаться, что на том дисплее резисторы уже были распаяны на модуле, а на этом - нет.
Просто неодинаковые и "когдапопальные" глюки со смещением - очень похоже.
все резисторы стоят. ради интереса подключил тот дисплей, на котором все изначально работало. в итоге он работает с этой библиотекой. то есть он работает и с библиотекой под 0.96 и под 1.3 дюйма. а новые экранчики работают только с библиатеками под 1.3. но обсалютно все экраны тормозят с библиотеками под 1.3 дюйма.