получаем питьевую воду с помощью ардуино

Тема в разделе "Глядите, что я сделал", создана пользователем Nikita, 11 авг 2013.

  1. Nikita

    Nikita Гик

    Привет всем! Где-то 2 года назад я вечером я достал банку с компотом из холодильника. Пока пил компот заметил что на банке появляется конденсат и тут меня осенило что конденсат можно пустить в дело и сделать какойнибудь аппарат для получения воды. Проводил кучу всяких эксперементов. Тогда я еще не знал о элементах пельтье и для получения экзотермической реакции я использовал силитру амеачную. И вот через 3 месяца аппарат был готов. Аппарат был крайне не удобен в использование силита быстро раствогялась и разедала все что было железное. Вскоре я узнал о элементах пельтье и я опять взялся за дело. Набрасал небольшой код, но проверить пока не могу.
    Это стройво очень полезно в походах. Ёмкость пока около 1.5литров

    Вот скеч

    int thermocouple = 9;
    int thermocouplePin = 10;
    int redLed = 8;
    int greenLed = 7;
    int compressor = 6;
    int led = 13;
    int compressorled = 13;

    void setup()
    {
    pinMode(thermocouple , OUTPUT);
    pinMode(thermocouplePin , INPUT);
    pinMode(redLed, OUTPUT);
    pinMode(greenLed, OUTPUT);
    pinMode(compressor, OUTPUT);
    pinMode(led, OUTPUT);
    pinMode(compressorled, OUTPUT);

    //готовность устройсва
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);

    //включаем компрессор
    digitalWrite(compressorled, HIGH);
    digitalWrite(compressor, HIGH);
    delay(5000);
    digitalWrite(compressorled, LOW);
    digitalWrite(compressor, LOW);
    //выключаем компрессор

    }

    void loop(){
    //вкючаем элемент пельтье на нангрев
    digitalWrite(thermocouple, HIGH);
    digitalWrite(thermocouplePin, LOW);

    digitalWrite(redLed, HIGH);
    delay(300000);
    digitalWrite(redLed, LOW);
    digitalWrite(thermocouple, LOW);
    digitalWrite(thermocouplePin, LOW);
    //выкючаем элемент пельтье

    //включаю элемент пельтье на охлождение
    digitalWrite(thermocouple, LOW);
    digitalWrite(thermocouplePin, HIGH);
    digitalWrite(redLed, HIGH);
    delay(300000);
    digitalWrite(redLed, LOW);
    digitalWrite(thermocouple, LOW);
    digitalWrite(thermocouplePin, LOW);
    //выкючаем элемент пельтье на нангрев

    }
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Для выполнения одинаковых/однообразных действий лучше использовать циклы - это улучшает читаемость кода и экономит память.
    Вместо
    Код (C):
    /готовность устройсва
    digitalWrite(led, HIGH);
    delay(1000);   
    digitalWrite(led, LOW);
    delay(1000);   
    digitalWrite(led, HIGH);
    delay(1000);   
    digitalWrite(led, LOW);
    delay(1000);
    digitalWrite(led, HIGH);
    delay(1000);   
    digitalWrite(led, LOW);
    delay(1000);
    digitalWrite(led, HIGH);
    delay(1000);   
    digitalWrite(led, LOW);
    delay(1000);
    лучше написать так:
    Код (C):
    //готовность устройсва
    for(int i = 0; i < 4; i++)
    {
        digitalWrite(led, HIGH);
        delay(1000);   
        digitalWrite(led, LOW);
        delay(1000);   
    }
     
    или так:
    Код (C):
    //готовность устройсва
    for(int i = 0; i < 8; i++)
    {
        digitalWrite(led, (i & 0x1) != 0x1);
        delay(1000);   
    }
     
     
    Desert Ops, mihase, sqr93 и ещё 1-му нравится это.