Цифровой указатель уровня топливо в баке

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

у етого Rotax слабоватый стоит.... нужна лицензия пилота.... нужно воздПространство не как в РФ...
...а на велосипеде - по партизански - приехал , полетал , съ...лся
( умещается в WV T-4 )

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

SU-27-16 пишет:

нужно воздПространство не как в РФ...

да, у вас пространства столько, что на ТУ-95 можно летать, хрен кто заметит.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

аха , их только под Рейкьвик-ом только и заметили :)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

SU-27-16 пишет:

у етого Rotax слабоватый стоит.... нужна лицензия пилота.... нужно воздПространство не как в РФ...
...а на велосипеде - по партизански - приехал , полетал , съ...лся
( умещается в WV T-4 )

лицензия не проблема. взлетка бетонная от старого военного аэродрома в идеальном состоянии буквально в 3 км от дома. хоть улетайся

Maverik
Offline
Зарегистрирован: 12.09.2012

хренасе вы нагородили из темы )))))

по порядку:

1) внедрять дополнительный датчик в бензобак блеать автомобиля-  это экстрим нетрадиционный совсем.  опасно.  проще перекалибровать родной датчик.  перекалибровка по принципу- берем отдельный бак бензина и заливаем по литру в свой бак, каждый раз замеряя показания датчика. по такому принципу калибруют все емкости нестандартной формы.

2) зерновозы в РФ в подавляющем большинстве случаев - обычные бортовые тентованные грузовики - камазы. взвешивают их обычно автовесами - машина заезжает на весы (с виду обычный участок дороги), и съезжает с них. вот и вся процедура. ничего под 45% не поднимается.

3) в настоящее время лицензия не проблема только для летательных аппаратов конструктивной массой менее 115 кг (СЛА) и только в летной зоне G. в противном случае - регистрация аппарата, пилотская лицензия и еще хренова куча заморочек.  тему знаю т.к. летаю на параплане.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Maverik пишет:

хренасе вы нагородили из темы )))))

по порядку:

1) внедрять дополнительный датчик в бензобак блеать автомобиля-  это экстрим нетрадиционный совсем.  опасно.  проще перекалибровать родной датчик.  перекалибровка по принципу- берем отдельный бак бензина и заливаем по литру в свой бак, каждый раз замеряя показания датчика. по такому принципу калибруют все емкости нестандартной формы.

2) зерновозы в РФ в подавляющем большинстве случаев - обычные бортовые тентованные грузовики - камазы. взвешивают их обычно автовесами - машина заезжает на весы (с виду обычный участок дороги), и съезжает с них. вот и вся процедура. ничего под 45% не поднимается.

3) в настоящее время лицензия не проблема только для летательных аппаратов конструктивной массой менее 115 кг (СЛА) и только в летной зоне G. в противном случае - регистрация аппарата, пилотская лицензия и еще хренова куча заморочек.  тему знаю т.к. летаю на параплане.

1. мы в общем то об этом же

2. да начхать что там в РФ

3. смотри пункт второй!

Logik
Offline
Зарегистрирован: 05.08.2014

Выполз с моря, и по дороге на шашлык заглянул в тему. Давно так не ржал. Самолеты, большегрузы, ВПП... Я воще датчик в бензобак лодки хотел. Аж неудобно полет мысли прерывать ;D 

step962
Offline
Зарегистрирован: 23.05.2011

Logik пишет:

Выполз с моря, и по дороге на шашлык заглянул в тему. Давно так не ржал. Самолеты, большегрузы, ВПП... Я воще датчик в бензобак лодки хотел. Аж неудобно полет мысли прерывать ;D 

Ну а что ж вы хотели-то? Без руководящей и направляющей роли топик-стартера в любой теме начинается разброд и шатания. Брейншторм, панимаш...

mrbin
Offline
Зарегистрирован: 01.02.2015

Посмотрите пожалуйста

#include <EEPROM.h>
#include <SPI.h>
#include <Wire.h>

#include <Adafruit_GFX.h> // Скачанная библиотека для дисплея.
#include <Adafruit_SSD1306.h> // Скачанная библиотека для дисплея. https://yadi.sk/d/9F_uW1wIZUDna

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);



// переменные для хранения, кодов кнопок ИК пульта.
unsigned long znach_0;
unsigned long znach_1;
unsigned long znach_2;
unsigned long znach_3;
unsigned long znach_4;
unsigned long znach_5;
unsigned long znach_6;
unsigned long znach_7;
unsigned long znach_8;
unsigned long znach_9;
unsigned long znach_10;


// для переключения, и "блокировки / разблокировки".
int Switch_Lock;  
// Кнопка подключена к Pin №2.
const int buttonPin = A0;   
#define pot A1
   


// the number of the LED pins
const int ledPin = 13;      


void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  pinMode(pot, INPUT);
  pinMode(ledPin, OUTPUT);
  
 

  // при включении Arduino, читаем из энергонезависимой памяти
  // EEPROM, читаем данные с 1 по 5 ячейках,
  // собираем их, и записываем в переменную  "ir_code_1".
  { 
     znach_0 = EEPROM.read(0); //1
  }
  {
     znach_1 = EEPROM.read(1); //2
  }
  {
     znach_2= EEPROM.read(2); //3
  }
  {
     znach_3= EEPROM.read(3);//4 
  }
  {
     znach_4= EEPROM.read(4); //5
  }
  {
     znach_5= EEPROM.read(5); //6 
  }
  {
     znach_6= EEPROM.read(6); //7
  }
  {
     znach_7= EEPROM.read(7);//8 
  }
  {
     znach_8= EEPROM.read(8);//9 
  }
  {
     znach_9 = EEPROM.read(9);//10 
  }
 {
     znach_10 = EEPROM.read(10);//11 
  }
  
  
    }
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////// 

