arduino и lcd от nokia 1202, не получается подключить

xxoma
Offline
Зарегистрирован: 13.02.2014

Всем привет. Уже который раз пытаюсь подключить дисплей от нокии 1202 но безуспешно. Изображения нет. Пробовал использовать библиотеки для 1100 lcd. Распиновка у них разная, нашел распиновку от 1202:

Поключаю так:

// LCD_PIN_SCE 10   lcd pin 3
// LCD_PIN_SDIN 11  lcd pin 5
// LCD_PIN_RESET 12 lcd pin 2
// LCD_PIN_SCLK 13  lcd pin 6
//                  lcd pin 7-8 +3.3V
//                  lcd pin 4-9-10 GND
//                  lcd pin 11 +LED
 
Но толку ноль. Поделитесь пожалуйста правильной схемой подключения этого дисплея. Спасибо!
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пользуюсь такими. слева для 3.3В схемы. правая для 5В

вот точно рабочий код. вчера только тестил им

подключение в коде расписано. ресет на +3,3 цеплять. на печатках видно

#include <avr/pgmspace.h>

#define SC_On            PORTD |= 1<<5        // CS    PD5
#define Data_On          PORTD |= 1<<6        // Data  PD6
#define Clock_On         PORTD |= 1<<7        // Clock PD7
#define SC_Off           PORTD &= ~(1<<5)
#define Data_Off         PORTD &= ~(1<<6)
#define Clock_Off        PORTD &= ~(1<<7)

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}};
 


void SendByte(unsigned char mode, unsigned char c){
  SC_Off;
  (mode)? Data_On : Data_Off;
  Clock_On;
  Clock_Off;

  byte i;
  for(i=0;i<8;i++)
  {
    Clock_Off;
    if (c & 0x80) Data_On;
    else	  Data_Off;
    Clock_On;
    c <<= 1;
  }

  Clock_Off;
  SC_On;
  Data_Off;
}

void Clear_LCD(){
  for (int i=0;i<864;i++){
    SendByte(1,0x00);
  }
}

void Goto_XY(byte x, byte y){
  SendByte(0,(0xB0|(y&0x0F)));      // установка адреса по Y: 0100 yyyy
  SendByte(0,(0x00|(x&0x0F)));      // установка адреса по X: 0000 xxxx - биты (x3 x2 x1 x0)
  SendByte(0,(0x10|((x>>4)&0x07))); // установка адреса по X: 0010 0xxx - биты (x6 x5 x4)
}

void setup() { 
  DDRD |= 0b11100000;          //включаем порты на выход с 0 по 2

  // Инициализация дисплея
  Clock_Off;
  Data_Off;
  SC_Off;
  //delay(20);
  SC_On;

  SendByte(0,0x2F);     // Power control set(charge pump on/off)
  SendByte(0,0xA4);

  SendByte(0,0xC8);   // mirror Y axis (about X axis)
  SendByte(0,0xA1);   // Инвертировать экран по горизонтали

  SendByte(0,0xAF);     // экран вкл/выкл
  Clear_LCD();
}

void vyvod(int skor){
  int temp=skor;                         // переменная для хранения
  int c3=temp%10;                        // третья цифра скорости 
  temp/=10;
  int c2=temp%10;                        // вторая цифра скорости 
  temp/=10;
  int c1=temp%10;                        // первая цифра скорости
  simb16x32(c1,20,2);
  simb16x32(c2,40,2);
  simb16x32(c3,60,2);
}

//Вывод символа 16х32 в координаты XY
void simb16x32(char n, char x, char y){
  char i;
  Goto_XY(x,y);
  for (i=0;i<16;i++){
    SendByte(1,pgm_read_byte(&(mass16x32[n][i])));
  }
  Goto_XY(x,y+1);
  for (i=16;i<32;i++){
    SendByte(1,pgm_read_byte(&(mass16x32[n][i])));
  }
  Goto_XY(x,y+2);
  for (i=32;i<48;i++){
    SendByte(1,pgm_read_byte(&(mass16x32[n][i])));
  }
  Goto_XY(x,y+3);
  for (i=48;i<64;i++){
    SendByte(1,pgm_read_byte(&(mass16x32[n][i])));
  }
}

