Ошибка a function-definition is not allowed here before '{' token

Lironix
Offline
Зарегистрирован: 18.05.2018
Добрый день! Заранее извиняюсь за глупый вопрос, я плохо разбираюсь в электронику, но нужно решить вопрос. В Интернете нашёл похожие, но решения не помогают. 
Имеется ардуино, нужно, чтобы сервопривод раз в 24 часа поворачивался на 90 градусов и обратно. 
В 17 строке выдаёт ошибку "a function-definition is not allowed here before '{' token"
Если убрать всё, что связано с таймером, то  компилируется.
unsigned long period_time = (long)86400000;
unsigned long my_timer;
void setup() {
  my_timer = millis();   // "сбросить" таймер
}
void loop() {
  if ((long)millis() - my_timer > period_time) {
    my_timer = millis();   // "сбросить" таймер
    #include <Servo.h>
 
Servo servo1;  
void setup() {
  servo1.attach(9);   
  servo1.write(0);   // Hачальное положение 
  }
 
void loop() {
  servo1.write(90); // Поворачиваем серво на 90 градусов
  delay(1000);        
  servo1.write(1800);
  delay(100);        
  servo1.write(90);
  delay(1000);
  servo1.write(0);
  delay(1000);        
  }
  }
}   

 

 

ven-til
Offline
Зарегистрирован: 13.02.2018

с 1 по 8 строку включительно и 27- 28 строки удалите.

Lironix
Offline
Зарегистрирован: 18.05.2018

Так пробовал, компилируется но как тогда поставить таймер? Я так понял, чтольно через неё можно ставить таймеры на большой отрезок времени.

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

Нужно не "решить вопрос", а для начала хоть немношко почитать про Ардуино.  Или поискать исполнителя. 

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

Вы что, просто взяли две разные программы и вставили одну в другую в какое попало место?

1) не совпадает баланс скобок { и },
2) две функции setup
3) две функции loop

Это не код, а Шалтай-Болтай после падения.

Если Вы не видите сами этих ошибок, 

Lironix пишет:
но нужно решить вопрос.

то, у Вас два пути - научиться программировать, а потом решать вопросы (это от полугода и больше) или запостить в "Ищу исполнителя", платить и получать готовое. С теми знаниями, что у Вас сейчас, сами Вы "вопрос не решите" - 100%.

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

вот и я про то же. :)

ven-til
Offline
Зарегистрирован: 13.02.2018

Lironix пишет:

Так пробовал, компилируется но как тогда поставить таймер? Я так понял, чтольно через неё можно ставить таймеры на большой отрезок времени.

 

Все, что Вам нужно, можно решить через delay.