Библиотека для LCD Nokia 1100
- Войдите на сайт для отправки комментариев
что есть на схеме VT1, 78L05 и что называете электролитом.
ну 78L05 вроде линейный регулятор напряжения, а дальше?
vt1 это полевик. там может и биполярный транзистор быть. может драйвер мотора например (внутри или полевые или биполярные транзисторы).
в ближайшем магазине из полевиков только
IRLD014
подойдет?
в ближайшем магазине из полевиков только
IRLD014
подойдет?
для чего? что вы делаете?
я то пытаюсь подружить экран с ардуинкой. там полевик вообще не нужен(на сколько я понимаю).
в вашей схеме он используется. в ней IRLD014 будет уместен?
вы спрашивали про конденсаторы. я описал в каких случаях какие ставить. для дисплея можете вообще не ставить если просто выводить что то
только у жк дисплеев питание максимум 3.3В как и по пинам управления. так что резисторы вам в помощь. с ардуины можете для питания 3.3в взять, а управление через резисторы 4.7к
не просто через резисторы, делитель напряжения надо. Тут всё просто и понятно.
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
не просто через резисторы, делитель напряжения надо. Тут всё просто и понятно.
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
да не обязательно. у меня уже дисплеев 5-6 работает через резистор 4.7к без делителей и прекрасно себя чувствуют. делитель это в идеале. но без может работать и 5В сигналами и с 3.3В. с делителем не уверен. не проверял
согласен. К примеру шлейф ЖКИ от N-1280, на плате телефона держится на электропроводящем клее, который так же проводит ток сигналов и межну контактами (например между SDA и СS), и это не мешает ему работать.
тут дело вкуса. каждый делает как хочет, хорошо что при этом у всех работает))
пожалуйста. но я только цифры делал
16х32
static const char mass16x32[10][64] PROGMEM ={ { 0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //0 0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE, 0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xF8, //1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F}, { 0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //2 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F, 0xFE, 0xFF, 0xFE, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x40, 0x00, 0x00}, { 0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //3 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x40, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}, { 0xF8, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xF8, //4 0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F}, { 0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x00, 0x00, //5 0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x40, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}, { 0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x00, 0x00, //6 0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xFE, 0xFF, 0xFE, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE, 0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}, { 0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //7 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F}, { 0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //8 0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F, 0xFE, 0xFF, 0xFE, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE, 0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}, { 0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //9 0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x40, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}};
10х16
static const char mass10x16[10][20] PROGMEM ={ {0x7E, 0x3D, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x3D, 0x7E, // 0 0x7F, 0xBE, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBE, 0x7F}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, // 1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE}, {0x00, 0x81, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, // 2 0x7F, 0xBE, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x80, 0x00}, {0x00, 0x81, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, // 3 0x00, 0x80, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xBE, 0x7F}, {0x7E, 0xBC, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBC, 0x7E, // 4 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x3E, 0x7F}, {0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x81, 0x00, // 5 0x00, 0x80, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xBE, 0x7F}, {0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x81, 0x00, // 6 0x7F, 0xBE, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xBE, 0x7F}, {0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x3D, 0x7E, // 7 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F}, {0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, // 8 0x7F, 0xBE, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xBE, 0x7F}, {0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, // 9 0x00, 0x80, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xBE, 0x7F} };
Спасибо,мне цифры как раз крупные надо.
Не получается завести LCD 1100 на этой библитеке на Leonardo, ничего не показывает.
Сам LCD вроде рабочий, простой скетч отображает какие-то символы.
LCD подключаю через конвертор уровней на полевиках, на нем же есть питание 3.3V, в чем может быть проблема?
Простой скетч который работает и выводит какие-то символы -
// Arduino Dueminalove Atmega328 // Interfacing with the Nokia 1100 LCD, PCF8814 // Arduino pinout // Nokia 1100 LCD pinout (VDD & VDDI ==> 3.3V, VLED+ connected via 10 ohm resistor to 3.3V) #define PIN_SCE 10 // 2 XCS Connected via resistor-voltage-divider 1.8K & 3.2K #define PIN_SDIN 11 // 4 SDA #define PIN_RESET 12 // 1 XRES #define PIN_SCLK 13 // 5 SCLK #define LCD_C LOW // Command #define LCD_D HIGH // Data static const byte ASCII[][5] ={ {0x00, 0x00, 0x00, 0x00, 0x00} // 20 ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 ! ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 " ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 % ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 & ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c , ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d - ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e . ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f / ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a : ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ; ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c < ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d = ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e > ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥ ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^ ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b { ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d } ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ← ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f → }; void LcdCharacter(char character){ LcdWrite(LCD_D, 0x00); for (int index = 0; index < 5; index++) LcdWrite(LCD_D, ASCII[character - 0x20] ); } void LcdClear(void){ for (int index = 0; index < 864 ; index++) LcdWrite(LCD_D, 0x00); } void LcdInitialise(void){ digitalWrite(PIN_RESET, LOW); digitalWrite(PIN_RESET, HIGH); LcdWrite(LCD_C, 0x2F); // Charge pump ON LcdWrite(LCD_C, 0x24); // Vop MSB *Don't change* LcdWrite(LCD_C, 0x80); // Vop LSB *Here you can change contrast* LcdWrite(LCD_C, 0xA4); // A4 = normal display mode, A5 = all pixels ON LcdWrite(LCD_C, 0xAF); // Display ON } void LcdString(char *characters){ while (*characters){ LcdCharacter(*characters++); } } void LcdWrite(byte dc, byte data){ digitalWrite(PIN_SDIN, dc); // dc is sampled with the first rising SCLK edge digitalWrite(PIN_SCE, LOW); // LCD enable digitalWrite(PIN_SCLK, HIGH); // First rising SCLK edge digitalWrite(PIN_SCLK, LOW); shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data); // SDIN is sampled at the rising edge of SCLK. digitalWrite(PIN_SCE, HIGH); } void setup(void){ pinMode(PIN_SCE, OUTPUT); pinMode(PIN_RESET, OUTPUT); pinMode(PIN_SDIN, OUTPUT); pinMode(PIN_SCLK, OUTPUT); digitalWrite(PIN_RESET, LOW); digitalWrite(PIN_SCE, HIGH); digitalWrite(PIN_SCLK, LOW); LcdInitialise(); LcdClear(); LcdWrite(LCD_C, 0xA7); // Inverted display delay(200); LcdWrite(LCD_C, 0xA6); // Normal display } void loop(void){ LcdString("Nokia 1100 LCD says Hello World"); delay(5000); LcdInitialise(); }
С кодом вроде всё впорядке. Попробуйте после инициализации и перед отчисткой добавить задержуц 75 милисек. Ещё лучше вставте это в функцию инициализации.
после строки 132:
delay(75); LcdClear();
А вобще проверяйте подключение.
Команда в строке 168 лишняя.
С кодом вроде всё впорядке.
Код который привел выше как раз инициализирует и что-то выводит на LCD, проблемка с библиотекой.
По подключению могу грешить только на конвертор уровней и возможно на какую-то специфику работы SPI на Leonardo...
инициализацию нужно делать 1 раз вам правильно сказали
spi у вас программный (нокиевские монохромные дисплеи к сожалению используют 9 битный spi, некоторые цветные тоже)
и попробуйте поменять местами 142 и 143 строки
reset можете вообще к ардуине не подцеплять. можете на +3,3В поцепить, а из кода убрать любое напоминание о нем
в вашем коде не нашел переход в нужные координаты дисплея. если вы будете слать постоянно текст текст будет заполнять весь дисплей . засуньте отправку текста в setup, а в loop ничего не надо
инициализацию нужно делать 1 раз вам правильно сказали
Коллеги еще раз - код выше привел только в качестве примера того что у меня хоть как-то работает на LCD. Проблема не в коде выше.
Не получается завести библиотеку о которой весь этот топик, есть какие-то идеи как это сделать?
так в этом топике было как минимум 2 библиотеки. плюс просто коды. вы о какой? которая только текст может выводить?
так в этом топике было как минимум 2 библиотеки. плюс просто коды. вы о какой? которая только текст может выводить?
Nokia2.h и ваш код из 7 сообщения, результата ноль.
PS cо второй библиотекой впрочем тож самое :-)
ну если из 7 сообщения. вы дисплей так подключили? я имею в виду пины которые в библиотеке зашиты (у меня такие стоят)
#define PIN_SCE 5 // 2 XCS #define PIN_SDIN 6 // 4 SDA #define PIN_RESET 8 // 1 XRES #define PIN_SCLK 7 // 5 SCLK #define PIN_BL 9 // 8 BackLight
ну если из 7 сообщения. вы дисплей так подключили? я имею в виду пины которые в библиотеке зашиты (у меня такие стоят)
#define PIN_SCE 5 // 2 XCS #define PIN_SDIN 6 // 4 SDA #define PIN_RESET 8 // 1 XRES #define PIN_SCLK 7 // 5 SCLK #define PIN_BL 9 // 8 BackLight
Подключал и как в библиотеке стоят, плюс менял в библиотеке на "стандартные SPI" 13, 12, 11, 10, толку нет - LCD молчит...
рисуйте сюда схему, как подключаете
рисуйте сюда схему, как подключаете
Что именно непонятно? детали есть в сообщении 165, все стандартно вроде.
Странно почему выводит не то, что в массиве. Попробуйте выводить из программной памяти читая от туда массив символов. (хотя у вас масив данных byte)
static const byte ASCII[][5] ={ //это заменить на ...
const unsigned char ASCII[][5] PROGMEM ={ // ...на это
и при выводе символа
LcdWrite(LCD_D, pgm_read_byte(&(ASCII[ch - 32][index]))); // строка 115
не забудте подключить соответствующую бибу
#include <avr/pgmspace.h>
Нашел совет здесь - http://alex-exe.ru/radio/microcontrollers/lcd-nokia1100/
Как раз мой случай:) повесил PIN_RESET жестко на +3.3V и все поехало!
а в 168 сообщении я что писал?
а в 168 сообщении я что писал?
Видел, но там как-то неявно было :)
Как я понял это некий глюк самого контроллера LCD, лечится именно так.
Дописал! Еслиб не танки, раньше б закончил))) Вот гафика и текст на АТМ 8
1К оперативки хватает. Подогнал вывод русского шрифта и возможность выбора шрифта. Подоформлю побожески, выложу.
jeka_tm, Хочу спросить разрешения чтоб включить твой 16х32 в библиотеку?
да пожалуйста
как делали вывод графики? массив делали?
Да, массив. Только развером втрое меньше (3 банка) и вывожу один массив в верхнюю, среднюю и нижнюю часть.
По принципу похоже на U8G библиотеку. Вобще были мысли приобщить и шрифты от U8G. и рисовать легче да и готовых полно...думаю...
Прошу прощения... не сдержался))
тогда получается перед каждым выводом просчитвается каждая часть. так?
делал плату под дисплей 1110 и датчик DHT22 на фоторезисте без пленки,
паяльная маска из того же фоторезиста для эксперимента
А фоторезист без пленки, это как? Балончик? FSR-8000? Если балончик, то ссылочку не кините по каким инструциям делали?
тогда получается перед каждым выводом просчитвается каждая часть. так?
Да. Кто работал с u8g.lib, тот поймёт сразу. Вот дапустим последний скрин выглядят так:
void loop(){ LcdPageONE(); do{ LcdBitmap(0, 0,crimea, ON); LcdGotoXY(69, 2); LcdsetFont(font_5x8); LcdPrint("КРЫМ", ON, 1); LcdGotoXY(60, 11); LcdPrintW("ЭТО", ON); LcdGotoXY(14, 59); LcdPrintW("РОССИЯ", INV); } while(LcdPageTWO()); }
Внутри оператора do ... while Массив заполняется, выводится и отчищается 3 раза.
пленка имелась в виду lomond кажется, на которой обычно делают фотошаблон
я просто на бумаге пачатаю и маслом растительным мажу
инструкция. да все просто. фоторезист alpha 340 или 350 самые доступные и неплохие по качеству
если коротко
1. трассирую и распечатываю
2. приклеиваю фоторезист к текстолиту
3. засвечиваю
4. убираю незасвеченный фоторезист
5. травлю
6. паяю
а подробнее
1. трассирую плату, печатаю на бумаге зеркально и инвертиронные цвета
2. чищу текстолит, отрезаю фоторезист, снимаю с фоторезиста толстую защитную пленку
накладываю на текстолит, приклеивая с края и прогоняю через ламинатор при температуре 100градусов
натягиваю фоторезист за второй край чтобы не было складок пока прогоняется
только листок под текстолитом чтобы валы не попортить открыми краями
отрезаю бумагу (фоторезист с запасом, и он приклеивается к бумаге)
3. накладываю на плату перевернутую распечатку, тонером к плате и наливаю немного масла, размазываю чтобы не было пузырьков
4. засвечиваю УФ лампой 20вт 3,5мин с расстояния 20см приблизительно
5. снимаю вторую пленку и кидаю в слабый раствор кальцинированной соды
6. периодически кисточкой (прямо в растворе) "чищу" фоторезист. фоторезист вытравливается и нужно протирать кисточкой
7. вынимаю минут через 10-15 когда все ненужное вытравилось, мою плату в воде и травлю в хлорном железе
8. после травления стираю фоторезист ватным тампоном с ацетоном (круглые, если есть жена у нее должно быть)
9. лужу и паяю
Спасибо. Как плату сделать фоторезистом, как бы знакомы :) Вопрос был именно про маску.
не понял. в смысле фоторезистом платы делать умеете?
маска абсолютно также, только без инвертирования цвета и печатать только выводы
маску писал же из фоторезиста делал. она намного хуже чем например FSR-8000, но делал из того что было под рукой
маску писал же из фоторезиста делал. она намного хуже чем например FSR-8000, но делал из того что было под рукой
Ну вот я про это и спрашивал. как FSR ром делать понятно (только найти его трудновато).
Вытравили плату, а дальше? Лудим или маску делаем? Просто еще раз накатываем фоторезист и светим? У FSR-ра нужно греть два раза (70 и 150 градусов), есть две стадии стадии нагрева, а тут как? Или вообще не грели маску?
В чем "намного хуже чем FSR-8000" проявляется?
Просто думал искать FSR-8000, печку потом искать..., а тут вы с маской из пленочного. Пленочный у нас продается. Да и наносить его проще щем FSR (пяльцы, ткань и т.п.).
хуже что температуру плохо держит если перепаивать несколько раз
если 1, максимум 2 нормально
вытравили-лудим (а можете и не лудить)-делаем маску- повторный долгий засвет чтобы стала фиолетовой и более стойкой-паяем
Можно ли перезалить библиотеку?
какую?
Для ардуино. С примером. А то все ссылки ведут в тому что файл не найденю
http://yadi.sk/d/CXjuENmaEEwun
в папке дисплеи
Спасибо. А как сделать все зеркально? а то у меня все задом наперед))
а можно больше инфы? с чем работаете и что зеркалировать?
Решил проблему!
У меня при выводе текста было все зеркальное. Но я избавился от этого написав Lcd.Mirror(OFF,OFF);
Спасибо. А как сделать все зеркально? а то у меня все задом наперед))
файл cpp. строка 138
SendByte(CMD_LCD_MODE,0xA1); // Инвертировать экран по горизонтали
закоментируйте её.
- « первая
- ‹ предыдущая
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- следующая ›
- последняя »
Павел пишет 05.12.2011 в 02:42#
Недавно обнаружил, что некоторые LCDшки не ‘заводятся’ если программно передергивать при старе Reset, и прекрасно работают если его повесить на +, а сбросить контроллер LCD программно командой(если не путаю, то 0xE2). Это касается и 1110 и 1110i. Причина мне до конца не ясна — но факт на лицо.