Автоматический полив комнатных цветов
- Войдите на сайт для отправки комментариев
Втр, 24/01/2017 - 21:36
Делаю полив на четыре цвета.
Пока пишу скетч на один, поскольку совсем новичок и даже с учетом того, что пишу по образу и подобию других, есть ошибки.
[code]
#define PUMP 5 // насос
#define LED 13 // индикатор
#define HUMIDITY 10 // датчик влажности цифровой
#define WATER_SENS A0 // датчик воды аналоговой
#define WATERING_MILSEK 3000 // время работы насоса
#define STATE_STANDBY 0
#define STATE_WATERING 1
#define STATE_NOWATER 2
int Blink();
int watering();
int state = STATE_STANDBY;
boolean Humid;
boolean checkWater();
void setup() {
pinMode(PUMP, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(HUMIDITY, INPUT);
pinMode(WATER_SENS, INPUT);
}
void loop() {
switch (state){
case STATE_STANDBY:
checkWater();
if(Humid == 0)
state = STATE_WATERING;
if(Humid == 1)
state = STATE_NOWATER;
break;
case STATE_WATERING:
watering();
state = STATE_STANDBY;
break;
case STATE_NOWATER:
Blink();
if(checkWater())
state = STATE_STANDBY;
break;
}
}
void checkWater(){
if(analogRead(WATER_SENS >= 30 )
return true;
else
return false;
}
void watering(){
digitalWrite(PUMP, HIGH);
delay(WATERING_MILSEK);
digitalWrite(PUMP, LOW);
}
boolean Humid(){
if(digitalRead(HUMIDITY)
Humid = false;
else
Humid = true;
}
void Blink(){
}
[/code]
а ошибку выдает такую:
Arduino: 1.6.13 (Windows 10), Плата:"Arduino/Genuino Uno"
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino: In function 'void checkWater()':
pump0:52: error: ambiguating new declaration of 'void checkWater()'
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino:17:9: note: old declaration 'boolean checkWater()'
pump0:55: error: expected ')' before 'return'
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino: In function 'void watering()':
pump0:59: error: ambiguating new declaration of 'void watering()'
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino:14:5: note: old declaration 'int watering()'
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino: In function 'boolean Humid()':
pump0:65: error: 'boolean Humid()' redeclared as different kind of symbol
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino:16:9: note: previous declaration 'boolean Humid'
pump0:68: error: expected ')' before 'Humid'
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino: In function 'void Blink()':
pump0:72: error: ambiguating new declaration of 'void Blink()'
C:\Users\Администратор\Documents\Arduino\pump0\pump0.ino:13:5: note: old declaration 'int Blink()'
exit status 1
ambiguating new declaration of 'void checkWater()'
Что не так с void checkWater()?
либо объявляйте и пишите фукции одинаково
а то объявляете boolean checkWater(), а сама фукция void checkWater()
либо все функции, выше места обращения к ним и можно не объявлять.
Спасибо! Т.е. можно просто поменять Void на Boolean?
Я просто по смыслу само слово Void(пустота) не понимаю. Функция Boolean понятно, а функция "пустота" уже не очень )
не понял последнюю строчку )
про последнюю строчку, пока,забудте.
просто так менять на обум ничего нельзя, надо понимать что ты делаешь !
void "по смыслу", в данном случае - ничего не возращающая функция.
у вас в скече полно ошибок, оформите как положено код (вижу пытались), назову номера строк, дальше если сами думать будете, помогут.
Немного поправил код. Во всяком случае он компилируется. На железе в действии еще не пробовал.