void loop(){
  
int val = analogRead(pot) / 4;




  // если кнопка нажата.
  if (digitalRead(buttonPin) == HIGH)
  { 
    // прибавляем с каждым нажатием, к Switch_Lock +1.
    Switch_Lock = Switch_Lock + 1;

    // когда дойдём до 56. сбросимся обратно на 0,
    if (Switch_Lock==60)Switch_Lock=0; 
    //Serial.println(Switch_Lock);
    delay(500); // защита от дребезга кнопки. 
  }
 
 

////////////////////////////////////////////////////////////////
   // только когда, переключатель == 1. 
   if (Switch_Lock==1)
   {
     
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(30,30); 

      display.println("CLEAR" );
      display.display();
     
}
   

    
    
     if (Switch_Lock==2)
    {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      digitalWrite(13, LOW); 
      znach_0=val; 
      EEPROM.write(0, znach_0 );
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("00"); 
      display.display();
     
    }
    
    if (Switch_Lock==3)
    {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_1=val; 
      EEPROM.write(1, znach_1 ); 
      display.clearDisplay(); 
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("01"); 
      display.display();  
      
     }
     if (Switch_Lock==4)
     {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_2=val; 
      EEPROM.write(2, znach_2); 
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("02"); 
      display.display();  
      
     
      }
      if (Switch_Lock==5)
      {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_3=val; 
      EEPROM.write(3, znach_3 );
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("03"); 
      display.display();  
      
      }
       // только когда, переключатель == 1. 
    if (Switch_Lock==6)
    {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_4=val; 
      EEPROM.write(4, znach_4 );
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("04"); 
      display.display();   
    
    }
    if (Switch_Lock==7)
    {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_5=val; 
      EEPROM.write(5, znach_5 );
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("05"); 
      display.display();   
      
     }
     if (Switch_Lock==8)
     {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_6=val; 
      EEPROM.write(6, znach_6); 
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("06"); 
      display.display();  
     
      }
      if (Switch_Lock==9)
      {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_7=val; 
      EEPROM.write(7, znach_7 ); 
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("07"); 
      display.display();  
     
      }
       // только когда, переключатель == 1. 
    if (Switch_Lock==10)
    {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_8=val; 
      EEPROM.write(8, znach_8 );
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("08"); 
      display.display();  
      
    }
    if (Switch_Lock==11)
    {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_9=val; 
      EEPROM.write(9, znach_9 ); 
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("09"); 
      display.display();  
      
     }
     if (Switch_Lock==12)
     {  
      // записываем "код кнопки ИК пульта" в "ir_code_1"
      znach_10=val; 
      EEPROM.write(10, znach_10);
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(50,30); 
      display.println("10"); 
      display.display();  
      
      }
    
    
    ////////////////////////////////////////////////////////
    // только когда, переключатель == 0. 
    if (Switch_Lock==0)
    {
    if (val==znach_0) 
     {
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("00"); 
      display.display();   

     }
     if(val>znach_0 &&val <=znach_1)
    {  
      display.clearDisplay();
      display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("01"); 
      display.display();   
     }
     if(val>znach_1 &&val <=znach_2)
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("02"); 
      display.display();   
     }
     if(val>znach_2 &&val <=znach_3) 
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("03"); 
      display.display();   
     }
      if(val>znach_3 &&val <=znach_4)
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("04"); 
      display.display();   
     }
     if(val>znach_4 &&val <=znach_5)
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("05"); 
      display.display();   
     }
     if(val>znach_5 &&val <=znach_6) 
    {
      display.clearDisplay();
    display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("06"); 
      display.display();     
      
     }
      if(val>znach_6 &&val <=znach_7)
    {
      display.clearDisplay();
    display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("07"); 
      display.display();     
     
     }
     if(val>znach_7 &&val <=znach_8)
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("08"); 
      display.display();    
     
     }
     if(val>znach_8 &&val <=znach_9) 
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("09"); 
      display.display();   
     }
      if(val>znach_9 &&val <=znach_10)
    {  
      display.clearDisplay();
     display.setTextColor(WHITE); 
      display.setTextSize(3); 
      display.setCursor(45,30); 
      display.println("10"); 
      display.display();    
     }
   }

,такой код для бакомера пойдет,сначала запоминаем значения потом сравниваем,или как то по другому можно?

Radjah
Offline
Зарегистрирован: 06.08.2014

Подумай, как уменьшить размер кода с помощью функций.

nevkon
Offline
Зарегистрирован: 20.01.2015

Зачем столько раз повторять одно и то же?

 
378       display.clearDisplay();
379      display.setTextColor(WHITE);
380       display.setTextSize(3);
381       display.setCursor(45,30);
383       display.display();   

вынести за пределы if

mrbin
Offline
Зарегистрирован: 01.02.2015

Да уменьшить надо,много места занимает

mrbin
Offline
Зарегистрирован: 01.02.2015

Ну а так подойдет для бакометра? ну еще можно зделать 28 значений с шагом два литра,потом первое и второе делить пополам,правильно мыслю? только не соображу как это сделать

mrbin
Offline
Зарегистрирован: 01.02.2015

если все вынести то получается что попало,очистить дисплей,и видимость символов обязательно должны быть в if