Не работает LCD текстовый экран 16*2 МЭЛТ

Тема в разделе "Arduino & Shields", создана пользователем supin, 4 окт 2013.

  1. supin

    supin Нуб

    Подключил всё по инструкции,экран горит, но не выводит, хотя программа с миганием диода работает
     
  2. lerik2703

    lerik2703 Гик

    фото и скетч пожалуйста :rolleyes:
     
  3. supin

    supin Нуб

    Код (Text):
      // Подключаем стандартную библиотеку LiquidCrystal
        #include <LiquidCrystal.h>
       
        // Инициализируем объект-экран, передаём использованные
        // для подключения контакты на Arduino в порядке:
        // RS, E, DB5, DB6, DB7, DB8
        LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
       
        void setup()
        {
            // устанавливаем размер (количество столбцов и строк) экрана
            lcd.begin(16, 2);
            // печатаем первую строку
            lcd.print("Hello world!");
            // устанавливаем курсор в колонку 0, строку 1. То есть на
            // самом деле это вторая строка, т.к. нумерация начинается с нуля
            lcd.setCursor(0, 1);
            // печатаем вторую строку
            lcd.print("foo bar baz");
        }
       
        void loop()
        {
        }

     
    [​IMG]
     
  4. lerik2703

    lerik2703 Гик

    подключение правильное! попробуйте отключить подсветку экрана!
     
  5. supin

    supin Нуб

    Без подсветки экрана тоже не выводит
     
  6. atompost

    atompost Гик

    правильное то правильное но шина питания и массы разрывается в показанном месте :)
    Снимок2.jpg
    поэтому желтая перемычка висит в "воздухе"
     
    Последнее редактирование: 5 окт 2013
    Megakoteyka нравится это.
  7. supin

    supin Нуб

    Заработало!
     
  8. atompost

    atompost Гик

    Вот человеки, даже спасибо не сказали ;)
     
    Последнее редактирование: 5 окт 2013
  9. lerik2703

    lerik2703 Гик

    что-то я с просини на доску и внимания не обратил :oops:
     
  10. Megakoteyka

    Megakoteyka Оракул Модератор

    Весьма частые грабли :)
     
  11. lerik2703

    lerik2703 Гик

    у меня опыта с ними мало я больше паяльник люблю :D
     
  12. supin

    supin Нуб

    Спасибо!
     
  13. atompost

    atompost Гик

    ИМХО сместить ВСЮ схему на борде на 2 контакта вправо)))) Либо поставте перемычку, проводом папа-папа с правой шины питания на левую.

    P.S сегодня вечером буду дома, не поленюсь разберу Breadboard, наделаю кучу фоток и сделаю гайд "Как на наступать на грабли с Breadboard при подключении ЖК экрана"
     
    Последнее редактирование: 3 апр 2014
    rav_75 и Megakoteyka нравится это.
  14. atompost

    atompost Гик

  15. Airbus

    Airbus Радиохулиган Модератор

    Последнее редактирование: 12 апр 2014
  16. пойдет, только русского языка на нем не будет.
     
  17. Airbus

    Airbus Радиохулиган Модератор

    А с Русским какой взять?
     
  18. а их большей выбор?
    если нужен русский, придется брать паяльник и менять экран на подобный но с зашитыми русскими шрифтами.
    у них в маркировке на конце CT, если что.
     
    Airbus нравится это.
  19. Airbus

    Airbus Радиохулиган Модератор

    Ок!Спасибо
     
  20. Артёмka

    Артёмka Нуб

    Всем привет) Парни, помогите найти ошибку)) Чет вторая строка не включается) Здесь так потестить, два символа вывести на свои позиции на экране 0x85 и 0xC7. На правильность аппаратного подключения миллион раз проверил =))) КСТАТИ почему-то вместо 0xC7 выводит китайский символ))
    ЧТО ВЫВОДИТ: a'кит.сим'j прям так на одной строке) хотя по адресам a и j должны быть на разных строках, а иероглиф вообще адресом должен быть))))))))) ЖКИ к atmega8 подключал

    #include <avr/io.h>
    #include <util/delay.h>
    #define F_CPU 8000000L

    #define data PORTD
    #define com PORTC

    #define data_cl data&=0b00000000

    #define line_rs_dt PORTC|=0b00000001
    #define line_rs_cm PORTC &=~(0b00000001)

    #define line_rw_rd PORTC|=0b00000010
    #define line_rw_wr PORTC&=~(0b00000010)

    #define line_e_st PORTC|=0b00000100
    #define line_e_fn PORTC&=~(0b00000100)

    #define fifty _delay_us(50)
    #define oneh _delay_us(100)

    void uniz_port (void)
    { data=0b00000000;
    DDRD=0b11111111;

    com=0b00000000;
    DDRC=0b11111111;
    }

    void wr_com(unsigned char c)
    {

    com|=(line_rw_wr)|(line_rs_cm);
    line_e_st;
    oneh;
    data=c;
    line_e_fn;
    oneh;
    }

    void wr_dt (unsigned char d)
    {

    com|=(line_rw_wr)|(line_rs_dt);
    line_e_st;
    oneh;
    data=d;
    line_e_fn;
    oneh;
    }

    void uniz_lcd (void)
    {
    wr_com(0x08);
    for(int i=0;i<3;i++)
    {
    wr_com (0x38);
    oneh;
    }
    wr_com (0b00000001);
    fifty;
    wr_com (0b00000110);
    fifty;
    wr_com (0b00001100);
    fifty;
    }


    int main(void)
    {
    uniz_port ();
    uniz_lcd();

    wr_com(0x85);
    wr_dt ('a');

    wr_com(0xC7);
    wr_dt ('j');

    while(1)
    {
    }
    }