Домашняя мини пивоварня

Тема в разделе "Закажу проект", создана пользователем hok, 15 фев 2014.

  1. hok

    hok Нуб

    Доброго времени суток!

    Помогите пожалуйста написать скетч для домашней мини пивоварни
    прошу прощение заранее т.к совсем не программист
    ардуино uno + 1602 LCD Keypad Shield + DS18b20 + реле(нагрузка) + динамик

    перед работой бойлера необходимо установить параметры таймеров и темп

    Пример работы:

    1 нагрев до определенной темп и стоп с подачей звукового сигнала до нажатия кнопки

    2 поддержание определенной темп необходимое время

    3 нагрев до более высокой темп и поддержка темп опр время

    4 и так от 1 до 5 раз потом стоп до нажатия кнопки

    5 кипячение определенное время, в процессе подача звука через запрограммированные промежутки времени и стоп
    вот один из рецептов
    [​IMG]
     
  2. lerik2703

    lerik2703 Гик

    Вам быстрей помогут, если вы сами ,постараетесь принять активное участие в написании скетча !:rolleyes:
     
  3. hok

    hok Нуб

    я бы рад принять участие!!! но только сам в программировании 0, даже не знаю с чего начать???!!! готов заплатить за написание скетча разумную цену
     
    Последнее редактирование: 15 фев 2014
  4. hok

    hok Нуб

    Если кому надо я помогу с технической частью пивоварения
     
  5. hok

    hok Нуб

    подскажите как можно использовать два делея по 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);
      }

    }
     
     
  6. Color

    Color Нуб

    hok нравится это.
  7. hok

    hok Нуб

  8. totuin

    totuin Нерд