void loop() {
  for(int i=0; i<255; i++){
    vyvod(i);
    delay(300);
    Clear_LCD();
  }
}






на экране будут большие цифры увеличиваться каждые 300мс

1202 мне один раз попался дохлый. чтобы ни делал не работал. припаял другой сразу все ок

 

xxoma
Offline
Зарегистрирован: 13.02.2014

Спасибо! В самом деле оказался не рабочим новый дисплей. Вынял с трупа бу и все заработало!

axill
Offline
Зарегистрирован: 05.09.2011

Мне из 10 попались два дохлых и 4 с битыми пикселями

это же не нокиа, а так называемые аналоги, качество соответсвующее, впрочем и цена ... Тоже соответствует

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

мне больше везло. на 10+ использованных дисплеев только 1 дохлый

xxoma
Offline
Зарегистрирован: 13.02.2014

Какую библиотеку посоветуете для данного дисплея?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

смотря для каких целей. только текст или еще графика нужна. линии и тп. вторая требовательна к оперативной памяти, мега8 и 168 не подойдет

 

xxoma
Offline
Зарегистрирован: 13.02.2014

Буду использовать Atmega328P, от arduino nano. Желательно и графику, делаю велокомп для электро велосипеда. Желательно с разными по величине шрифтами. Пробую эту: https://github.com/igorok107/PCF8814, но там какие то проблемы при попытке вывести int или double:

  Lcd.Print(watts);
  Lcd.Print(" Ватт ");
wat_meter.ino: In function ‘void loop()’:
wat_meter.ino:172:18: error: no matching function for call to ‘PCF8814::Print(float&)’
wat_meter.ino:172:18: note: candidate is:
In file included from wat_meter.ino:1:0:
/usr/share/arduino/libraries/PCF8814/PCF8814.h:85:8: note: void PCF8814::Print(const char*)
/usr/share/arduino/libraries/PCF8814/PCF8814.h:85:8: note:   no known conversion for argument 1 from ‘float’ to ‘const char*’

Приходится конвертировать : 

Lcd.Print(dtostrf(watts,0,2, buffer));
Lcd.Print(" Ватт ");

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

качайте Nokia1100_Library

http://yadi.sk/d/CXjuENmaEEwun

там разная графика

xxoma
Offline
Зарегистрирован: 13.02.2014

Спасибо! Будуть пробовать =)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

может для такого проекта надо было дисплей покрупнее выбрать?

и стоит недорого

http://www.ebay.com/itm/1-8-Serial-SPI-TFT-LCD-Module-Display-PCB-Adapte...

а там уже плеер радио спидометр одометр управление фарой и так далее.

на таком дисплее это будет информативнее

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

http://arduino.ru/forum/obshchii/vremya-na-ispolnenie-raznykh-funktsii#c...

тестил максимальную частоту обновления 1202 на 16мгц ардуине

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

подскажите где скачать картинки для таких дисплеев? когда то было дофига. сейчас не могу найти

точнее анимацию

xxoma
Offline
Зарегистрирован: 13.02.2014

Интересный дисплей, но думаю цветной будет хуже читатся на солнце. Еще я пытаюсь засунуть этот девайс в корпус обычного велокомпьютера, дисплей от 1202 как раз подходит. Только вот ардуина не вмещается, придется делать плату.

xxoma
Offline
Зарегистрирован: 13.02.2014

Если не трудно, можете запостить пример использования библиотеки Nokia1100_Library? Спасибо!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
#include <Nokia2.h>
LCD Display = LCD();

/*
LCD_CS   5
LCD_Data 6
LCD_CLK  7

Пиксель                Display.drawPixel(x,y,color);
Символ                 Display.drawChar(x,y,char,color,bg,size);
Линия                  Display.drawLine(x0,y0,x1,y1,color);
Круг                   Display.drawCircle(x0,y0,radius,color);
Незнаю                 Display.drawCircleHelper(x0,y0,radius,cornername,color);
Залитый круг           Display.fillCircle(x0,y0,radius,color);
незнаю                 Display.fillCircleHelper(x0,y0,radius,cornername,delta,color);
Треугольник            Display.drawTriangle(x0,y0,x1,y1,x2,y2,color);
Залитый треугольник    Display.fillTriangle(x0,y0,x1,y1,x2,y2,color);
Прямоугольник          Display.drawRoundRect(x0,y0,width,height,radius,color);
со скругленными краями
Прямоугольник          Display.fillRoundRect(x0,y0,width,height,radius,color);
со скругленными краями
Курсок в координаты    Display.setCursor(x,y);
Цвет текста            Display.setTextColor(color);
Незнаю                 Display.setTextColor(color,bg);
Размер текста          Display.setTextSize(size);
*/

