Нужено написать скетч
- Войдите на сайт для отправки комментариев
Пт, 03/04/2020 - 12:39
Приветсвую всех.Нужно написать новый скет или отрихтовать мой.Могу выслать схему в Splan7 и задание на эл.почту.Устройство собрано,скетч работает неправильно.Недорого.Устройство для себя не на продажу
Тема, бюджет -> wrk.sadman@gmail.com
Сколько?
Схема
Предлагаю свои услуги fridgetester@mail.ru
Фото устройства
"недорого" ???
Надеюсь вы не рассчитываете получить код под подобную схему за 300 рублей?
Нужно исправление скетча и все.
Нужно исправление скетча и все.
и вы уверены. что это будет дешевле, чем написать новый? :)
Схема не нужна,только исправить мой код.
Нужно исправление скетча и все.
и вы уверены. что это будет дешевле, чем написать новый? :)
Бюджет 1000р
Бюджет 1000р
до свиданья
Кто готов взяться :моя почта grkonstantin93@gmail.com. Техзадание есть,сложость средняя -5ть таймеров обратного отсчета с millis
ТС - закинь сюда (или ссылка) схему в нормальном разрешении и логику работы автоматики. Мошт что универсальное можно будет сделать или придумать.
Последняя редакция схемы.
Мой кривой скетч,дошел до розжига колонки.До розжига вроде работает как надо.На розжиге с тремя попытками завис -это для меня пока сложно.
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); volatile int flow_frequency; // Measures flow meter pulses unsigned int l_hour; unsigned int l_min; unsigned char flowmeter = 2; // Flow Meter Pin number unsigned long currentTime; unsigned long cloopTime; void flow () // Interruot function { flow_frequency++; } #define in1 3 //LOW const byte in2 = 4; //HIGH #define in3 5 //LOW #define led_in1 6 //входной сигнал светодиод 1 #define led_in2 7 //входной сигнал светодиод 2 #define led_in3 17 //работа gas светодиод 3 #define alarm_1 9 //откл насосов #define alarm_2 10 //off nasos and power #define power_nasos 12 //реле насоса #define power_vent 16 #define power_gas 15 #define power_klapan 8 #define ton 11 byte valA; //переменная времени byte flagA; long previousMillisA = 0; int a; byte valB; //переменная времени byte flagB; long previousMillisB = 0; int b; byte valC; //переменная времени byte flagC; long previousMillisC = 0; int c; long previousMillisE = 0; int valE = 0; int flagE=0; int counterE=0; int prevValueE=0; int d; byte valD; //переменная времени byte flagD; long previousMillisD = 0; const int analogPin = A0; // аналоговый вывод для потенциометра int ledPin = 13; // цифровой вывод для светодиода const int threshold =200; // произвольный порог для показаний потенциометра int porog = 0; int POROG_1 = 0; long previousMillis = 0; int val = 0; void setup() { lcd.begin(); Serial.begin(9600); pinMode(flowmeter, INPUT); attachInterrupt(0, flow, RISING); sei(); // Enable interrupts currentTime = millis(); cloopTime = currentTime; pinMode(in1, INPUT);//вход с датчика протока pinMode(in2, INPUT);//вход с термостата +5в pinMode(in3, INPUT);//вход с газ.колонки pinMode(led_in1, OUTPUT);//блокировка котла и насосов pinMode(led_in2, OUTPUT);//вход с sonoff нагрев pinMode(led_in3, OUTPUT); pinMode(alarm_1, OUTPUT); pinMode(alarm_2, OUTPUT); pinMode(power_nasos, OUTPUT); pinMode(power_vent, OUTPUT); pinMode(power_gas, OUTPUT); pinMode(power_klapan, OUTPUT); pinMode(ton, OUTPUT); pinMode(ledPin, OUTPUT); lcd.setCursor(0, 0); lcd.print("P:>"); lcd.setCursor(5, 0); lcd.print("T1>"); lcd.setCursor(11, 0); lcd.print("T2>"); lcd.setCursor(0, 1); lcd.print("SPEED L/min:>"); lcd.setCursor(4, 2); lcd.print("NASOS "); lcd.setCursor(0, 3); lcd.print("COUNT> "); lcd.setCursor(8, 3); lcd.print("T4 "); } void loop(){ int analogValue = analogRead(analogPin); POROG_1= analogValue / threshold; porog = (l_hour*POROG_1 )/10 ; currentTime = millis(); if(currentTime >= (cloopTime + 1000)) { cloopTime = currentTime; // Updates cloopTime l_hour = (flow_frequency * 60 / 7.5); l_min = (flow_frequency / 7.5); //Serial.println(flow_frequency); //Serial.println(l_min); lcd.setCursor(3, 0); lcd.print(POROG_1); lcd.setCursor(13, 1); lcd.print(l_min ); if (l_min <100) { lcd.setCursor(15, 1); lcd.print(" " ); } if (l_min <10) { lcd.setCursor(14, 1); lcd.print(" " ); } flow_frequency = 0; // Обнулить счётчик } //**************************** Time_1 and NASOS********** if(digitalRead(in1)==LOW) { digitalWrite(led_in1,HIGH);//светодиод ин1 }else{ digitalWrite(led_in1,LOW); } //*********************************************************** if(digitalRead(in2)==LOW)//если уровень низкий.Работаем тут { if(digitalRead(in1)==LOW) { flagA=1; digitalWrite(power_nasos,HIGH); a=10; c=6; valC=0; } if(flagA==1) { lcd.setCursor(8, 0); lcd.print(valA); if (millis() -previousMillisA >1000) { previousMillisA = millis(); valA++; if(valA<10) { lcd.setCursor(9, 0); lcd.print(" "); } } } if(valA>=10&&porog<50) { previousMillisA = millis(); digitalWrite(power_nasos,LOW); digitalWrite(alarm_1,HIGH); } if(digitalRead(in1)==HIGH)//если кнопка не нажата ... { flagA=0; digitalWrite(power_nasos,LOW); //выключаем ledPin1 digitalWrite(alarm_1,LOW); valA=0;//обнуляем переменную //c=6; // valC=0; } //*******************NORM_work_1*************** if(porog>=50&&digitalRead(in1)==LOW) { flagA=1; valA=0; } } //***********************Time_2 signal sonoff********** if(digitalRead(in2)==HIGH)//ЕСЛИ ВЫСОКИЙ, РАБОТАЕМ ТУТ { flagB=1; digitalWrite(led_in2,HIGH); } if(flagB==1) { lcd.setCursor(14, 0); lcd.print(valB); if (millis() -previousMillisB >1000) { previousMillisB = millis(); valB++; //digitalWrite(power_nasos,HIGH); if(valB<10) { lcd.setCursor(15, 0); lcd.print(" "); } } } if(valB>=5&&porog<50) { previousMillisB = millis(); // digitalWrite(power_nasos,LOW); digitalWrite(alarm_2,HIGH); flagB=0; } if(porog>=50&&digitalRead(in2)==HIGH) { //flagB=1; valB=0; } if(digitalRead(in2)==LOW)//если кнопка не нажата ... { flagB=0; digitalWrite(alarm_2,LOW); digitalWrite(led_in2,LOW); valB=0;//обнуляем переменную } //*******************NASOS_work*************** if(flagB==1) { lcd.setCursor(10, 2); lcd.print("(ON)"); previousMillisC = millis(); flagC=1; valC=0; c=6; } if(flagC==1) { digitalWrite(power_nasos,HIGH); digitalWrite(power_klapan,HIGH); lcd.setCursor(14, 2); lcd.print(c); } if(flagC==1&&digitalRead(in2)==LOW) { if (millis() -previousMillisC >1000) { previousMillisC = millis(); valC++; c--; if(c<10) { lcd.setCursor(15, 2); lcd.print(" "); } } } if(valC>=6&&digitalRead(in1)==HIGH||digitalRead(alarm_2)==HIGH) //кол-во секунд ,при достижении этого значения , ledPin3 выключается { digitalWrite(power_nasos,LOW); digitalWrite(power_klapan,LOW); flagC=0; c=0; lcd.setCursor(10, 2); lcd.print("(OFF)"); } /* //**************Ton***************** if(digitalRead(alarm_2) == HIGH) //если кнопка нажата ... { if (millis()-previousMillis > 1000) { previousMillis = millis(); val++; } } else { val=0; } if(val>=2) { digitalWrite(ton,!digitalRead(ton)); //инвертируем состояние пина val=0; } if(digitalRead(alarm_2)==LOW) { digitalWrite(ton,LOW); } */ //**************розжиг Г.К************************** boolean bs = digitalRead (in2); if(bs==HIGH&&prevValueE==0) { prevValueE=1; counterE++; flagE=1; lcd.setCursor(6, 3); lcd.print(counterE); if(millis() -previousMillisE >500) { previousMillisE = millis(); valE++; } } else { valE=0; } if(valE >=5) { digitalWrite(15,!digitalRead(15)); valE=0; } if(counterE==3) { digitalWrite(15,LOW); // digitalWrite(alarm_2,HIGH); //counterE=0; flagE=0; } if(bs == LOW) { prevValueE=0; counterE=0; flagE=0; digitalWrite(15,LOW); } delay(10); }ТС - закинь сюда (или ссылка) схему в нормальном разрешении и логику работы автоматики. Мошт что универсальное можно будет сделать или придумать.
Мой кривой скетч,дошел до розжига колонки.
Да кто-ж так пишет-то? Линейный код))))))
ТУта нужно всё на сегменты разбивать и связывать межсегментную логику между собой))))
Схемы есть в НОРМАЛЬНОМ САПРе??? PR, например??? Отлаживать-то как-то нужно БЕЗ макета хотя-бы на этапе проектирования "скелета" логики программы???
закинул.Двое взялись,один спустя два дня пропал.Второй мучил с первым режимом с 3-го числа,так и не сделал.
Вот в ЭТОМ вот я совсем не сомневался. Сказать А может любой, а вот дальше продолжить может уже не каждый!!!
Цель проекта-удешевить/исключить дорогостоящий бойлер косвенного нагрева стоимостью от 100000р( в проекте используется электроводонагреватель на 100л),а также исключить двухконтурный котел у которого при работе на нагрев ГВС,отопление пофигу. Стоимость вторичного теплообменника котла от 5000р,а газовой колонки целиком 6000р.Схема полностью рабочаяя,сейчас работает на модульных таймерах и релейной автоматике.Проект исключительно для себя и тем кто не может выложить 140 т.р на бойлер и прочее типа кривого комплекта с трехходовым который на 50% занижает проток и стоит 25000р.В проекте используется китайский полнопроходной клапан с электроприводом.Все материалы проекта я буду публиковать на форуме и консультировать по монтажу(если разрешит админ форума).Кто готов участвовать =присоединяйтесь.
Из восьми скетчей которые один мне прислал с первым режимом,ни один не заработал правильно.Мой кривой скетч хотя бы в двух режимах работает правильно,в далее я завис.
Схема есть в splan7. grkonstantin93@gmail.com могу выслать.макет собран.
Когда пишут скретчи за 500р и без отладки на железе - результат практически всегда такой - то не запустится, то зависнет.
так можно минимум железа собрать,например вместо расходомера я прикрутил
SG90 и щелевой датчик
Можно все - и собрать и написать и две недели отлаживать. Вопрос в мотивации.
Из восьми скетчей которые один мне прислал с первым режимом,ни один не заработал правильно.
А ты за тыщу хотел другого результата? То, что ты написал, править бестолку, только в мусор, нужно все переписывать с нуля, а это минимум три дня(без отладки). Теперь ответь на вопрос, какого уровня специалист согласится работать за 300р в день? Вот, примерно, такого уровня программу ты и получишь. Что мы и наблюдаем, "скетч был очень похож на настоящий, но не работал".
ПыСы, ты сам-то согласишься на работу за 300р в день?
так можно минимум железа собрать,например вместо расходомера я прикрутилевой датчик
Тыщ пять платишь? - тогда можно попробовать
Там сначала нужно с аппаратной частью разобраться а уж потом коды пейсать , иначе ты то-же войдёшь в анналы криворуких скетчедрочеров )))
Там сначала нужно с аппаратной частью разобраться а уж потом коды пейсать , иначе ты то-же войдёшь в анналы криворуких скетчедрочеров )))
не, он за пять штук удавится :)
Кто готов участвовать =присоединяйтесь.
Мне чисто просто интересно неспеша изобрести очередной контроллер для печки или бойлера или что-то универсальное. От себя могу предложить профессиональное рисование схем в PR с последующей симуляцией оных. Так что ДАВАЙ КУСОЧКИ схем, оформим их в виде функциональных блоков. Давай входные и выходные ПАРАМЕТРЫ с датчиков и исполнительных механизмов. Всё это оформим в САПРе с возможностью СИМУЛЯЦИИ и вот только тогда УЖ и будем пеЙсать строчки кода. Но есть одно но, - я любитель нестандартных и порой даже непонятных всем подходов к реализации программной части, так-что исходников от меня не будет, хотя готовый *.hex могу подарить. Ещё: "где_мой_изюм_?" - вижу небольшую перспективу с возможностью реализации "дальше". У меня всё!
не, он за пять штук удавится :)
А ты не смотри на него, смотри "сквозь" него, там можно увидеть и 50 штук и поболее. А удавится он или нет - это его "трудности" , нас они не касаюцца !!! :))):)))