Показано с 1 по 10 из 55

Тема: Активная мишень "Орудийный дот"

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #17
    Танко-модельное сообщество "Т-34" (г. Минск) Аватар для Zloyuzver
    Регистрация
    14.03.2016
    Адрес
    Минск, Беларусь
    Сообщений
    385
    Вес репутации
    0

    По умолчанию

    А вот немного кода для работы с индикаторной панелью:

    Для прокручиваемого (скроллируемого) текста:
    Код:
    // Вывод скроллируемого текста на дисплей
    
    void SCROLL_TEXT (String tape) 
    {
    for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) {
    
    
        matrix.fillScreen(LOW);  // Задание цвета фона экрана (вне букв) LOW - темный, HIGH - светлый
        matrix.setTextSize(10);
        int letter = i / width;
        //int x = (matrix.width() - (tape.length() * width)) / 2;
        int x = (matrix.width() - 1) - i % width;
        int y = (matrix.height() - 8) / 2; // center the text vertically
    
    
        while ( x + width - spacer >= 0 && letter >= 0 ) {
          if ( letter < tape.length() ) {
            matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1); // Задание цветов вывода надписи.
                                                               // Первый параметр HIGH цвет символов
                                                               // Второй LOW цвет фона
                                                               // Для инверсии поменять HIGH на LOW
                                                               // и LOW на HIGH
          }
    
    
          letter--;
          x -= width;
        }
    
    
        matrix.write(); // Отправка на экран 
    
    
        delay(wait); 
        matrix.fillScreen(LOW);
        matrix.write(); // Отправка на экран 
      }  
    }
    Для статичного текста с центровкой:
    Код:
    // Вывод статического текста на дисплей
    
    void STATIC_TEXT (String tape) 
    {
    int x = (matrix.width() - (tape.length() * width)) / 2; //выравнивание по центру X
    int y = (matrix.height() - 8) / 2; //выравнивание по центру Y
    matrix.fillScreen(LOW);
    for ( int i = 0 ; i < tape.length(); i++ ) 
       {  
       int letter = i;// / width;
       //Serial.println(tape[letter]);
       matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1);  
       x += width; 
       }
    matrix.write(); // отправка данных на дисплей
    }
    Пример текста:



    UPD: Забыл сказать, что для минимизации и исключения отражений от стен при выстреле в помещении (ИК-диод на доте стоит достаточно мощный) будет использоваться переменный резистор на 1КОм, который обеспечит определённую подстройку под помещение.
    Последний раз редактировалось Zloyuzver; 25.06.2018 в 17:47.
    Любой полёт начинается с прыжка... или с пинка - кому как повезёт.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Курс валют предоставлен сайтом kurs.com.ru