void setup()
{
  Display.Setup();
  Display.Clear();
}

void loop()
{
  Display.setTextColor(1);
  Display.setCursor(50,5);
  Display.print("Jeka_tm");
  Display.Update();
  Display.drawRoundRect(48,1,45,15 ,3,255);
  Display.fillCircle(70,40,22,1);
  Display.setCursor(50,35);
  Display.setTextColor(0);
  Display.print("Arduino");
  Display.drawChar(0,37,82,1,0,4);
  Display.drawChar(21,45,82,1,0,3);
  Display.drawChar(37,51,82,1,0,2);
  Display.drawLine(0,0,0,20,1);
  Display.drawTriangle(3,0,3,20,20,20,1);
    
  Display.Update();
}

xxoma
Offline
Зарегистрирован: 13.02.2014

Попробовал скомпилировать скетч, но вылазит ошибка:

In file included from /usr/share/arduino/libraries/Nokia1100_Library/Nokia2.cpp:3:0:
/usr/share/arduino/libraries/Nokia1100_Library/NokiaChars.h:7:29: error: variable ‘font’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

у меня компилируется. иде какой версии?

xxoma
Offline
Зарегистрирован: 13.02.2014

1.0.3. Попробую обновить.

fivist
Offline
Зарегистрирован: 30.01.2014

jeka_tm пишет:

пользуюсь такими. слева для 3.3В схемы. правая для 5В

Доброго дня! А можно подробную схему с деталями для 5-ти вольтового подключения?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

у меня 1.04 но это врядли. попробуйте следующее

в NokiaChars.h поменять строку

