Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 15 из 15
  1. #11
    Пользователь
    Регистрация
    29.11.2009
    Возраст
    50
    Сообщений
    65
    Вес репутации
    206

    По умолчанию Re: Информационная панель на LCD

    Вот на три датчика,но можно сделать и больше ,не тяжело разобраться.
    Но есть такой вопросик если кто знает помогите.
    Как сделать так если на входах нет сигнала программа переключалась к примеру к указанию температуры или время,ну во общем нет сигнала прога выбирала место указонное в коде,есть сигнал показывает информацию с датчика.Или если я верно понял надо обьединить два Скетча
    Последний раз редактировалось esau; 27.04.2010 в 04:37.
    D945GCLF2,160gb,2gb-ram,8" TFT LCDTouch+2lcd7" ,Bt,WiFi,SILABS,OBD2,DVBT, ,Audioson,Hertz,Fokal

  2. #12
    Пользователь
    Регистрация
    29.11.2009
    Возраст
    50
    Сообщений
    65
    Вес репутации
    206

    По умолчанию Re: Информационная панель на LCD

    Просьба к Админу открыть подфорум "Программирование Arduino для начинающих" так не будем засорять форум,и думаю в таком под отделе и научится быстрее на вопросах и примерах других участников CompCarовцев.
    Да и для поисковиков полезно
    D945GCLF2,160gb,2gb-ram,8" TFT LCDTouch+2lcd7" ,Bt,WiFi,SILABS,OBD2,DVBT, ,Audioson,Hertz,Fokal

  3. #13
    Пользователь
    Регистрация
    29.11.2009
    Возраст
    50
    Сообщений
    65
    Вес репутации
    206

    По умолчанию Re: Информационная панель на LCD

    вот что намутил за две недели, пока сыровато,но две недели назад я даже не предстовлял что такое ардуино.Купил ардуино мега так как для опытов мне больше подходит да и ардуино 328 входов на порядок меньше






    PHP код:
    #include <LiquidCrystal.h>
    #include <DallasTemperature.h>    
    #include <OneWire.h>
    #include <WProgram.h>
    #include <Wire.h>
    #include <DS1307.h>

    #define temp 10      //выстовляем вход DS18B20  ********************************************************************************** 


    OneWire oneWire(temp);                
    DallasTemperature sensors(&oneWire);
    float tempext 0;
    LiquidCrystal lcd(12115432);  // Прописываем для ЖКИ 
    int rtc[7];
    int button 31;   // указываем на какой выход подключена кнопка     *******************************************************************
    int buttonValue 0;  // запомненное значение логического выключателя
    int buttonPush 0;  // указывает нажата ли в данный момент кнопка
    int buttonState 0// текущее значение кнопки взятое со входа ардуино

    void setup()
    {
      
    pinMode(buttonINPUT);  // кнопка как вход
      
    sensors.begin();    // Запускаем DS18B20
     

    // устанавливаем время
    /*
      RTC.stop();
      RTC.set(DS1307_SEC,0);
      RTC.set(DS1307_MIN,26);
      RTC.set(DS1307_HR,15);
      RTC.set(DS1307_DOW,6);
      RTC.set(DS1307_DATE,29);
      RTC.set(DS1307_MTH,11);
      RTC.set(DS1307_YR,9);
      RTC.start();
    */
      
      
    lcd.begin(204);     // Запускаем ЖКИ и указываем сколько строк
      
    pinMode(22INPUT);     //Дверь пасажир
    pinMode(24INPUT);     //Дверь водила
    pinMode(26INPUT);     //Дверь зад прав
    pinMode(28INPUT);     //Дверь  зад лев
    pinMode(30INPUT);     //Багажник
    pinMode(32INPUT);     // нет Зарядки
    pinMode(34INPUT);     //Ручник 
    pinMode(36INPUT);     //Давление масла
    pinMode(38INPUT);     //уровень в радиаторе
    pinMode(40INPUT);     //тормоза изношенны
      
      
      
    lcd.print("BUONGIORNO"); // Приветствие
      
    delay(1000);
      
    lcd.clear();
      
     
    }

    chardayOfWeek[] = {"xxx""Lun""Mar""Mer""Gio""Ven""Sab""Dom"};    // Дни недели

    void loop()
    {
      
    clock();
      
    knopki();
      
    signal();
    }




    //********************************************              ЧАСЫ И ТЕРМОМЕТР              **************************************************


    void clock()

    {
      
    sensors.requestTemperatures();                              
      
    tempext=sensors.getTempCByIndex(0);                     
      
      
      
      
      
      
    RTC.get(rtc,true);

      
    lcd.setCursor(0,0);
      
    //lcd.print(millis());
      
    printDigits(rtc[2],':');
      
    printDigits(rtc[1],' ');
      
    //printDigits(rtc[0],' ');

      
    lcd.print(dayOfWeek[rtc[3]]);

      
    lcd.setCursor(10,0);
      
    printDigits(rtc[4],'/');
      
    printDigits(rtc[5],'/');
      
    printDigits(rtc[6],' ');
      
             
    lcd.setCursor(41);
             
    lcd.print(tempext);
             
    lcd.setCursor(01);
             
    lcd.print("Tem:");
             
    //lcd.setCursor(19, 1);
             //lcd.print("*");

      
    if(tempext 3)                // Указываем температуру " ЛЁД НА ДОРОГЕ"
       
    {
      
    lcd.setCursor(03);
           
    lcd.print(" Pericolo Giacio ");   // Надпись которую хотим видеть на ЖКИ  " ЛЁД НА ДОРОГЕ"
           //tone(37, 550,3000);             // можем добавить звук
           
    delay(3000);
           
    lcd.setCursor(03);
           
    lcd.print("                    ");
           
           
           
      }

      
      
    delay(100);
    }

    void printDigits(int digitschar delimiter)
    {
      if(
    digits 10) {
        
    lcd.print('0');
      }
      
    lcd.print(digits,DEC);
      
    lcd.print(delimiter);
    }



    // **********************************************************  УПРавление КНОПКОЙ    *************************************************


    void knopki()
    {
     
       
    int delayTime 10;
      
      
    buttonState digitalRead (button);                             // читаем значение со входа

      
      
    if (buttonState == 0)                                           // если кнопка нажата...
      
    {
        
        
    buttonPush 1;                                               // ...ставим указатель что кнопка зажата
      
    }
      
      else if (
    buttonState == && buttonPush == 1)                   // .. если кнопка отпущена после того как нажата
      
    {
        
        if (
    buttonValue == 2buttonValue 0;                      // меняем значения на кнопке
        
    else                  buttonValue++;

        
    buttonPush 0;
      }

      
      if (
    buttonValue == 0)                                        // меняем 
     
     
     //                   ************************************* Вольтметр********************************* 
      
    {
      
    float voltage 5.0 3450.0 analogRead(0);  // читаем со входа для Arduinomega
      
    lcd.setCursor(02);
      
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
      
    lcd.setCursor(02);
      
    float realv voltage 19.3;
      
    lcd.setCursor(02);
      
    lcd.print(" Voltage: ");
      
    lcd.print(realv);
      
    lcd.print("v");
      
    delay(1000);
    }


      else if (
    buttonValue == 1)
      {
        
    lcd.setCursor(02);
        
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
        
        
    lcd.setCursor(02);                           // Здесь в планах зделать расход
        
    lcd.print(" 2Soobschenie");
        
      }
      else if (
    buttonValue == 2)
      {
        
    lcd.setCursor(02);
        
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
        
        
        
    lcd.setCursor(02);
        
    lcd.print(" 3Soobschenie");                    // Здесь в планах  зделать сколько оствлось проехать на оставшеймся топливе
        
      
    }

      
    delay(delayTime);
    }


    //              *********************************************** Сообщения*************************************************

    void signal()

      { 
                 if (
    digitalRead(22) == HIGH)
      {
          
    lcd.setCursor(03);
          
    lcd.print(" Porta ANT DX");            //Дверь пасажир
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
          

      }  
                 if (
    digitalRead(24) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Porta ANT LX");           //Дверь водила
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
          

      }
                  
                  if (
    digitalRead(26) == HIGH)
      { 
           
    lcd.setCursor(03);
           
    lcd.print(" Porta POST DX");         //Дверь зад прав
           
    delay(3000);
           
    lcd.setCursor(03);
           
    lcd.print("                    ");
      }
       
                if (
    digitalRead(28) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Porta POST LX");          //Дверь  зад лев
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
      
                if (
    digitalRead(30) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Porta Bagagliaio");       //Багажник
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
      
                if (
    digitalRead(32) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Non carica Batteria");    // нет Зарядки
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
                  if (
    digitalRead(34) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Freno Stazionamento");       //Ручник
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
              
              if (
    digitalRead(36) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Bassa pressione OLIO");    //Давление масла
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
              
              if (
    digitalRead(38) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Liquido Raffreddamento");     //уровень в радиаторе
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
            
            if (
    digitalRead(40) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Pastigli freno");     //тормоза изношенны
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    "); 
        
      }
      } 
    Последний раз редактировалось esau; 27.04.2010 в 04:54.
    D945GCLF2,160gb,2gb-ram,8" TFT LCDTouch+2lcd7" ,Bt,WiFi,SILABS,OBD2,DVBT, ,Audioson,Hertz,Fokal

  4. #14
    Пользователь Аватар для tores
    Регистрация
    08.07.2009
    Возраст
    44
    Сообщений
    50
    Вес репутации
    208

    По умолчанию Re: Информационная панель на LCD

    Цитата Сообщение от esau Посмотреть сообщение
    вот что намутил за две недели, пока сыровато,но две недели назад я даже не предстовлял что такое ардуино.Купил ардуино мега так как для опытов мне больше подходит да и ардуино 328 входов на порядок меньше






    PHP код:
    #include <LiquidCrystal.h>
    #include <DallasTemperature.h>    
    #include <OneWire.h>
    #include <WProgram.h>
    #include <Wire.h>
    #include <DS1307.h>

    #define temp 10      //выстовляем вход DS18B20  ********************************************************************************** 


    OneWire oneWire(temp);                
    DallasTemperature sensors(&oneWire);
    float tempext 0;
    LiquidCrystal lcd(12115432);  // Прописываем для ЖКИ 
    int rtc[7];
    int button 31;   // указываем на какой выход подключена кнопка     *******************************************************************
    int buttonValue 0;  // запомненное значение логического выключателя
    int buttonPush 0;  // указывает нажата ли в данный момент кнопка
    int buttonState 0// текущее значение кнопки взятое со входа ардуино

    void setup()
    {
      
    pinMode(buttonINPUT);  // кнопка как вход
      
    sensors.begin();    // Запускаем DS18B20
     

    // устанавливаем время
    /*
      RTC.stop();
      RTC.set(DS1307_SEC,0);
      RTC.set(DS1307_MIN,26);
      RTC.set(DS1307_HR,15);
      RTC.set(DS1307_DOW,6);
      RTC.set(DS1307_DATE,29);
      RTC.set(DS1307_MTH,11);
      RTC.set(DS1307_YR,9);
      RTC.start();
    */
      
      
    lcd.begin(204);     // Запускаем ЖКИ и указываем сколько строк
      
    pinMode(22INPUT);     //Дверь пасажир
    pinMode(24INPUT);     //Дверь водила
    pinMode(26INPUT);     //Дверь зад прав
    pinMode(28INPUT);     //Дверь  зад лев
    pinMode(30INPUT);     //Багажник
    pinMode(32INPUT);     // нет Зарядки
    pinMode(34INPUT);     //Ручник 
    pinMode(36INPUT);     //Давление масла
    pinMode(38INPUT);     //уровень в радиаторе
    pinMode(40INPUT);     //тормоза изношенны
      
      
      
    lcd.print("BUONGIORNO"); // Приветствие
      
    delay(1000);
      
    lcd.clear();
      
     
    }

    chardayOfWeek[] = {"xxx""Lun""Mar""Mer""Gio""Ven""Sab""Dom"};    // Дни недели

    void loop()
    {
      
    clock();
      
    knopki();
      
    signal();
    }




    //********************************************              ЧАСЫ И ТЕРМОМЕТР              **************************************************


    void clock()

    {
      
    sensors.requestTemperatures();                              
      
    tempext=sensors.getTempCByIndex(0);                     
      
      
      
      
      
      
    RTC.get(rtc,true);

      
    lcd.setCursor(0,0);
      
    //lcd.print(millis());
      
    printDigits(rtc[2],':');
      
    printDigits(rtc[1],' ');
      
    //printDigits(rtc[0],' ');

      
    lcd.print(dayOfWeek[rtc[3]]);

      
    lcd.setCursor(10,0);
      
    printDigits(rtc[4],'/');
      
    printDigits(rtc[5],'/');
      
    printDigits(rtc[6],' ');
      
             
    lcd.setCursor(41);
             
    lcd.print(tempext);
             
    lcd.setCursor(01);
             
    lcd.print("Tem:");
             
    //lcd.setCursor(19, 1);
             //lcd.print("*");

      
    if(tempext 3)                // Указываем температуру " ЛЁД НА ДОРОГЕ"
       
    {
      
    lcd.setCursor(03);
           
    lcd.print(" Pericolo Giacio ");   // Надпись которую хотим видеть на ЖКИ  " ЛЁД НА ДОРОГЕ"
           //tone(37, 550,3000);             // можем добавить звук
           
    delay(3000);
           
    lcd.setCursor(03);
           
    lcd.print("                    ");
           
           
           
      }

      
      
    delay(100);
    }

    void printDigits(int digitschar delimiter)
    {
      if(
    digits 10) {
        
    lcd.print('0');
      }
      
    lcd.print(digits,DEC);
      
    lcd.print(delimiter);
    }



    // **********************************************************  УПРавление КНОПКОЙ    *************************************************


    void knopki()
    {
     
       
    int delayTime 10;
      
      
    buttonState digitalRead (button);                             // читаем значение со входа

      
      
    if (buttonState == 0)                                           // если кнопка нажата...
      
    {
        
        
    buttonPush 1;                                               // ...ставим указатель что кнопка зажата
      
    }
      
      else if (
    buttonState == && buttonPush == 1)                   // .. если кнопка отпущена после того как нажата
      
    {
        
        if (
    buttonValue == 2buttonValue 0;                      // меняем значения на кнопке
        
    else                  buttonValue++;

        
    buttonPush 0;
      }

      
      if (
    buttonValue == 0)                                        // меняем 
     
     
     //                   ************************************* Вольтметр********************************* 
      
    {
      
    float voltage 5.0 3450.0 analogRead(0);  // читаем со входа для Arduinomega
      
    lcd.setCursor(02);
      
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
      
    lcd.setCursor(02);
      
    float realv voltage 19.3;
      
    lcd.setCursor(02);
      
    lcd.print(" Voltage: ");
      
    lcd.print(realv);
      
    lcd.print("v");
      
    delay(1000);
    }


      else if (
    buttonValue == 1)
      {
        
    lcd.setCursor(02);
        
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
        
        
    lcd.setCursor(02);                           // Здесь в планах зделать расход
        
    lcd.print(" 2Soobschenie");
        
      }
      else if (
    buttonValue == 2)
      {
        
    lcd.setCursor(02);
        
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
        
        
        
    lcd.setCursor(02);
        
    lcd.print(" 3Soobschenie");                    // Здесь в планах  зделать сколько оствлось проехать на оставшеймся топливе
        
      
    }

      
    delay(delayTime);
    }


    //              *********************************************** Сообщения*************************************************

    void signal()

      { 
                 if (
    digitalRead(22) == HIGH)
      {
          
    lcd.setCursor(03);
          
    lcd.print(" Porta ANT DX");            //Дверь пасажир
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
          

      }  
                 if (
    digitalRead(24) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Porta ANT LX");           //Дверь водила
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
          

      }
                  
                  if (
    digitalRead(26) == HIGH)
      { 
           
    lcd.setCursor(03);
           
    lcd.print(" Porta POST DX");         //Дверь зад прав
           
    delay(3000);
           
    lcd.setCursor(03);
           
    lcd.print("                    ");
      }
       
                if (
    digitalRead(28) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Porta POST LX");          //Дверь  зад лев
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
      
                if (
    digitalRead(30) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Porta Bagagliaio");       //Багажник
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
      
                if (
    digitalRead(32) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Non carica Batteria");    // нет Зарядки
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
                  if (
    digitalRead(34) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Freno Stazionamento");       //Ручник
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
              
              if (
    digitalRead(36) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print(" Bassa pressione OLIO");    //Давление масла
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
              
              if (
    digitalRead(38) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Liquido Raffreddamento");     //уровень в радиаторе
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    ");
      }
            
            if (
    digitalRead(40) == HIGH
      { 
          
    lcd.setCursor(03);
          
    lcd.print("Pastigli freno");     //тормоза изношенны
          
    delay(3000);
          
    lcd.setCursor(03);
          
    lcd.print("                    "); 
        
      }
      } 
    а ссылку на первоисточник можно?
    M2-ITX, GIGABYTE GA-510UD, 2xApacer 1Gb, HDD SATA 160Gb, BT, D-Link GA-120, 3G HUAWEI E219, DVB-T USB, Lilliput 889

  5. #15
    Пользователь
    Регистрация
    29.11.2009
    Возраст
    50
    Сообщений
    65
    Вес репутации
    206

    По умолчанию Re: Информационная панель на LCD

    Первоисточника нет , тут сборка скетчей соединённая в один ,что то переделал, думаю где то через месяц всё будет готово,со временем напряг
    Вложения Вложения
    D945GCLF2,160gb,2gb-ram,8" TFT LCDTouch+2lcd7" ,Bt,WiFi,SILABS,OBD2,DVBT, ,Audioson,Hertz,Fokal

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

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

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

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

Ваши права

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