expected ';' before '{' token
- Войдите на сайт для отправки комментариев
Пт, 11/01/2019 - 20:43
в общем такая ошибка, ниже привожу скрин, и код целиком. смысл ошибки я понимаю. но вот куда именно я должен поставить этот символ и самое главное зачем? до меня не доходит кто подскажет? если есть необходимость могу обяснить строки кода, если в кратце то это: дисплей на который выводятся данные с двух датчиков температуры и влажности, две кнопки, одна перезагружает устройство, другая включает подсветку)
#include <TroykaDHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей
DHT dht1(2, DHT21);
DHT dht2(4, DHT11);
int switchPin = 8;
int switchPin2 = 7;
boolean lastButton = LOW;
boolean currentButton = LOW;
boolean lastButton2 = LOW;
boolean currentButton2 = LOW;
long previousMillis = 0;
long interval = 3000;
int screen = 1;
void conclusion (int n)
{
if (n==1)
{
// lcd.backlight();
dht1.read();
// Устанавливаем курсор на вторую строку и нулевой символ.
lcd.setCursor(7, 0);
lcd.print(dht1.getTemperatureC());
lcd.setCursor(14, 1);
lcd.print("St");
lcd.setCursor(7, 1);
lcd.print(dht1.getHumidity());
screen = 1;
}
else (n==2)
{
dht2.read();
lcd.setCursor(7, 0);
lcd.print(dht2.getTemperatureC());
lcd.setCursor(14, 1);
lcd.print("Ho");
lcd.setCursor(7, 1);
lcd.print(dht2.getHumidity());
screen = 2;
}
}
void setup()
{
pinMode (switchPin, INPUT);
pinMode (switchPin2, INPUT);
dht1.begin();
dht2.begin();
lcd.init();
//lcd.backlight();// Включаем подсветку дисплея
lcd.print("Temp = ");
lcd.setCursor(13, 0);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum = ");
lcd.setCursor(12, 1);
lcd.print("%");
// lcd.print("LCD 1602");
}
boolean debounce(boolean last)
{
boolean current = digitalRead (switchPin);
if (last != current)
{
delay(5);
current = digitalRead (switchPin);
}
return current;
}
boolean debounce2(boolean last2)
{
boolean current2 = digitalRead (switchPin2);
if (last2 != current2)
{
delay(5);
current2 = digitalRead (switchPin2);
}
return current2;
}
void loop()
{
conclusion (1);
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval)
{
if (screen == 1)
{
conclusion (2);
previousMillis = currentMillis;
}
else (screen == 2)
{
conclusion (1);
previousMillis = currentMillis;
}
}
currentButton = debounce(lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
asm("JMP 0");
}
lastButton = currentButton;
currentButton2 = debounce2(lastButton2);
if (lastButton2 == LOW && currentButton2 == HIGH)
{
lcd.backlight();
}
lastButton2 = currentButton2;
//asm("JMP 0");//перезагрузка
// Выводим на экран количество секунд с момента запуска ардуины
//lcd.print(millis()/1000);
}
А объясните строку 100, например.
screen это параметр того что выведено на экране, данные с первого датчика или со второго 1 и 2, соответсвенно она значит "иначе, если данные на экране выведены со второго датчика"
Почитайте про синтаксис if-else
https://www.arduino.cc/reference/en/language/structure/control-structure/else/
благодарю
внимательно читайте
А если на неё внимательно посмотреть?
А если глаза потереть? А может ещё и в шпаргалку заглянуть?
С ней точно всё нормально? Прямо точно-точно?
Это не паскаль...
В Паскале такого тоже нет.
Да, это я погорячился.