Есть скетч расходомера для авто.(код вставить не получается, больше 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(); }
Теоретически должно работать, но ...по любому вылезут косяки, у себя к сожалению проверить не могу, нет соответсвующих датчиков