Помощь по коду, простые функции

br0lviv
Offline
Зарегистрирован: 11.06.2018

Здраствуйте ребята, прошу помощи в оптимизации коду)
Изучаю ардуино совсем не долго и накопилось множество вопросов, а от ответы на них трудно найти..
Посмотрите пожалуйста где косяки и что работать не будет. Проверить в деле не могу так как ардуинка в дороге, а изучать код хочется уже сейчас))
Благодарю за всякую помощь)))
[spoiler][html]
else (isnan(t)) {
Serial.println("Не удается считать показания");
digitalWrite(kran, LOW);
Serial.println("Кран выключен");
digitalWrite(vent, LOW);
Serial.println("Вентилятор выключен");
digitalWrite(led, LOW);// гасим лед,
return;
}
Serial.print("Температура: "+t+" *C ");
[/html][/spoiler]

br0lviv
Offline
Зарегистрирован: 11.06.2018

[code]#include "DHT.h"
#define DHTPIN 2 // номер пина, к которому подсоединен датчик
DHT dht(DHTPIN, DHT11);
int klav = 7; // Пин кнопки
int vent = 8; // Пин вентилятора
int kran = 9; // Пин крана
int led = 13; // Пин диода
int klav2 = 0; // Переменная для кнопки

void setup() {
pinMode(klav, INPUT);
pinMode(vent, OUTPUT);
pinMode(kran, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
dht.begin();
}

void loop() {
klav2 = digitalRead(klav);// переменная
digitalWrite(led, klav2);// статус диода
if (klav2 == HIGH){
delay(2000);
float t = dht.readTemperature(); // Считываем температуру
}
if (t < 15){
digitalWrite(kran, klav2);
Serial.println("Кран включен");
digitalWrite(vent, klav2);
Serial.println("Вентилятор включен");
digitalWrite(led, LOW);// гасим лед, создаем мигание.
}
else (isnan(t)) {
Serial.println("Не удается считать показания");
digitalWrite(kran, LOW);
Serial.println("Кран выключен");
digitalWrite(vent, LOW);
Serial.println("Вентилятор выключен");
digitalWrite(led, LOW);// гасим лед,
return;
}
Serial.print("Температура: "+t+" *C ");
}[/code]

b707
Offline
Зарегистрирован: 26.05.2017

1. вставьте код правильно

2. четче формулируйте вопрос. Просто так смотреть, будет ли работать - нафик никому не надо.

br0lviv
Offline
Зарегистрирован: 11.06.2018

Весь код во втором посте.. У меня не работают ВВ коды(
А ближе к скетчу мысль такая:
Если нажал кнопку , идет проверка датчика температуры. Затем если значение меньше 15, подается питание на вентилятор и кран. Еще не могу до конца понять как оптимизировать оператор if как подвязать одну проверку к другой(

kalapanga
Offline
Зарегистрирован: 23.10.2016

Как вставлять код, написано здесь: Вставка программного кода в тему/комментарий без этого его обсуждать однозначно никто не будет. А лучше бы Вы дождались свою ардуинку, проверили бы на ней свой скетч, увидели, что работает, что не работает, и уже после задали конкретные вопросы. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

br0lviv пишет:
Проверить в деле не могу так как ардуинка в дороге, а изучать код хочется уже сейчас)
На эмуляторе проверяйте. Или Вы решили нас вместо эмулятора использовать?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Пока Ардуина в дороге, можно свою голову, через глаза, знаниями поднабить.  

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

DetSimen пишет:

голову, через глаза, знаниями поднабить.  

Места нету. Всё занято пивом и мечтами о едущей ардуине.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Компилировать, кста, можно и без Ардуины, там есть компиляция без заливки.  Можно пока даже подтянуть технический английский, разбирая ругательства канпилятара. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Так в обобщённом протеусе и запущать можно - очень прилично моделируется. И сериал, и таймеры, и прерывания - всё нормально работает. Было бы желание. Но тут тяжёлый случай - даже кнопку "code" в окне написания поста разглядеть не могём :(