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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    137

    По умолчанию Re: Бортовой компьютер мотоцикла

    Сегодня убил пол дня на освоение OLED дисплея, проблема заключалась в обновлении дисплея... если при обновлении каждый раз делать reset функцией из библиотеки - то он начинал противно мигать.
    Спустя некоторые время, присмотрелся к стандартному примеру, оказалось на пример, что бы после цифры 1 написать 2, перед выводом 2, "печатаем" на дисплее 1 в черном цвете.

    Вот-то, что успел сделать, это самый главный "дисплей" при включении он будет всегда первым.
    с лева на право - индикатор включенной передачи, температура за бортом, уровень топлива.
    Пока коряво ... прогресс бар не правильно обновляется на уменьшение, под температурой будет снежинка при минусе ...

    http://youtu.be/smmmO8h7gsM

    PHP код:
    #include <SPI.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h> 
    #include <Adafruit_SSD1306.h> 


    Adafruit_SSD1306 display(4); //OLED_RESET

    #define LINE 20 // отступ линии от левого края
    #define W_PRBAR 15 // ширина элемента прогресс бара

    static const unsigned char PROGMEM logo16_glcd_bmp[] =
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,
      
    B11111111B11111111,  
      
    B11111111B11111111,};

    int temp[3];

    void setup(){           
      
    display.begin(SSD1306_SWITCHCAPVCC0x3C); 
      
    display.clearDisplay(); // Очистить буфер.
      
    display.setTextColor(WHITE); // Цвет текста.
      
    _display_add_fuel(70);
      
    display.display();
    }

    void loop() {
     
    _display_add_temp(random(-4045));
     
    _display_add_gear(random(05));
     
    _display_add_fuel(random(070)); 
     
    delay(2000);
    }

    int _display_add_fuel(int a){ //,display.height()display.width()

      
    if (temp[0]){
        for (
    int f=0faf+=5) {
        
    display.drawBitmap(display.width() - W_PRBARlogo16_glcd_bmpW_PRBAR4BLACK);
       
    display.display();
      }
      }
      
      for (
    int f=0faf+=5) {
      
    display.drawBitmap(display.width() - W_PRBARdisplay.height() - logo16_glcd_bmpW_PRBAR4WHITE);
      }
      
    display.drawLine(display.width() - LINEdisplay.height(),display.width() - LINE 0WHITE); // линия
      
    display.display();
      
    temp[0] = a;
     
    }

    int _display_add_temp(int b){
      
    display.setTextSize(2);
      
    display.setTextColor(BLACK);
      
    display.setCursor(50,0);
      
    display.println(temp[1]);  
      
    display.display();
      
    display.setTextColor(WHITE);
      
    display.setCursor(50,0);
      
    display.println(b);
      
    temp[1] = b;
      
    display.display();
    }

    int _display_add_gear(int c){
      
    display.setTextSize(8);
      
    display.setTextColor(BLACK);
      
    display.setCursor(0,0);
      
    display.println(temp[2]);
      
    display.display();
      
    display.setTextColor(WHITE);
      
    display.setCursor(0,0);
      
    display.println(c);
      
    temp[2] = c;
      
    display.display();  

    Последний раз редактировалось Oleg_33; 02.02.2015 в 00:14.

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

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

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

Ваши права

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