static unsigned char font[] PROGMEM = {

на

static const char font[] PROGMEM = {

слева направо: 3 резистора по 4.7-5.1К

далее 100ом регулирует яркость подсветки

далее стабилизатор AMS1117-3.3

xxoma
Offline
Зарегистрирован: 13.02.2014

Спасибо, поправил на const, скомпилировалось. Теперь следующая проблема, пытаюсь сделать шрифт крупнее:

Display.setTextSize(2);
Display.setCursor(0,0);
Display.print("Watt");
Display.Update();

Если выводить один символ то все хорошо, но если несколько, как в коде то символы налазят один на другой. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

не в курсе. я особо крупным шрифтом не баловался. но по идее должно все нормально работать. посмотрите либу каким образом  размер шрифта влияет на вывод

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

можете нарисовать любой шрифт сами любого размера и выводить. только надо посмотреть как интегрировать

я лично под конкретную задачу делаю шрифт если какие нибудь не подходят, так и графику

xxoma
Offline
Зарегистрирован: 13.02.2014

jeka_tm

Поделитесь файлом разводки под дисплей который вы выложили выше? Спасибо!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

какую именно?

xxoma
Offline
Зарегистрирован: 13.02.2014

LCD1 которая, мне главное разводку пинов к дисплею, а я ее уже под себя отредактирую. Кстати в какой программе делали? И еще, под 5В кроме питания и подсветки резисторы на сигнальные линии обязательные?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

резисторы обязательны. иначе дисплей сдохнет. в идеале делитель, но и так работает

программа: diptrace (бесплатная)

файл LCD_1202_3.3V

http://yadi.sk/d/CXjuENmaEEwun

xxoma
Offline
Зарегистрирован: 13.02.2014

Спасибо!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

подключил 1110. ох и намучался. но все ради высокой контрастности. оно того стоило

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проверил контрастность при разном питании дисплея

Правильно питать от 1.8В и 2.5В. Но по другим тестам можно использовать 3.3В

решил проверить. разницы не заметил

по сравнению с 1202 надо инвертировать по вертикали, и инвертировать дисплей. Хорошо что это делается просто 2 строками кода 

Helgi000
Offline
Зарегистрирован: 11.03.2015

Можно попросить выложить печатку для 5 вольтовый версии

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

https://yadi.sk/d/CXjuENmaEEwun

папка дисплеи. там файл

LCD_1202_3.3V

внутри 2 версии 3.3В и одна 5В

vingor
Offline
Зарегистрирован: 25.05.2014

Ребята помогите с дисплеем нокиа 1202 спаял плату под 5 вольт с делителями. Использую библиотеку PCF8814 скачанную в этой ветке.

Но есть проблема все отображается зеркально

vingor
Offline
Зарегистрирован: 25.05.2014

Кто знает как инвертировать изображение?

На этом дембилишном форуме нет поиска (((

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

vingor пишет:

Кто знает как инвертировать изображение?

На этом дембилишном форуме нет поиска (((

отключи халабуду, которая у тебя режет скрипты и увидишь в правом верхнем углу форму ввода поискового запроса

vingor
Offline
Зарегистрирован: 25.05.2014

Как инвертировать изображение на дисплее? Библиотека PCF8814!

xxoma
Offline
Зарегистрирован: 13.02.2014

https://github.com/igorok107/PCF8814/blob/master/PCF8814.cpp
Почитай описание функций, там руским языком в коментах описано.

vingor
Offline
Зарегистрирован: 25.05.2014

Да я уже читал я не знаю как ими воспользоваться поэтому и задаю вопрос!

 

vingor
Offline
Зарегистрирован: 25.05.2014
SendByte(CMD_LCD_MODE,0xA1); // Инвертировать экран по горизонтали

Ну видел я эту строчку, а куда ее прилепить в коде не знаю.

 

vingor
Offline
Зарегистрирован: 25.05.2014

Да не ужели трудно подсказать?

xxoma
Offline
Зарегистрирован: 13.02.2014

Так а зачем инвертировать? Поставьте чёрный фон и белый шрифт.

vingor
Offline
Зарегистрирован: 25.05.2014
SendByte(CMD_LCD_MODE,0xC0 ); отражаем по оси Y
SendByte(CMD_LCD_MODE,0xA0  ); отражаем по оси X

У меня зеркальная картинка уже разобрался сам.

Вот только по оси Х отражается а по У не хочет 

 

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

xxoma пишет:
Так а зачем инвертировать? Поставьте чёрный фон и белый шрифт.

у него зеркально отображается.

*можно в зеркало смотреть экран.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

vingor пишет:

SendByte(CMD_LCD_MODE,0xC0 ); отражаем по оси Y
SendByte(CMD_LCD_MODE,0xA0  ); отражаем по оси X

У меня зеркальная картинка уже разобрался сам.

Вот только по оси Х отражается а по У не хочет 

ага. у меня тоже не получилось сразу обе оси инвертировать. только одна работает. перебирал все возможные коды. тут либо диплей развернуть и учитывать ориентацию дисплея, либо инвертировать по одной оси, а инвертирование по другой делать программно. я так в пульте делал, по другому дисплей было не впихнуть, но оно того не стоит, лучше или просто развернуть или другой дисплей. тот же 1110 вроде подддерживает, и контрастность хорошая? но паять его тяжело

vingor
Offline
Зарегистрирован: 25.05.2014
Lcd.Print("Привет");

Команда печатает текст а как вывести переменную ?

antonio2282
Offline
Зарегистрирован: 28.10.2015
void setup() { 
  Lcd.Init();
  Lcd.Mirror(0, 0);
  Lcd.Contrast(12);

устанавливаешь в  Lcd.Mirror(1, 1); и переворачиваешь как хочешь

 

 
alecksis
alecksis аватар
Offline
Зарегистрирован: 13.10.2017


У Вас ошибочка. В коде сначала должна идти команда SetXAddr3 . А затем SetXAddr4


#define SetXAddr4  0x00
#define SetXAddr3  0x10

void LCD1202::Update(){
  for(byte p = 0; p < 9; p++){
    SendByte(LCD_C, SetYAddr| p); 
    SendByte(LCD_C, SetXAddr4);
    SendByte(LCD_C, SetXAddr3);

    for(byte col=0; col < LCD_X; col++){
      SendByte(LCD_D, LCD_RAM[(LCD_X * p) + col]);
    }
  }
}