Цитата Сообщение от 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("                    "); 
    
  }
  } 
а ссылку на первоисточник можно?