Доброго времени суток! Помогите пожалуйста написать скетч для домашней мини пивоварни прошу прощение заранее т.к совсем не программист ардуино uno + 1602 LCD Keypad Shield + DS18b20 + реле(нагрузка) + динамик перед работой бойлера необходимо установить параметры таймеров и темп Пример работы: 1 нагрев до определенной темп и стоп с подачей звукового сигнала до нажатия кнопки 2 поддержание определенной темп необходимое время 3 нагрев до более высокой темп и поддержка темп опр время 4 и так от 1 до 5 раз потом стоп до нажатия кнопки 5 кипячение определенное время, в процессе подача звука через запрограммированные промежутки времени и стоп вот один из рецептов
я бы рад принять участие!!! но только сам в программировании 0, даже не знаю с чего начать???!!! готов заплатить за написание скетча разумную цену
подскажите как можно использовать два делея по 1000 находящиеся в скетче как таймер чтоб удерживать заданную темп. определенное кол-во времени потом повысить темп. и еще удерживать потом стоп всей программы Код (Text): #include <OneWire.h> OneWire ds(10); // Подключаем датчик к 10 цифровому пину void setup(void) { Serial.begin(9600); pinMode(3, OUTPUT); // Включаем кипятильник digitalWrite(3, LOW); } void loop(void) { byte i; byte type_s; byte data[12]; byte addr[8]; float celsius, fahrenheit; // Ищем адрес датчика if ( !ds.search(addr)) { Serial.println("No more addresses."); Serial.println(); ds.reset_search(); delay(1000); return; } // Проверяем не было ли помех при передаче if (OneWire::crc8(addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return; } Serial.println(); // Определяем серию датчика switch (addr[0]) { case 0x10: Serial.println(" Chip = DS18S20"); type_s = 1; break; case 0x28: Serial.println(" Chip = DS18B20"); type_s = 0; break; case 0x22: Serial.println(" Chip = DS1822"); type_s = 0; break; default: Serial.println("Device is not a DS18x20 family device."); return; } ds.reset(); ds.select(addr); // Выбираем адрес ds.write(0x44, 1); // Производим замер, в режиме паразитного питания delay(1000); ds.reset(); ds.select(addr); ds.write(0xBE); // Считываем оперативную память датчика for ( i = 0; i < 9; i++) { data[i] = ds.read(); // Заполняем массив считанными данными } // Данные о температуре содержатся в первых двух байтах, переведем их в одно значение и преобразуем в шестнадцатиразрядное число int16_t raw = (data[1] << 8) | data[0]; // Переводим температуру в шкалы по Цельсию и Фаренгейту if (type_s) { raw = raw << 3; } if (data[7] == 0x10) { raw = (raw & 0xFFF0) + 12 - data[6]; } else { byte cfg = (data[4] & 0x60); if (cfg == 0x00) raw = raw << 3; else if (cfg == 0x20) raw = raw << 2; else if (cfg == 0x40) \ raw = raw << 1; } celsius = (float)raw / 16.0; fahrenheit = celsius * 1.8 + 32.0; // считаем фаренгейты Serial.print("Temp = "); Serial.print(celsius); // выводим в терминал градусы Serial.print(" C, "); Serial.print(fahrenheit); Serial.println(" F"); // Если температура достигает необходимого уровня отключаем нагрев if (celsius < 26.0) { digitalWrite(3, HIGH); } else { digitalWrite(3, LOW); } }