Помогите вписать скетч в скетч

Тема в разделе "Arduino & Shields", создана пользователем ishved, 15 май 2013.

  1. ishved

    ishved Нуб

    Есть скетч расходомера для авто.(код вставить не получается, больше 1000 символов не хочет вставляться, поэтому первый скетч сжал и прикрепил ) Скетч рабочий.
    Хочу добавить к нему отображение температуры за бортом, но знаний к сожалению не хватает.
    Код (Text):
    #include <LiquidCrystal.h>
    #include <OneWire.h>         
    #include <EEPROM.h>    
    byte gradus[8] =
    {
      B00110,
      B01001,
      B01001,
      B00110,
      B00000,
      B00000,
      B00000,
      B00000,
    }; // создаем собственный символ "градус Цельсия"
     
    byte ii;                   
    byte nn;                 
    byte mm=0;               
    byte tt=0;               
    int T[]={0,0,0,0};     
    int Tp[]={0,0,0,0};  
    int TD[]={0,0,0,0};
     
    byte data[9];            
    byte TotalDS=0;        
    byte addr[4][8] = {  
      {0,0,0,0,0,0,0,0},     
      {0,0,0,0,0,0,0,0},
      {0,0,0,0,0,0,0,0},
      {0,0,0,0,0,0,0,0},
    };
    OneWire  ds(10);           
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
     
    void setup()       
    {
      lcd.begin(16, 2);
     
    }
      void Menu() {      
     
    lcd.createChar(1, gradus); // присваиваем символу "градус Целься" порядковый номер
          lcd.setCursor(11, 0);
          //  lcd.print("T1:");      
            lcd.print(T[0]);
            lcd.print("\1C"); //символ "градус Цельсия"       
            ii = 0;
            nn=0;
            while (ii != 1 )
            {
              if ( ds.search(addr[nn]) != 1) {
             
                ds.reset_search();
                ii = 1; }
              else {       
                nn++;      
                TotalDS = nn;
              }
            }
            }
    void Gettemp() {
    ds.reset();  
        ds.write(0xCC,1);  
        ds.write(0x44,1);      
        for( nn = 1; nn < 90; nn++) {
          delay(10);           
         
        }
        for( nn = 0; nn < 4; nn++) {
          ds.reset();            
          ds.select(addr[nn]);   
         
          ds.write(0xBE);        
          for ( ii = 0; ii < 9; ii++) {data[ii] = ds.read();}
          Tp[nn] = float((data[1] << 8) + data[0])/16.0;  
         
          if (Tp[nn] == 85) {} else {T[nn]=Tp[nn];}    
              }
     
    byte write_DS() ;{           
      for (ii=0; ii<8; ii++) {     
        if (mm==0) {EEPROM.write(128+tt*8+ii,0);}
        else {EEPROM.write(128+tt*8+ii,addr[mm-1][ii]);}
      }
    }
     
    byte read_DS(); {            
      for (nn=0; nn<4; nn++) {   
        for (ii=0; ii<8; ii++) {     
          addr[nn][ii] = EEPROM.read(128+nn*8+ii);
        }
      }
    }
    }
     
    void loop()
    {
      Menu();
      Gettemp();
     
     
    }
     

    Вложения:

  2. ishved

    ishved Нуб

  3. atompost

    atompost Гик

    Сегодня после ночной смены отосплюсь и помогу!
     
  4. atompost

    atompost Гик

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

    Вложения: