Задать вопрос
@AiZeK-E

Ошибка при компиляции платы ардуино что делать?

Помогите решить проблему с ошибкой в ардуино. Ниже написал лист с кодом , а ниже будет лог ошибки

Код
Таймер для подачи школьных звонков (Arduino UNO)

Это очень простое устройство предназначено для автоматической подачи школьных звонков В аппаратной части оно состоит только из микроконтроллерной платы ARDUINO UNO и выходного электромагнитного реле.
Принципиальная схема
Схема предназначена для управления одной нагрузкой, которой служит школьный звонок. Контакты выходного реле подключают параллельно звонковой кнопке. Для управления выбран порт D10.
Логический уровень с порта D10 поступает на транзисторный ключ на VT1, в коллекторной цепи которого включено реле К1, управляющее звонком.
Программа предельно проста. Она написана на языке C++. Если все перемены и уроки одинаковые, например, все перемены по 10 минут, все уроки по 45 минут, то для управления используется программа, приведенная в таблице 1.
  
Рис. 1. Таймер для подачи школьных звонков, схема на Arduino UNO.
Эта программа отрабатывает один повторяющийся цикл, состоящей из звонка на урок, звучащего 3 секунды, урока, длительностью 45 минут, звонка на перемену, звучащего 3 секунды, и перемены длительностью 10 минут. Цикл повторяется пока питание включено и может отработать любое количество уроков и перемен.
В начале учебного дня ответственный сотрудник школы включает питание выключателем S1 в тот момент, когда нужно подать звонок на первый урок. Далее все происходит автоматически. А по завершении занятий этот же ответственный сотрудник питание выключает выключателем S1, и уходит домой.
Обратите внимание, что все временные интервалы задаются в миллисекундах. То есть, 45 минут на урок и 10 минут на перемену нужно перевести в миллисекунды и вписать в программу именно в таком виде. Для этого нужно значение в минутах умножить на 60000.
Программа
Программа, показанная в таблице 1 годится только в том случае, если все уроки одинаковые и все перемены тоже одинаковые. Но бывает и иначе, например, может быть большая перемена на обед и какая-то промежуточная большая перемена. В этом случае, нужно подробно расписать всю смену.
Таблица 1.
/*
Zvonok
'/
// задание выхода
void setup () {
pinMode(10. OUTPUT);
}
//рабочий цикл
void loop() {
digitalWrite(10, HIGH); // звонок на урок delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); //урок
delay(2700000); //длительность урока 45 мин (2700 сек).
digitalWrite(10. HIGH); // звонок на перемену delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // перемена
delay(600000); // длительность перемены 10 мин (600 сек).
}
Таблица 2
/•
Zvonok
'/
// задание выхода
void setup () {
pinMode(10, OUTPUT);
}
// рабочий цикл
void loop() {
digitalWrite(10, HIGH); // 1-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 1-й урок
delay(2700000); //длительность урока 45 мин (2700 сек)
digitalWrite(10, HIGH); // 2-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 1-я перемена
delay(600000); //длительность перемены 10 мин (600 сек).
digitalWrite(10, HIGH); // 3-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 2-й урок
delay(2700000); //длительность урока 45 мин (2700 сек)
digitalWrite(10, HIGH); // 4-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 2-я перемена
delay(600000); //длительность перемены 10 мин (600 сек).
digitalWrite(10, HIGH); // 5-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWritef 10, LOW); // 3-й урок
delay(2700000); //длительность урока 45 мин (2700 сек).
digitalWriteflO, HIGH); // 6-й звонок
delay(3000); // длительность звонка 3 сек.
digitalWritef 10, LOW); //3-я перемена
delay(1200000); //длительность перемены 20 мин (1200 сек).
digitalWritefl0, HIGH); // 7-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite( 10, LOW); // 4-й урок
delay(2700000); //длительность урока 45 мин (2700 сек).
digitalWritef 10, HIGH); // 8-й звонок
delay(3000); // длительность звонка 3 сек.
digitalWrite(10, LOW); // 4-я перемена
delay(600000); // длительность перемены 10 мин (600 сек).
digitalWritef 10, HIGH); // 9-й звонок
delay (3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 5-й урок
delay(2700000); //длительность урока 45 мин (2700 сек).
digitalWrite(10, HIGH); // 10-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 5-я перемена
delay(600000); //длительность перемены 10 мин (600 сек).
digitalWrite(10, HIGH); // 11-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 6-й урок
delay(2700000); //длительность урока 45 мин (2700 сек).
digitalWrite(10, HIGH):// 12-й звонок
delay(3000); //длительность звонка 3 сек.
digitalWrite(10, LOW); // 6-я перемена
delay(900000); //длительность перемены 15 мин (900 сек).
Или даже весь учебный день. Для примера в таблице 2 приводится программа на шесть уроков, в которой длительность 3-й перемены задана в 20 минут, а длительность 6-й перемены в 15 минут.
Все значения времени, конечно же могут быть другими. Количество шагов программы тоже может быть другим. Все зависит от расписания работы конкретного учебного заведения.
Но принцип составления программы должен быть понятен.
Никаких органов управления аппарат не имеет, кроме выключателя питания и кнопки сброса, которая есть на плате ARDUINO UNO. Для изменения расписания уроков его нужно подключить через USB-порт к персональному компьютеру. Для работы с ARDUINO UNO нужен компьютер с установленной программой ARDUINO.


Лог с ошибками
Arduino: 1.8.5 (Windows 10), Плата:"Arduino/Genuino Uno"

In file included from sketch\sketch_aug15a.ino.cpp:1:0:

C:\Users\1\Documents\Arduino\sketch_aug15a\sketch_aug15a.ino: In function 'void setup()':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:44:16: error: expected ')' before numeric constant

 #define OUTPUT 0x1

                ^

C:\Users\1\Documents\Arduino\sketch_aug15a\sketch_aug15a.ino:3:13: note: in expansion of macro 'OUTPUT'

 pinMode(10. OUTPUT);

             ^

sketch_aug15a:3: error: too few arguments to function 'void pinMode(uint8_t, uint8_t)'

 pinMode(10. OUTPUT);

                   ^

In file included from sketch\sketch_aug15a.ino.cpp:1:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:133:6: note: declared here

 void pinMode(uint8_t, uint8_t);

      ^

In file included from sketch\sketch_aug15a.ino.cpp:1:0:

C:\Users\1\Documents\Arduino\sketch_aug15a\sketch_aug15a.ino: In function 'void loop()':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:40:14: error: expected ')' before numeric constant

 #define HIGH 0x1

              ^

C:\Users\1\Documents\Arduino\sketch_aug15a\sketch_aug15a.ino:10:18: note: in expansion of macro 'HIGH'

 digitalWrite(10. HIGH); // звонок на перемену delay(3000); //длительность звонка 3 сек.

                  ^

sketch_aug15a:10: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'

 digitalWrite(10. HIGH); // звонок на перемену delay(3000); //длительность звонка 3 сек.

                      ^

In file included from sketch\sketch_aug15a.ino.cpp:1:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:134:6: note: declared here

 void digitalWrite(uint8_t, uint8_t);

      ^

exit status 1
too few arguments to function 'void pinMode(uint8_t, uint8_t)'

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
  • Вопрос задан
  • 461 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
gbg
@gbg Куратор тега Arduino
Любые ответы на любые вопросы
Вот тут:
pinMode(10. OUTPUT);

Перепутатны точка и запятая. Нужно везде исправить.
Ответ написан
nava2002
@nava2002
Инженер
void digitalWrite(uint8_t, uint8_t); - не уверен что такая конструкция допустима.
Я бы как то по другому это решил менее прямолиненйно.
Ответ написан
razrab228
@razrab228
зачем тебе знать это?
функция digitalWrite на некоторых звонках и переменах написана неверно - digitalWritf.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы