Страница 12 из 12 ПерваяПервая ... 26789101112
Показано с 111 по 118 из 118
  1. #111
    Новичок
    Регистрация
    16.04.2018
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Уважаемые, не могли бы Вы объяснить новичку возможно ли подключение дисплея l2f50126 к arduino due и каким образом, или подсказать где копать?

  2. #112
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Я думаю что с подключением нет проблем, но с совместимостью библиотеки нужно проверить
    Попробуйте скомпилировать сначало для UNO , если все получится, потом компилуруйте для DUE

  3. #113
    Новичок
    Регистрация
    16.04.2018
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    В соответствии с предложеной Вами схемой распаял на макетке питание подсветки дисплея, на выходе получаю 1,9В. И сильный нагрев транзистора. Что может быть не так?

  4. #114
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Параметры дросселя не те, что нужны
    Последний раз редактировалось Chip; 19.04.2018 в 09:56.

  5. #115
    Новичок
    Регистрация
    29.06.2018
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Уважаемый, Chip, подскажите, пожалуйста, в чём может быть причина такого поведения:
    Дисплей отображает то, что от него требуется только первые полсекунды (примерно) после включения Ардуино, после этого только подсветка работает...?!
    Т.е. изображение появляется при запуске и сразу исчезает.

  6. #116
    Новичок
    Регистрация
    29.06.2018
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Методом "тыка" проблема разрешилась: подсоединил провод питания от 3.3V (идущий к 6-му и 8-му пинам дисплея) к 5V и картинка перестала исчезать. Видимо, не хватало питания.

  7. #117
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Вот и отлично!

  8. #118
    Новичок
    Регистрация
    11.06.2021
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Цитата Сообщение от Chip Посмотреть сообщение
    Копать нужно в эту сторону http://compcar.ru/forum/showthread.p...l=1#post110401
    http://compcar.ru/forum/showthread.p...l=1#post110395
    http://compcar.ru/forum/showthread.p...ll=1#post91484


    Вытащил из либы функции, с которыми нужно разбираться
    PHP код:
    uint8_t S65Display::drawChar(uint8_t xuint8_t ychar cuint8_t sizeuint16_t coloruint16_t bg_color

      
    uint8_t rethw// h,w sind Laufvariablen für Höhe und Weite 
    #if FONT_WIDTH <= 8 
      
    uint8_t data
    #elif FONT_WIDTH <= 16 
      
    uint16_t data
    #elif FONT_WIDTH <= 32 
      
    uint32_t data
    #endif 
      
    uint8_t ijwidthheight
      const 
    prog_uint8_t *ptr, *ptr_tmp

      
    i      = (uint8_t)c
    #if FONT_WIDTH <= 8 
      
    ptr    = &font_PGM[(i-FONT_START)*(8*FONT_HEIGHT/8)]; 
    #elif FONT_WIDTH <= 16 
      
    ptr    = &font_PGM[(i-FONT_START)*(16*FONT_HEIGHT/8)]; 
    #elif FONT_WIDTH <= 32 
      
    ptr    = &font_PGM[(i-FONT_START)*(32*FONT_HEIGHT/8)]; 
    #endif 
      
    width  FONT_WIDTH
      
    height FONT_HEIGHT

      if(
    size <= 1
      { 
        
    ret x+width
        if(
    ret S65_WIDTH
        { 
          return 
    S65_WIDTH+1
        } 

        
    setArea(xy, (x+width-1), (y+height-1)); 

        
    s65_drawStart(); 
        
    ptr_tmp ptr
        for(
    w=widthw!=0w--) //  
        

        
    ptr    ptr_tmp
        
    //Serial.print("w="); Serial.println(w); delay(50); 
        
    for(hheighth!=0h--)  
        { 
        
    #if FONT_WIDTH <= 8 
            
    data pgm_read_byte(ptr); ptr+=1
        
    #elif FONT_WIDTH <= 16 
            
    data pgm_read_word(ptr); ptr+=2
        
    #elif FONT_WIDTH <= 32 
            
    data pgm_read_dword(ptr); ptr+=4
        
    #endif 
         
            
    if(CHECK_BIT(data,w)) // hier Sprung in die Funktion CHECK_BIT(var,pos)  
                                  // die ist in S6%Dislay.h angelegt 
                                  // und sieht so aus: 
                                  // #define CHECK_BIT(var,pos) ((var & (1 << pos)) == (1 << pos)) 

                

                
    s65_draw(color); 
                } 
                else 
                { 
                
    s65_draw(bg_color); 
                } 
            } 
        } 
        
    s65_drawStop(); 
      } 
      else 
      { 
        
    ret x+(width*size); 
        if(
    ret S65_WIDTH
        { 
          return 
    S65_WIDTH+1
        } 

        
    s65_setArea(xy, (x+(width*size)-1), (y+(height*size)-1)); 

        
    s65_drawStart(); 
          
    ptr_tmp ptr
        for(
    w=widthw!=0w--) //  
        

        
    ptr    ptr_tmp
        
    //Serial.print("w="); Serial.println(w); delay(50); 
        
    for(hheighth!=0h--) 
        { 
        
    #if FONT_WIDTH <= 8 
          
    data pgm_read_byte(ptr); ptr+=1
        
    #elif FONT_WIDTH <= 16 
          
    data pgm_read_word(ptr); ptr+=2
        
    #elif FONT_WIDTH <= 32 
          
    data pgm_read_dword(ptr); ptr+=4
        
    #endif 
         
         
              
    if(CHECK_BIT(data,w)) 
              { 
                for(
    j=sizej!=0j--) 
                { 
                  
    s65_draw(color); 
                } 
              } 
              else 
              { 
                for(
    j=sizej!=0j--) 
                { 
                  
    s65_draw(bg_color); 
                } 
                } 
                } 
              
        } 
        
    s65_drawStop(); 
      } 

      return 
    ret



    uint8_t S65Display::drawText(uint8_t xuint8_t ychar *suint8_t sizeuint16_t coloruint16_t bg_color

      while(*
    != 0
      { 
        
    drawChar(xy, *s++, sizecolorbg_color); 
        if(
    S65_WIDTH
        { 
          break; 
        } 
      } 

      return 
    x

    Я бы поправил, но без дисплея это просто не возможно
    Хоть тема старая, но напишу решение, в этом коде после
    i = (uint8_t)c;
    добавляем
    ret = x;
    if ((i!=208) && (i!=209)) {
    и закрываем скобку перед
    }
    return ret;
    Последний раз редактировалось Signal; 11.06.2021 в 12:33.

Страница 12 из 12 ПерваяПервая ... 26789101112

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •