Помогите новичку))) проблемы с компиляцией)
- Войдите на сайт для отправки комментариев
Пт, 25/11/2016 - 19:07
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused)
void setup() {
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
}
int thresholdUp = 400;
int thresholdDown = 250;
int sensorPin = A0;
void loop (){
pinMode (4 ,HIGH);
mySerial.begin(9600); // устанавливаем скорость обмена данными на 9600 baud
delay(500);
}
void loop () {
String DisplayWords;
int sensorValue;
sensorValue = analogRead(sensorPin);
mySerial.write(128);
mySerial.write(" ");
mySerial.write(" ");
mySerial.write(128);
mySerial.write("Water Level: ");
mySerial.print(sensorValue);
if (sensorValue <= thresholdDown){
mySerial.write(254);
mySerial.write(192);
DisplayWords = "Dry, Water it!";
mySerial.print(DisplayWords);
digitalWrite(4, HIGH);
}
else if (sensorValue >= thresholdUp){
mySerial.write(254);
mySerial.write(192);
DisplayWords = "Wet, Leave it!";
mySerial.print(DisplayWords);
digitalWrite(4, LOW);
} else {
mySerial.write(254);
mySerial.write(192);
mySerial.print(DisplayWords);
}
delay(500);
Такая проблема: при компиляции выдает ошибку(16 строка): In function 'void loop()':
sketch_nov22a:39: error: redefinition of 'void loop()'
void loop () {
в чем проблема и как исправить? если есть какие то еще ошибки скажите как исправить))) хочу уже что бы заработало)
PS: если что то это код для автоматической поливалки , принцип работы: датчик влажности считывает показания , и в зависимости от заданных значений поливает цветок(ардуина размыкает реле) и выводит показания на дисплей ( в случае уже влажной почвы просто выводит показания) в общем поддерживает уровень влажности на нужном уровне. Заранее спасибо
В скетче не должно быть две функции loop(), только одна. К тому же в первой loop() строка 12 бессмысленна, т.к. неправильна. Строку 13 нужно перенести в функцию setup(). Для чего нужна строка 14 не понятно... Кроме того путаница с фигурными скобками. Строка 44 должна быть внутри функции loop(), то есть после неё должна быть закрывающая фигурная скобка.
Короче ошибок полно, учитесь программировать.
В скетче не должно быть две функции loop(), только одна.
последователям секты объединителей двух скетчей в один - разрешено два лупа
строку 12 полностью убрать или ку да то перенести?
и что с фигурными скобками?
последователям секты объединителей двух скетчей в один - разрешено два лупа
Нужно срочно запретить.
строку 12 полностью убрать или ку да то перенести?
Она неправильная и работать не будет, поэтому убрать.
и что с фигурными скобками?
Их нужно правильно расставить.
ну я расставил. ошибка с последней:
#include <SoftwareSerial.h> SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused) void setup() { pinMode(4, OUTPUT); digitalWrite(4, LOW); mySerial.begin(9600); } int thresholdUp = 400; int thresholdDown = 250; int sensorPin = A0; void loop () { String DisplayWords; int sensorValue; sensorValue = analogRead(sensorPin); mySerial.write(128); mySerial.write(" "); mySerial.write(" "); mySerial.write(128); mySerial.write("Water Level: "); mySerial.print(sensorValue); if (sensorValue <= thresholdDown){ mySerial.write(254); mySerial.write(192); DisplayWords = "Dry, Water it!"; mySerial.print(DisplayWords); digitalWrite(4, HIGH); } else if (sensorValue >= thresholdUp){ mySerial.write(254); mySerial.write(192); DisplayWords = "Wet, Leave it!"; mySerial.print(DisplayWords); digitalWrite(4, LOW); } else{ mySerial.write(254); mySerial.write(192); mySerial.print(DisplayWords); delay(500); }вот так в общем ошибка в послебней
КОД
#include <SoftwareSerial.h> SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused) void setup() { pinMode(4, OUTPUT); digitalWrite(4, LOW); mySerial.begin(9600); } int thresholdUp = 400; int thresholdDown = 250; int sensorPin = A0; void loop () { String DisplayWords; int sensorValue; sensorValue = analogRead(sensorPin); mySerial.write(128); mySerial.write(" "); mySerial.write(" "); mySerial.write(128); mySerial.write("Water Level: "); mySerial.print(sensorValue); if (sensorValue <= thresholdDown){ mySerial.write(254); mySerial.write(192); DisplayWords = "Dry, Water it!"; mySerial.print(DisplayWords); digitalWrite(4, HIGH); } else if (sensorValue >= thresholdUp){ mySerial.write(254); mySerial.write(192); DisplayWords = "Wet, Leave it!"; mySerial.print(DisplayWords); digitalWrite(4, LOW); } else{ mySerial.write(254); mySerial.write(192); mySerial.print(DisplayWords); } delay(500); }вот так в общем ошибка в послебней
Я говорил, что строка 44 ( delay(500); ) должна быть внутри loop(), а не внутри else. Верните как было и после delay(500); поставьте ещё одну закрывающую фигурную скобку.
КОД
Неправильно. Судя по всему, в конце должно быть так:
else { mySerial.write(254); mySerial.write(192); mySerial.print(DisplayWords); } delay(500); }UPD: Вижу, уже исправили. Теперь правильно.