LCD Motorola T190 (T191)

Тема в разделе "Arduino & Shields", создана пользователем big-vl, 13 май 2014.

  1. Mitrandir

    Mitrandir Гуру

  2. big-vl

    big-vl Нуб

    Код (Text):
    #include "Wire.h";

    int IO_ADDR = 72;
    int led = 13;
    int i;

    void setup() {
    Serial.begin(9600);

    Wire.begin();
    pinMode(led, OUTPUT);
    }

    void loop() {
      // put your main code here, to run repeatedly:
    Wire.beginTransmission(IO_ADDR);
    delay(500);
      Wire.write(0x78);
      Wire.write(0x00);
      Wire.write(0x31);
      Wire.write(0x14);
      Wire.write(0x06);
      Wire.write(0x30);
      Wire.write(0x11);
      Wire.write(0x05);
      Wire.write(0x31);
      Wire.write(0x9A); //контраст
      Wire.write(0x0C);
      Wire.write(0x30);
      Wire.write(0x0C);
      Wire.write(0x40);
      Wire.write(0x80);
      Wire.endTransmission();
    Wire.beginTransmission(IO_ADDR);
    Wire.write(0x78);
      Wire.write(0x40);
      for(i = 0; i < 98; i++)
      {
      Wire.write(0x00);
      }
      Wire.endTransmission();

      digitalWrite(led, HIGH);  // turn the LED on (HIGH is the voltage level)
      delay(1000);              // wait for a second
      digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);              // wait for a second

    }
    дисплей молчит, лампочка моргает. :(
     
  3. Mitrandir

    Mitrandir Гуру

    Инициализацию лучше в сетап вынести
     
  4. big-vl

    big-vl Нуб

    Перенес но ничего не изменилось, как узнать что дисплей про инициализирован?
    Он должен как то цветом поменяться?
     
  5. big-vl

    big-vl Нуб

  6. Bird7610

    Bird7610 Нуб

    Вот если еще актуально мой проект для Ардуинки.
     

    Вложения:

  7. Bird7610

    Bird7610 Нуб

    Подскажите как считать из дисплея данные.
     
  8. vvr

    vvr Инженерище

    Из дисплея данные можно считать только глазами :D
     
  9. Bird7610

    Bird7610 Нуб

    :D Хороший вариант
     
  10. ISVLabs

    ISVLabs Нуб

    для тех новичков, которые сюда забретут с гугля (типа меня), - работа над ошибками, не замеченными в предыдущих сообщениях ;)

    1. i2c адрес дисплея - 0x3c, и надо убрать байт 0x78 в начале каждого сеанса вывода - он лишний.

    2. в стандартной библиотеке Wire размер буфера вывода (и ввода тоже) всего 32 байта - надо исправить на:

    в файле %Arduino%\libraries\Wire\Wire.h строка 28
    #define BUFFER_LENGTH 128

    в файле %Arduino%\libraries\Wire\utility\twi.h строка 32
    #define TWI_BUFFER_LENGTH 128

    3. добавить перед инициализацией (которая должна делаться в setup() ) процедуру сброса:

    pinMode(nRST, OUTPUT);
    digitalWrite(nRST,0);
    delay(5);
    digitalWrite(nRST,1);

    ну и в блоке переменных не забыть объявить, куда подключен reset дисплея (через резистор 3-5 кОм). например, у меня это пин D3:
    const int nRST = 3;