Ошибка компиляции для платы sanguino exit status 1

Вс, 07/05/2017 — 20:17

#1

T.Rook

Offline

Зарегистрирован: 05.03.2016

полностью скетч и ошибку покажите.

Еще раз проверьте выбор платы и порта в IDE

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 20:31

#2

Jeka_M

Jeka_M аватар

Offline

Зарегистрирован: 06.07.2014

Полностью ошибку приведите. Скопируйте сюда текст и вставьте.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 20:35

#3

qwone

qwone аватар

Offline

Зарегистрирован: 03.07.2016

Скорее чел ну очень зеленый. У него IDE стоит на UNO , а он пихает Nano.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 20:48

#4

T.Rook

Offline

Зарегистрирован: 05.03.2016

Кажется, это была агония. Предлагаю консилиум на этом закрыть. Расходимся.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 20:54

#5

meganom

Offline

Зарегистрирован: 07.05.2017

Скетч для проверки I2C переходника для LCD 16×2

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()

{

  // initialize the LCD

  lcd.begin();

  // Turn on the blacklight and print a message.

  lcd.backlight();

  lcd.print(«Hello, world!»);

}

void loop()

{

  // Do nothing here…

}

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 20:58

#6

andriano

andriano аватар

Offline

Зарегистрирован: 20.06.2015

meganom, первопричина Ваших проблем в том, что Вы читать очень не любите.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:01

#7

meganom

Offline

Зарегистрирован: 07.05.2017

Arduino: 1.8.2 (Windows 8.1), Плата:»Arduino Nano, ATmega328″

D:ArduinoArduino-LiquidCrystal-I2C-libraryArduino-LiquidCrystal-I2C-library-masterexamplesHelloWorldHelloWorld.ino:4:31: fatal error: LiquidCrystal_I2C.h: No such file or directory

 #include <LiquidCrystal_I2C.h>

                               ^

compilation terminated.

exit status 1

Ошибка компиляции для платы Arduino Nano.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:04

#8

T.Rook

Offline

Зарегистрирован: 05.03.2016

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:06

#9

meganom

Offline

Зарегистрирован: 07.05.2017

да установил 

Arduino: 1.8.2 (Windows 8.1), Плата:»Arduino Nano, ATmega328″

Изменены опции сборки, пересобираем все

D:ArduinoArduino-LiquidCrystal-I2C-libraryArduino-LiquidCrystal-I2C-library-masterexamplesHelloWorldHelloWorld.ino:4:31: fatal error: LiquidCrystal_I2C.h: No such file or directory

 #include <LiquidCrystal_I2C.h>

                               ^

compilation terminated.

Несколько библиотек найдено для «LiquidCrystal.h»

 Используется: C:UsersихихиихDocumentsArduinolibrariesLiquidCrystal

Не используется: D:Program Files (x86)ArduinolibrariesLiquidCrystal

exit status 1

Ошибка компиляции для платы Arduino Nano.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:09

#10

meganom

Offline

Зарегистрирован: 07.05.2017

может я что то не так устанавливаю , мне после работы с мк на си. тяжело понять структуру скетча , я думал, загрузил скетч и используй , я так понял нужно подключать еще библиотеки , но как правильно это сделать я не пойму

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:09

#11

T.Rook

Offline

Зарегистрирован: 05.03.2016

meganom пишет:

да установил 

Arduino: 1.8.2 (Windows 8.1), Плата:»Arduino Nano, ATmega328″

Изменены опции сборки, пересобираем все

D:ArduinoArduino-LiquidCrystal-I2C-libraryArduino-LiquidCrystal-I2C-library-masterexamplesHelloWorldHelloWorld.ino:4:31: fatal error: LiquidCrystal_I2C.h: No such file or directory

 #include <LiquidCrystal_I2C.h>

                               ^

compilation terminated.

Несколько библиотек найдено для «LiquidCrystal.h»

 Используется: C:UsersихихиихDocumentsArduinolibrariesLiquidCrystal

Не используется: D:Program Files (x86)ArduinolibrariesLiquidCrystal

exit status 1

Ошибка компиляции для платы Arduino Nano.

Давайте удалим все тут: C:UsersихихиихDocumentsArduinolibrariesLiquidCrystal

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:10

#12

meganom

Offline

Зарегистрирован: 07.05.2017

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:10

#13

T.Rook

Offline

Зарегистрирован: 05.03.2016

meganom пишет:

может я что то не так устанавливаю , мне после работы с мк на си. тяжело понять структуру скетча , я думал, загрузил скетч и используй , я так понял нужно подключать еще библиотеки , но как правильно это сделать я не пойму

Начальные знания тут: Среда разработки

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:11

#14

andriano

andriano аватар

Offline

Зарегистрирован: 20.06.2015

meganom, установить нужно только одну. Это не тот случай, когда чем больше, тем лучше.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:37

#15

meganom

Offline

Зарегистрирован: 07.05.2017

И так, я скачал скетч, открываю его. Вижу что в начале есть подключение двух библиотек

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

Wire.h  почему-то написана красным шрифтом а LiquidCrystal_I2C.h черным , что это значит я не понял, но скорей всего это значит что одна библиотека подключена а вторая нет . Дальше мне последовательность действий не понятна. Как правильно подключить библиотеку LiquidCrystal_I2C.h  и Wire.h ? Я так понимаю, что  они должны находится в папке library среды ардуино , и при начале компиляции проекта среда лезет в эту папку и подтягивает эти библиотеки если их нет то выдаёт ошибку .Мне не понятно где брать недостающую библиотеку и как правильно ее подключить к проекту .По идеи недостающая библиотека есть в папке с скетчем который я скачал . а проектах ардуино есть только два типа файлов , сам скетч и .h файл ? Сколько типов файлов нужно подключать к проекту ? 

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:47

#16

Клапауций 112

Клапауций 112 аватар

Offline

Зарегистрирован: 01.03.2017

meganom пишет:

И так, я скачал скетч…

вот на этом месте закрывай этот форум и трахай мосг автору скетча.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:51

#17

toc

Offline

Зарегистрирован: 09.02.2013

>> Пару дней как пользуюсь платкой arduino nano.
>> Какой скетч не возьму , везде пишет- Ошибка компиляции для платы Arduino Nano.

meganom, дайте результат компиляции скетча Blink

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 21:54

#18

T.Rook

Offline

Зарегистрирован: 05.03.2016

meganom пишет:

 Сколько типов файлов нужно подключать к проекту ? 

Если коротко, то библиотека:  h — заголовочный файл (обычно указывают в include), cpp — реализация.

По include и другие конструкции языка таки следует почитать.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 22:10

#19

meganom

Offline

Зарегистрирован: 07.05.2017

T.Rook пишет:

meganom пишет:

 Сколько типов файлов нужно подключать к проекту ? 

Если коротко, то библиотека:  h — заголовочный файл (обычно указывают в include), cpp — реализация.

По include и другие конструкции языка таки следует почитать.

Это я все знаю . Объясните мне, куда положить или как подключить эти библиотеки  если они у меня есть 

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 22:17

#20

meganom

Offline

Зарегистрирован: 07.05.2017

подключил библиотеку .выпало еще больше ошибок 

Arduino: 1.8.2 (Windows 8.1), Плата:»Arduino Nano, ATmega328″

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::getBacklight()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::expanderWrite(unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::noBacklight()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::backlight()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::pulseEnable(unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::write4bits(unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::send(unsigned char, unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::clear()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::home()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::noDisplay()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::display()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::noCursor()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::cursor()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::noBlink()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::blink()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::scrollDisplayLeft()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::scrollDisplayRight()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::leftToRight()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::rightToLeft()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::autoscroll()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::noAutoscroll()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::createChar(unsigned char, unsigned char*)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::begin()’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::load_custom_character(unsigned char, unsigned char*)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::setBacklight(unsigned char)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

librariesArduino-LiquidCrystal-I2C-library-masterLiquidCrystal_I2C.cpp.o (symbol from plugin): In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char, unsigned char)’:

(.text+0x0): multiple definition of `LiquidCrystal_I2C::printstr(char const*)’

sketchLiquidCrystal_I2C.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1

Ошибка компиляции для платы Arduino Nano.

Этот отчёт будет иметь больше информации с

включенной опцией Файл -> Настройки ->

«Показать подробный вывод во время компиляции»

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 22:27

#21

T.Rook

Offline

Зарегистрирован: 05.03.2016

meganom пишет:

T.Rook пишет:

meganom пишет:

 Сколько типов файлов нужно подключать к проекту ? 

Если коротко, то библиотека:  h — заголовочный файл (обычно указывают в include), cpp — реализация.

По include и другие конструкции языка таки следует почитать.

Это я все знаю . Объясните мне, куда положить или как подключить эти библиотеки  если они у меня есть 

1. в каталог libraries. Распаковать в каталог и этого достаточно.

2. Давать кучу ошибок без скеча — подумай, как люди у которых ты спрашиваешь будут анализировать и что?

3. По поводу «collect2.exe: error: ld returned 1 exit status» — недавно на форуме было, поищите.

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 22:29

#22

meganom

Offline

Зарегистрирован: 07.05.2017

T.Rook пишет:

meganom пишет:

T.Rook пишет:

meganom пишет:

 Сколько типов файлов нужно подключать к проекту ? 

Если коротко, то библиотека:  h — заголовочный файл (обычно указывают в include), cpp — реализация.

По include и другие конструкции языка таки следует почитать.

Это я все знаю . Объясните мне, куда положить или как подключить эти библиотеки  если они у меня есть 

1. в каталог libraries. Распаковать в каталог и этого достаточно.

2. Давать кучу ошибок без скеча — подумай, как люди у которых ты спрашиваешь будут анализировать и что?

1 Где это каталог находится?

2 В каком виде нужен скетч? Тут можно прикреплять файлы?

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 22:30

#23

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

ТС точно не читатель, ТС писатель

  • Войдите на сайт для отправки комментариев

Вс, 07/05/2017 — 22:35

#24

T.Rook

Offline

Зарегистрирован: 05.03.2016

  • Войдите на сайт для отправки комментариев

Чт, 25/05/2017 — 18:50

#25

FrostDad

Offline

Зарегистрирован: 25.05.2017

Здраствуйте, у меня анологичная проблема.

скетч: /*   Данный скетч делает следующее: передатчик (TX) отправляет массив
 *   данных, который генерируется согласно показаниям с кнопки и с
 *   двух потенциомтеров. Приёмник (RX) получает массив, и записывает
 *   данные на реле, сервомашинку и генерирует ШИМ сигнал на транзистор.
    by AlexGyver 2016
*/

#include <SPI.h>
#include «nRF24L01.h»
#include «RF24.h»

RF24 radio(9,10); // «создать» модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги

byte address[][6] = {«1Node»,»2Node»,»3Node»,»4Node»,»5Node»,»6Node»};  //возможные номера труб

void setup(){
  Serial.begin(9600); //открываем порт для связи с ПК
  radio.begin(); //активировать модуль
  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0,15);     //(время между попыткой достучаться, число попыток)
  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(32);     //размер пакета, в байтах

  radio.openReadingPipe(1,address[0]);      //хотим слушать трубу 0
  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!

 
  radio.powerUp(); //начать работу
  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль
}

void loop() {
    byte pipeNo, gotByte;                          
    while( radio.available(&pipeNo)){    // слушаем эфир со всех труб
      radio.read( &gotByte, sizeof(gotByte) );         // чиатем входящий сигнал

      Serial.print(«Recieved: «); Serial.println(gotByte);
   }
}

ошибка:Arduino: 1.8.2 (Windows 7), Плата:»Arduino Nano, ATmega328″

C:ДаняардуиносчетчискечиNRF24L01sketch_may25aNRF24L01sketch_may25a.ino:9:22: fatal error: nRF24L01.h: No such file or directory

compilation terminated.

exit status 1
Ошибка компиляции для платы Arduino Nano.

Прочитав данную тему, так и не разобрался в чем дело,прошу помощи.

  • Войдите на сайт для отправки комментариев

Чт, 25/05/2017 — 19:15

#26

Jeka_M

Jeka_M аватар

Offline

Зарегистрирован: 06.07.2014

  • Войдите на сайт для отправки комментариев

Чт, 25/05/2017 — 19:20

#27

qwone

qwone аватар

Offline

Зарегистрирован: 03.07.2016

(анекдот)
  Сотый раз Чунгачгук наступал на грабли и не мог никак понять, что же бъет его по лбу. Надо открыть тему на каком нибудь форуме. Но решить на каком форуме открыть эту тему Чунгачгук не смог. Наверно надо на форуме "Охота и рыбалка". Ведь Чунгачгук счил себя опытным охотником, а не каким-то садоводом.

  • Войдите на сайт для отправки комментариев

Сб, 27/05/2017 — 15:58

#28

vovan_UA

Offline

Зарегистрирован: 27.05.2017

A у меня вот такую ошибку выдает после попытки залития скеча  через XLoader то что ниже ошибка в адруино ид при том что не имеет значения  что закидывать сразу вопрос можно ли это вылечить как то  как я вижу это ошибка при проверке  

Скетч использует 21464 байт (69%) памяти устройства. Всего доступно 30720 байт.

Глобальные переменные используют 977 байт (47%) динамической памяти, оставляя 1071 байт для локальных переменных. Максимум: 2048 байт.

avrdude: verification error, first mismatch at byte 0x0042

         0xf1 != 0x1d

avrdude: verification error; content mismatch

avrdude: verification error; content mismatch

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 13:56

#29

DAFdriver

Offline

Зарегистрирован: 12.08.2016

В ардуино я новичек . Появился форум (понарамный ксв-метр) . Решил собрать. И сразу проблемка — неполучается прошить arduino nano . 

 Там несколько скетчей и ни один не мгу залить , другие библиотеки (примеры)грузятся и работают. Помогите плиз .

                                                       Вот скетч :

/***************************************************************************

 *  Name    : DDS_Sweeper.BAS                                                *

 *  Author  : Beric Dunn (K6BEZ)                                             *

 *  Notice  : Copyright (c) 2013  CC-BY-SA                                   *

 *          : Creative Commons Attribution-ShareAlike 3.0 Unported License   *

 *  Date    : 9/26/2013                                                      *

 *  Version : 1.0                                                            *

 *  Notes   : Written using for the Arduino Micro                            *

 *          :   Pins:                                                        *

 *          :   A0 — Reverse Detector Analog in                              *

 *          :   A1 — Forward Detector Analog in                              *

 *          : Modified by Norbert Redeker (DG7EAO) 07/2014                   *

 *          : TFT Display mit ILI9341 Chip, SPI, 240 x 320                   *

 ***************************************************************************/

#include <SPI.h>

#include «Ucglib.h»

#include «rusFont.h»

// Define Pins used to control AD9850 DDS

const int FQ_UD=11;

const int SDAT=10;

const int SCLK=12;

const int RESET=9;

// Variablen für Display

double vswrArray[110]; //Array für SWR

int z = 0;            // Index für Array

double SwrFreq = 14;  // Variable für Freq. mit SWR Min.

double SwrMin = 100;   // Variable für SWR Min.

double Freq1 = 1;     // Freq. Links unterste Zeile Display

double Freq2 = 15;    // Freq. Mitte unterste Zeile Display

double Freq3 = 30;    // Freq. Mitte unterste Zeile Display

unsigned long milliold = 0;  //Millisekunden für Entprellung Interrupt

unsigned long millinew = 0;  //Millisekunden für Entprellung Interrupt

int flag = 0;                // wir auf 1 gesetzt bei Interrupt, in void Loop perform_sweep

double counter = 0;          // Zähler um erste Interrupts zu ignorieren

// Variablen für Messung

double Fstart_MHz = 1;  // Start Frequency for sweep

double Fstop_MHz = 30;  // Stop Frequency for sweep

double current_freq_MHz; // Temp variable used during sweep

long serial_input_number; // Used to build number from serial stream

int num_steps = 100; // Number of steps to use in the sweep

char incoming_char; // Character read from serial stream

//Konstruktor für Display

Ucglib_ST7735_18x128x160_SWSPI ucg(/*sclk=*/ 12, /*data=*/ 10, /*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4);

// the setup routine runs once when you press reset:

void setup() {

  // Voltmetr

  analogReference(INTERNAL);

  float Vbat = (analogRead(A5) * 1.1) / 1023.0;

  float Vin = Vbat / (69.8 / (783.0 + 69.8)); // R2/(R1+R2)

  // Schreibe Info Text auf Display

  ucg.begin(UCG_FONT_MODE_SOLID);

  ucg.clearScreen();

  ucg.setRotate90();

  ucg.setFont(ucg_font_9x15_tf);

  ucg.setColor(255, 255, 255); 

  ucg.setPrintPos(10,20);

  ucg.print(«Arduino Antenna»);

  ucg.setPrintPos(25,40);

  ucg.print(«SWR Analyzer»);

  ucg.setPrintPos(35,60);

  ucg.print(«1-30 MHz»);

  ucg.setPrintPos(20,80);

  ucg.print(«Komsomolsk 2017»);

  ucg.setPrintPos(5,128);

  ucg.print(«BAT»);

  ucg.setPrintPos(40,128);

  ucg.print(Vin, 1);

  // Configiure DDS control pins for digital output

  pinMode(FQ_UD,OUTPUT);

  pinMode(SCLK,OUTPUT);

  pinMode(SDAT,OUTPUT);

  pinMode(RESET,OUTPUT);

  //Tasten Interrupt an PIN 2

  pinMode(2,OUTPUT);

  digitalWrite(2, HIGH);

  attachInterrupt(0, key2, FALLING);

  unsigned long milliold = millis();

  //Tasten Interrupt an PIN 3

  pinMode(3,OUTPUT);

  digitalWrite(3, HIGH);

  attachInterrupt(1, key3, FALLING);

  //milliold = millis();

  // Configure LED pin for digital output

  pinMode(13,OUTPUT);

  // Set up analog inputs on A0 and A1, internal reference voltage

  pinMode(A0,INPUT);

  pinMode(A1,INPUT);

  analogReference(INTERNAL);

  // initialize serial communication at 57600 baud

  Serial.begin(57600);

  // Reset the DDS

  digitalWrite(RESET,HIGH);

  digitalWrite(RESET,LOW);

  //Initialise the incoming serial number to zero

  serial_input_number=0;

}

// the loop routine runs over and over again forever:

void loop() {

  //Check for character

  if(Serial.available()>0){

    incoming_char = Serial.read();

    switch(incoming_char){

    case ‘0’:

    case ‘1’:

    case ‘2’:

    case ‘3’:

    case ‘4’:

    case ‘5’:

    case ‘6’:

    case ‘7’:

    case ‘8’:

    case ‘9’:

      serial_input_number=serial_input_number*10+(incoming_char-‘0’);

      break;

    case ‘A’:

      //Turn frequency into FStart

      Fstart_MHz = ((double)serial_input_number)/1000000;

      serial_input_number=0;

      break;

    case ‘B’:

      //Turn frequency into FStop

      Fstop_MHz = ((double)serial_input_number)/1000000;

      serial_input_number=0;

      break;

    case ‘C’:

      //Turn frequency into FStart and set DDS output to single frequency

      Fstart_MHz = ((double)serial_input_number)/1000000;

      //SetDDSFreq(Fstart_MHz);

      SetDDSFreq(Fstart_MHz * 1000000);

      delay(100);

      SetDDSFreq(Fstart_MHz * 1000000);

      serial_input_number=0;    

      break;

    case ‘N’:

      // Set number of steps in the sweep

      num_steps = serial_input_number;

      serial_input_number=0;

      break;

    case ‘S’:    

    case ‘s’:    

      Perform_sweep();

      break;

    case ‘?’:

      // Report current configuration to PC    

      Serial.print(«Start Freq:»);

      Serial.println(Fstart_MHz*1000000);

      Serial.print(«Stop Freq:»);

      Serial.println(Fstop_MHz*1000000);

      Serial.print(«Num Steps:»);

      Serial.println(num_steps);

      break;

    }

    Serial.flush();     

  } 

  //Perform Sweep nach Interrupt PIN2 oder 3

  // ingnoriere Startup Interrupts durch counter

  if (flag == 1 && counter >2) 

  {

    flag = 0;

    Perform_sweep(); 

  }

}

void Perform_sweep(){

  double FWD=0;

  double REV=0;

  double VSWR;

  double Fstep_MHz = (Fstop_MHz-Fstart_MHz)/num_steps;

  z = 0;

  SwrMin = 100;

  ucg.clearScreen();

  ucg.setFont(ucg_font_9x15_tf);

  ucg.setColor(255, 0, 100); 

  ucg.setPrintPos(35,60);

  ucg.print(«Analiz KSW»);

  // Start loop 

  for(int i=0;i<=num_steps;i++){

    // Calculate current frequency

    current_freq_MHz = Fstart_MHz + i*Fstep_MHz;

    // Set DDS to current frequency

    SetDDSFreq(current_freq_MHz*1000000);

    // Wait a little for settling

    //delay(10);

    delay(100);

    // Read the forward and reverse voltages

    REV = analogRead(A0);

    FWD = analogRead(A1);

    //Offset Korrektur

    REV = REV-1;

    if(REV>=FWD){

      REV = FWD-1;

    }

    if (REV <1) {

      REV = 1;

    }

    VSWR = (FWD+REV)/(FWD-REV);

    //Skalieren für Ausgabe

    VSWR = VSWR * 1000;

    // Send current line back to PC over serial bus

    Serial.print(current_freq_MHz*1000000);

    Serial.print(«,0,»);

    Serial.print(VSWR);

    Serial.print(«,»);

    Serial.print(FWD);

    Serial.print(«,»);

    Serial.println(REV);

    // Übergebe SWR an Array

    // ERmittele Freq bei niedrigsten SWR

    vswrArray[z] = VSWR/1000;

    if (vswrArray[z] > 10) vswrArray[z] = 10;

    if (vswrArray[z] < SwrMin && vswrArray[z] > 1) 

    {

      SwrMin = vswrArray[z];

      SwrFreq = current_freq_MHz;

    }    

    z = z + 1;

  }

  // Send «End» to PC to indicate end of sweep

  Serial.println(«End»);

  Serial.flush(); 

  ucg.clearScreen();

  //Zeichne Grid

  CreateGrid();

  ucg.setColor(76, 255, 0);

  // Draw Line

  double last = 10;

  double xx = 6;

  double j = 1;

  for (int i = 1 ;i < 103; i++){

    xx = vswrArray[i];

    ucg.drawLine(j,105-last*9, j+1, 105-xx*9);

    ucg.drawLine(j+1,105-last*9, j+2, 105-xx*9);

    j = j + 1.5;

    last = xx;  

  }     

}

// Setze DDS Frequenz

void SetDDSFreq(double Freq_Hz){

  // Calculate the DDS word — from AD9850 Datasheet

  int32_t f = Freq_Hz * 4294967295/125000000;

  // Send one byte at a time

  for (int b=0;b<4;b++,f>>=8){

    send_byte(f & 0xFF);

  }

  // 5th byte needs to be zeros

  send_byte(0);

  // Strobe the Update pin to tell DDS to use values

  digitalWrite(FQ_UD,HIGH);

  digitalWrite(FQ_UD,LOW);

}

// Sende Daten an DDS

void send_byte(byte data_to_send){

  // Bit bang the byte over the SPI bus

  for (int i=0; i<8; i++,data_to_send>>=1){

    // Set Data bit on output pin

    digitalWrite(SDAT,data_to_send & 0x01);

    // Strobe the clock pin

    digitalWrite(SCLK,HIGH);

    digitalWrite(SCLK,LOW);

  }

}

//Zeichne Grid auf TFT Display  

void CreateGrid()

{

  //ucg.clearScreen();

  double maxSwr = 10;

  ucg.setFont(ucg_font_9x15_tf);

  ucg.drawHLine(0,60,155);

  ucg.drawHLine(0,98,155);

  ucg.drawVLine(39,15,90);

  ucg.drawVLine(78,15,90);

  ucg.drawVLine(117,15,90);

  ucg.setPrintPos(0, 118);

  ucg.print(Freq1,3);

  ucg.setPrintPos(65, 118);

  ucg.print(Freq2,3);

  ucg.setPrintPos(130, 118);

  ucg.print(Freq3,3);

  ucg.setPrintPos(1, 11);

  ucg.print(«SWR»);

  ucg.setPrintPos(30, 11);

  ucg.print(SwrMin,2);

  ucg.setPrintPos(65, 11);

  ucg.print(«>»);

  ucg.setPrintPos(75, 11);

  ucg.print(maxSwr,2);

  ucg.setPrintPos(125, 11);

  ucg.print(SwrFreq,3);

  ucg.drawRFrame(0,15,155,90, 1);

}  

// Interrupt Service Routine

// Abfrage Low an Pin 2

void key2()

{

  //ignoriere Startup Interrupts > counter 

  counter = counter + 1; 

  //Entprellen mit millis()

  millinew = millis();

  if (millinew — milliold < 1000)

  {

    milliold = millinew;

    return; 

  }

  milliold = millinew;

  Fstart_MHz = 1;  // Start Frequency for sweep

  Fstop_MHz = 30;  // Stop Frequency for sweep

  num_steps = 102; // Steps

  Freq1 = 1;       // Unterste Zeile Display Freq. Links

  Freq2 = 15;      // Unterste Zeile Display Freq. Mitte

  Freq3 = 30;      // Unterste Zeile Display Freq. Recht

  //Perform_sweep();

  flag = 1;

}

// Interrupt Service Routine

// Abfrage Low an Pin 3

void key3()

{

  //ignoriere Startup Interrupts > counter 

  counter = counter + 1;  

  //Entprellen mit millis()

  millinew = millis();

  if (millinew — milliold < 1000)

  {

    milliold = millinew;

    return; 

  }

  milliold = millinew;

  int x = SwrFreq + 0.5; //Runde auf Mhz

  Fstart_MHz = x-1;  // Start Frequency for sweep

  Fstop_MHz = x+1;   // Stop Frequency for sweep

  num_steps = 102;  // Steps

  Freq1 = x-1;      // Unterste Zeile Display Freq. Links

  Freq2 = x;        // Unterste Zeile Display Freq. Mitte

  Freq3 = x+1;      // Unterste Zeile Display Freq. Rechts

  //Perform_sweep();

  flag = 1;

}

                         плюс Русский текст , он в том — же скетче :

const ucg_fntpgm_uint8_t my14x10rus[4157] UCG_SECTION(«.progmem.my14x10») = {

  0,11,15,0,255,14,3,35,6,248,32,255,0,15,255,14,

  0,0,0,0,8,0,0,2,14,14,4,1,0,64,192,192,

  192,192,192,192,192,192,128,0,64,192,128,6,5,5,7,0,

  9,68,204,204,204,136,10,14,28,11,0,0,8,128,8,128,

  17,0,17,0,127,192,17,0,17,0,34,0,34,0,255,128,

  34,0,34,0,68,0,68,0,9,14,28,10,0,0,8,0,

  8,0,59,128,123,0,200,0,200,0,232,0,107,0,11,128,

  9,128,9,128,111,0,238,0,8,0,8,14,14,9,0,0,

  97,179,214,102,12,12,24,24,48,48,102,107,205,134,9,14,

  28,10,0,0,56,0,124,0,108,0,108,0,108,0,56,0,

  56,128,109,128,199,0,194,0,199,0,237,128,124,128,56,0,

  2,5,5,3,0,10,128,192,192,192,64,5,14,14,6,0,

  0,24,48,96,96,192,192,192,192,192,192,96,96,48,24,5,

  14,14,6,0,0,192,96,48,48,24,24,24,24,24,24,56,

  48,96,192,7,7,7,8,0,4,146,214,124,16,124,214,146,

  8,10,10,10,0,1,8,24,24,24,127,254,24,24,24,16,

  4,6,6,5,0,0,112,96,96,64,192,192,8,2,2,9,

  0,5,127,254,3,3,3,4,0,0,224,160,224,8,14,14,

  9,0,0,3,3,6,6,12,12,24,24,48,48,96,96,192,

  192,9,14,28,10,0,0,62,0,127,0,227,128,197,128,197,

  128,197,128,201,128,201,128,209,128,209,128,209,128,227,128,127,

  0,62,0,9,14,28,10,0,0,12,0,28,0,60,0,124,

  0,8,0,4,0,12,0,12,0,8,0,4,0,12,0,12,

  0,127,128,255,128,9,14,28,10,0,0,126,0,255,0,195,

  128,193,128,1,128,3,128,63,0,126,0,224,0,192,0,192,

  0,192,0,223,128,191,0,9,14,28,10,0,0,126,0,255,

  0,195,128,1,128,1,128,3,0,58,0,119,0,3,128,1,

  128,1,128,3,128,255,0,126,0,9,14,28,10,0,0,2,

  0,6,0,14,0,30,0,62,0,118,0,230,0,198,0,251,

  128,247,0,6,0,6,0,6,0,4,0,9,14,28,10,0,

  0,127,128,127,128,96,0,96,0,96,0,110,0,111,0,3,

  128,1,128,1,128,1,128,195,0,255,0,124,0,9,14,28,

  10,0,0,31,0,127,0,96,0,192,0,192,0,192,0,222,

  0,223,0,195,128,193,128,193,128,227,0,127,0,60,0,9,

  14,28,10,0,0,127,128,255,128,0,0,3,0,3,0,6,

  0,6,0,12,0,12,0,24,0,24,0,48,0,48,0,32,

  0,9,14,28,10,0,0,58,0,119,0,227,128,193,128,193,

  128,99,0,54,0,111,0,227,128,193,128,193,128,227,128,119,

  0,46,0,9,14,28,10,0,0,60,0,255,0,231,0,195,

  128,193,128,193,128,225,128,253,128,125,128,1,128,3,128,7,

  0,127,0,252,0,3,11,11,4,0,2,224,160,224,0,0,

  0,0,0,224,160,224,4,13,13,5,0,0,112,80,112,0,

  0,0,0,0,112,80,112,96,192,9,11,22,10,0,1,1,

  128,3,128,15,0,28,0,120,0,224,0,120,0,28,0,15,

  0,3,128,1,128,9,6,12,10,0,4,127,128,255,0,0,

  0,0,0,127,128,255,0,9,11,22,10,0,1,192,0,224,

  0,120,0,60,0,15,0,3,128,15,0,60,0,120,0,224,

  0,192,0,8,14,14,9,0,0,116,238,135,3,3,6,14,

  56,48,48,0,0,48,48,9,11,22,10,0,1,62,0,65,

  0,128,128,154,128,166,128,162,128,162,128,166,128,155,0,64,

  0,63,128,9,14,28,10,0,0,252,0,254,0,199,0,195,

  128,193,128,193,128,193,128,253,128,253,128,193,128,193,128,193,

  128,193,128,129,0,9,14,28,10,0,0,94,0,223,0,195,

  128,193,128,193,128,195,128,255,0,255,0,195,128,193,128,193,

  128,195,128,223,0,190,0,9,14,28,10,0,0,14,0,63,

  0,115,128,97,128,192,0,192,0,192,0,192,0,192,0,192,

  0,96,0,112,0,63,128,15,0,9,14,28,10,0,0,238,

  0,111,0,99,128,97,128,97,128,97,128,97,128,97,128,97,

  128,97,128,97,128,99,128,111,0,238,0,9,14,28,10,0,

  0,95,128,223,0,192,0,192,0,192,0,192,0,223,0,222,

  0,192,0,192,0,192,0,192,0,223,128,191,0,9,14,28,

  10,0,0,95,128,223,0,192,0,192,0,192,0,192,0,223,

  0,222,0,192,0,192,0,192,0,192,0,192,0,128,0,9,

  14,28,10,0,0,63,128,127,128,225,128,192,0,192,0,192,

  0,192,0,207,128,223,128,193,128,193,128,225,128,127,128,62,

  0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,193,

  128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,193,

  128,64,128,8,14,14,10,1,0,254,127,24,24,24,24,24,

  24,24,24,24,24,254,127,9,14,28,10,0,0,31,128,63,

  128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,

  128,1,128,195,128,255,0,62,0,9,14,28,10,0,0,65,

  128,195,128,199,0,206,0,220,0,216,0,216,0,216,0,216,

  0,220,0,206,0,199,0,195,128,65,128,9,14,28,10,0,

  0,64,0,192,0,192,0,192,0,192,0,192,0,192,0,192,

  0,192,0,192,0,192,0,192,0,255,128,255,0,9,14,28,

  10,0,0,193,128,227,128,247,128,247,128,213,128,193,128,213,

  128,221,128,221,128,201,128,193,128,193,128,193,128,129,0,9,

  14,28,10,0,0,225,0,225,128,241,128,241,128,249,128,217,

  128,221,128,205,128,205,128,197,128,197,128,193,128,193,128,128,

  128,9,14,28,10,0,0,46,0,111,0,227,128,193,128,193,

  128,193,128,193,128,193,128,193,128,193,128,193,128,227,128,123,

  0,58,0,9,14,28,10,0,0,254,0,255,0,195,128,193,

  128,193,128,195,128,223,0,222,0,192,0,192,0,192,0,192,

  0,192,0,128,0,10,15,30,10,0,255,46,0,111,0,227,

  128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,

  128,227,0,123,128,58,192,0,192,9,14,28,10,0,0,126,

  0,255,0,195,128,193,128,193,128,195,128,223,0,220,0,206,

  0,199,0,195,128,193,128,193,128,129,0,9,14,28,10,0,

  0,62,0,127,0,224,0,192,0,192,0,224,0,118,0,27,

  0,3,128,1,128,1,128,3,128,255,128,127,0,9,14,28,

  10,0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,

  0,12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,

  14,28,10,0,0,64,128,193,128,193,128,193,128,193,128,193,

  128,193,128,193,128,193,128,193,128,193,128,99,0,127,0,62,

  0,9,14,28,10,0,0,227,128,99,0,99,0,99,0,34,

  0,54,0,54,0,54,0,20,0,28,0,28,0,28,0,8,

  0,8,0,10,14,28,11,0,0,64,64,192,192,192,192,192,

  192,192,192,192,192,204,192,204,192,204,192,222,192,222,192,211,

  192,193,192,128,192,9,14,28,10,0,0,193,128,193,128,193,

  128,99,0,99,0,50,0,56,0,28,0,14,0,103,0,99,

  0,193,128,193,128,193,128,10,14,28,10,0,0,192,192,192,

  192,97,128,97,128,51,0,63,0,30,0,12,0,8,0,4,

  0,12,0,12,0,12,0,8,0,9,14,28,10,0,0,127,

  128,255,128,1,128,3,128,7,0,6,0,4,0,16,0,48,

  0,112,0,224,0,192,0,255,128,255,0,5,14,14,6,0,

  0,248,192,192,192,192,192,192,192,192,192,192,192,192,248,9,

  14,28,10,0,0,192,0,96,0,96,0,48,0,48,0,24,

  0,24,0,12,0,12,0,6,0,6,0,3,0,3,0,1,

  128,5,14,14,6,0,0,248,24,24,24,24,24,24,24,24,

  24,24,24,24,248,9,6,12,10,0,8,8,0,28,0,54,

  0,99,0,193,128,128,128,10,1,2,10,0,255,255,192,4,

  3,3,5,0,12,224,96,48,8,11,11,9,0,0,124,127,

  3,3,59,123,227,195,199,255,123,9,13,26,10,0,0,64,

  0,192,0,192,0,192,0,192,0,222,0,223,0,195,128,193,

  128,193,128,195,0,255,0,222,0,8,11,11,9,0,0,30,

  63,115,224,192,192,192,224,240,127,30,9,13,26,10,0,0,

  0,128,1,128,1,128,1,128,1,128,61,128,125,128,225,128,

  193,128,193,128,227,128,127,128,61,128,8,11,11,9,0,0,

  60,126,231,195,195,223,222,192,227,127,62,7,13,13,8,0,

  0,62,124,96,96,252,248,96,96,96,96,96,96,32,8,13,

  13,9,0,0,63,127,227,195,195,195,227,123,51,3,3,127,

  254,8,13,13,9,0,0,64,192,192,192,222,223,195,195,195,

  195,195,195,130,2,13,13,3,0,0,64,192,128,64,192,192,

  192,192,192,192,192,192,128,5,14,14,6,0,255,16,24,24,

  8,48,120,24,24,24,24,24,24,120,240,8,13,13,9,0,

  0,64,192,192,198,198,204,216,216,216,204,198,199,131,2,14,

  14,3,0,0,64,192,192,192,192,192,192,192,192,192,192,192,

  192,128,9,11,22,10,0,0,91,0,219,128,201,128,201,128,

  201,128,201,128,201,128,201,128,201,128,193,128,129,0,8,11,

  11,9,0,0,94,223,195,195,195,195,195,195,195,195,130,8,

  11,11,9,0,0,52,118,227,195,195,195,195,195,227,118,52,

  8,11,11,9,0,0,252,254,199,195,199,222,220,192,192,192,

  128,9,13,26,9,0,255,63,0,127,0,227,0,195,0,195,

  0,195,0,251,0,123,0,3,0,3,0,3,128,3,128,3,

  128,7,11,11,8,0,0,92,222,224,224,192,192,192,192,192,

  192,128,8,11,11,9,0,0,62,127,192,192,240,102,15,3,

  3,254,124,6,13,13,7,0,0,32,96,96,252,248,96,96,

  96,96,96,96,124,60,8,11,11,9,0,0,65,195,195,195,

  195,195,195,195,227,123,58,8,11,11,9,0,0,129,129,195,

  195,102,102,102,36,60,24,24,9,11,22,10,0,0,128,128,

  193,128,201,128,201,128,201,128,201,128,193,128,221,128,247,128,

  227,128,65,0,8,11,11,9,0,0,195,102,102,52,24,24,

  24,52,102,102,195,8,12,12,9,0,255,193,227,99,102,110,

  44,12,24,24,48,240,224,8,11,11,9,0,0,127,255,7,

  6,12,0,48,96,224,255,254,7,14,14,8,0,0,14,28,

  24,24,24,48,224,224,48,24,24,24,28,14,2,16,16,5,

  1,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192,

  192,192,8,14,14,9,0,0,224,112,24,24,24,12,7,7,

  12,24,24,24,112,224,10,5,10,11,0,4,48,192,120,192,

  204,192,199,128,195,0,5,13,13,6,0,1,248,136,136,136,

  136,136,136,136,136,136,136,136,248,8,11,11,9,0,0,252,

  254,199,195,199,222,220,192,192,192,128,8,11,11,9,0,0,

  30,63,115,224,192,192,192,224,240,127,30,8,11,11,9,0,

  0,127,254,24,24,24,24,24,24,24,24,16,8,12,12,9,

  0,255,193,227,99,102,110,44,12,24,24,48,240,224,8,12,

  12,9,0,255,126,255,219,219,219,219,90,24,24,24,24,16,

  8,11,11,9,0,0,195,102,102,52,24,24,24,52,102,102,

  195,8,12,12,9,0,255,132,198,198,198,198,198,198,198,198,

  254,255,3,8,11,11,9,0,0,65,195,195,195,231,127,63,

  3,3,3,2,8,11,11,9,0,0,130,195,195,211,219,219,

  219,219,219,203,255,8,12,12,9,0,255,130,195,195,211,219,

  219,219,219,218,200,255,3,8,11,11,9,0,0,192,224,96,

  96,108,110,103,99,103,126,124,8,11,11,9,0,0,130,195,

  195,195,219,221,207,199,207,253,251,8,11,11,9,0,0,64,

  192,192,192,220,222,199,195,199,254,252,8,11,11,9,0,0,

  124,254,198,3,27,59,3,3,6,254,120,9,11,22,10,0,

  0,71,0,207,128,205,128,205,128,221,128,221,128,205,128,205,

  128,205,128,207,128,135,0,8,11,11,9,0,0,63,127,227,

  195,227,123,59,51,51,115,226,9,14,28,10,0,0,252,0,

  254,0,199,0,195,128,193,128,193,128,193,128,253,128,253,128,

  193,128,193,128,193,128,193,128,129,0,9,14,28,10,0,0,

  223,128,223,0,192,0,192,0,192,0,192,0,222,0,223,0,

  195,128,193,128,193,128,195,128,255,0,254,0,9,14,28,10,

  0,0,94,0,223,0,195,128,193,128,193,128,195,128,255,0,

  255,0,195,128,193,128,193,128,195,128,223,0,190,0,9,14,

  28,10,0,0,223,0,223,128,192,0,192,0,192,0,192,0,

  192,0,192,0,192,0,192,0,192,0,192,0,192,0,128,0,

  9,14,28,10,0,0,11,0,27,0,59,0,115,0,99,0,

  99,0,99,0,99,0,99,0,99,0,123,0,251,128,193,128,

  193,128,9,14,28,10,0,0,95,128,223,0,192,0,192,0,

  192,0,192,0,223,0,222,0,192,0,192,0,192,0,192,0,

  223,128,191,0,10,14,28,11,0,0,64,64,192,192,196,192,

  204,192,204,192,109,128,109,128,109,128,109,128,204,192,204,192,

  204,192,200,192,128,128,9,14,28,10,0,0,122,0,251,0,

  131,128,1,128,1,128,3,0,58,0,123,0,3,128,1,128,

  1,128,131,128,251,0,120,0,9,14,28,10,0,0,67,128,

  195,128,199,128,199,128,199,128,205,128,205,128,205,128,217,128,

  217,128,217,128,209,128,209,128,193,0,9,14,28,10,0,0,

  91,128,219,128,215,128,199,128,199,128,205,128,205,128,205,128,

  217,128,217,128,217,128,209,128,209,128,193,0,9,14,28,10,

  0,0,65,128,195,128,199,0,206,0,220,0,216,0,216,0,

  216,0,216,0,220,0,206,0,199,0,195,128,65,128,9,14,

  28,10,0,0,220,0,222,0,199,0,195,128,193,128,193,128,

  193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,

  9,14,28,10,0,0,193,128,227,128,247,128,247,128,213,128,

  193,128,213,128,221,128,221,128,201,128,193,128,193,128,193,128,

  129,0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,

  193,128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,

  193,128,64,128,9,14,28,10,0,0,46,0,111,0,227,128,

  193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,

  227,128,123,0,58,0,9,14,28,10,0,0,223,128,223,128,

  193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,

  193,128,193,128,193,128,129,0,9,14,28,10,0,0,254,0,

  255,0,195,128,193,128,193,128,195,128,223,0,222,0,192,0,

  192,0,192,0,192,0,192,0,128,0,9,14,28,10,0,0,

  14,0,63,0,115,128,97,128,192,0,192,0,192,0,192,0,

  192,0,192,0,96,0,112,0,63,128,15,0,9,14,28,10,

  0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,0,

  12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,14,

  28,10,0,0,129,0,193,128,193,128,193,128,193,128,125,128,

  61,128,1,128,1,128,1,128,193,128,225,128,127,0,62,0,

  10,14,28,11,0,0,63,0,127,128,237,192,204,192,204,192,

  237,192,109,128,45,0,12,0,12,0,12,0,12,0,12,0,

  4,0,9,14,28,10,0,0,193,128,193,128,193,128,99,0,

  99,0,50,0,56,0,28,0,14,0,103,0,99,0,193,128,

  193,128,193,128,10,15,30,10,0,255,130,0,195,0,195,0,

  195,0,195,0,195,0,195,0,195,0,195,0,195,0,195,0,

  195,0,223,0,223,128,1,192,9,14,28,10,0,0,129,0,

  193,128,193,128,193,128,193,128,193,128,225,128,125,128,61,128,

  1,128,1,128,1,128,1,128,0,128,10,14,28,11,0,0,

  128,128,192,192,192,192,192,192,200,192,204,192,204,192,204,192,

  204,192,204,192,196,192,192,64,223,128,95,192,11,15,30,11,

  0,255,128,128,192,192,192,192,192,192,200,192,204,192,204,192,

  204,192,204,192,204,192,196,192,192,64,223,128,95,192,0,224,

  9,14,28,10,0,0,224,0,224,0,96,0,96,0,96,0,

  96,0,110,0,111,0,99,128,97,128,97,128,99,128,127,0,

  62,0,10,14,28,11,0,0,128,128,192,192,192,192,192,192,

  192,192,192,192,220,192,222,192,199,64,195,64,195,64,199,64,

  254,192,124,192,9,14,28,10,0,0,128,0,192,0,192,0,

  192,0,192,0,192,0,222,0,223,0,195,128,193,128,193,128,

  195,128,255,0,254,0,9,14,28,10,0,0,62,0,127,0,

  227,128,193,128,193,128,1,128,29,128,29,128,1,128,1,128,

  193,128,227,128,127,0,62,0,10,14,28,11,0,0,71,0,

  207,128,221,192,216,192,216,192,216,192,248,192,248,192,216,192,

  216,192,216,192,221,192,207,128,135,0,9,14,28,10,0,0,

  63,128,127,128,225,128,193,128,193,128,225,128,125,128,61,128,

  29,128,57,128,113,128,225,128,193,128,129,0,8,11,11,9,

  0,0,124,127,3,3,59,123,227,195,199,255,123,8,11,11,

  9,0,0,7,31,56,112,102,207,195,195,231,126,60,8,11,

  11,9,0,0,92,222,198,198,220,222,195,195,199,222,188,8,

  11,11,9,0,0,254,255,192,192,192,192,192,192,192,192,128,

  10,11,22,11,0,0,31,128,31,128,25,128,49,128,49,128,

  49,128,1,128,127,192,255,192,192,192,192,192,8,11,11,9,

  0,0,60,126,231,195,195,223,222,192,227,127,62,9,11,22,

  10,0,0,64,128,201,128,201,128,107,0,54,0,54,0,107,

  0,201,128,201,128,201,128,129,0,8,11,11,9,0,0,116,

  246,195,7,126,62,6,3,7,254,124,8,11,11,9,0,0,

  65,195,195,199,207,223,219,211,195,195,130,8,11,11,9,0,

  0,89,219,211,199,207,223,219,211,195,195,130,8,11,11,9,

  0,0,71,207,204,220,216,216,216,220,206,199,67,8,11,11,

  9,0,0,27,59,115,227,195,195,195,195,195,195,195,9,11,

  22,10,0,0,65,0,227,128,247,128,247,128,213,128,213,128,

  213,128,213,128,193,128,193,128,129,0,8,11,11,9,0,0,

  65,195,195,251,251,195,195,195,195,195,130,8,11,11,9,0,

  0,52,118,227,195,195,195,195,195,227,118,52,8,11,11,9,

  0,0,95,223,195,195,195,195,195,195,195,195,130,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,               255,255,255,255,255,255,255,255,255,255,255,255,255};

   За ранее благодарен.

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 13:59

#30

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

 /*************************************************************************** * Name : DDS_Sweeper.BAS * * Author : Beric Dunn (K6BEZ) * * Notice : Copyright (c) 2013 CC-BY-SA * * : Creative Commons Attribution-ShareAlike 3.0 Unported License * * Date : 9/26/2013 * * Version : 1.0 * * Notes : Written using for the Arduino Micro * * : Pins: * * : A0 - Reverse Detector Analog in * * : A1 - Forward Detector Analog in * * : Modified by Norbert Redeker (DG7EAO) 07/2014 * * : TFT Display mit ILI9341 Chip, SPI, 240 x 320 * * : usglib Grafik Bibliothek https://code.google.com/p/ucglib/ * ***************************************************************************/ #include <SPI.h> #include "Ucglib.h" #include "rusFont.h" // Define Pins used to control AD9850 DDS const int FQ_UD=11; const int SDAT=10; const int SCLK=12; const int RESET=9; // Variablen für Display double vswrArray[110]; //Array für SWR int z = 0; // Index für Array double SwrFreq = 14; // Variable für Freq. mit SWR Min. double SwrMin = 100; // Variable für SWR Min. double Freq1 = 1; // Freq. Links unterste Zeile Display double Freq2 = 15; // Freq. Mitte unterste Zeile Display double Freq3 = 30; // Freq. Mitte unterste Zeile Display unsigned long milliold = 0; //Millisekunden für Entprellung Interrupt unsigned long millinew = 0; //Millisekunden für Entprellung Interrupt int flag = 0; // wir auf 1 gesetzt bei Interrupt, in void Loop perform_sweep double counter = 0; // Zähler um erste Interrupts zu ignorieren // Variablen für Messung double Fstart_MHz = 1; // Start Frequency for sweep double Fstop_MHz = 30; // Stop Frequency for sweep double current_freq_MHz; // Temp variable used during sweep long serial_input_number; // Used to build number from serial stream int num_steps = 100; // Number of steps to use in the sweep char incoming_char; // Character read from serial stream //Konstruktor für Display Ucglib_ST7735_18x128x160_SWSPI ucg(/*sclk=*/ 12, /*data=*/ 10, /*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4); // the setup routine runs once when you press reset: void setup() { // Voltmetr analogReference(INTERNAL); float Vbat = (analogRead(A5) * 1.1) / 1023.0; float Vin = Vbat / (69.8 / (783.0 + 69.8)); // R2/(R1+R2) // Schreibe Info Text auf Display ucg.begin(UCG_FONT_MODE_SOLID); ucg.clearScreen(); ucg.setRotate90(); ucg.setFont(ucg_font_9x15_tf); ucg.setColor(255, 255, 255); ucg.setPrintPos(10,20); ucg.print("Arduino Antenna"); ucg.setPrintPos(25,40); ucg.print("SWR Analyzer"); ucg.setPrintPos(35,60); ucg.print("1-30 MHz"); ucg.setPrintPos(20,80); ucg.print("Komsomolsk 2017"); ucg.setPrintPos(5,128); ucg.print("BAT"); ucg.setPrintPos(40,128); ucg.print(Vin, 1); // Configiure DDS control pins for digital output pinMode(FQ_UD,OUTPUT); pinMode(SCLK,OUTPUT); pinMode(SDAT,OUTPUT); pinMode(RESET,OUTPUT); //Tasten Interrupt an PIN 2 pinMode(2,OUTPUT); digitalWrite(2, HIGH); attachInterrupt(0, key2, FALLING); unsigned long milliold = millis(); //Tasten Interrupt an PIN 3 pinMode(3,OUTPUT); digitalWrite(3, HIGH); attachInterrupt(1, key3, FALLING); //milliold = millis(); // Configure LED pin for digital output pinMode(13,OUTPUT); // Set up analog inputs on A0 and A1, internal reference voltage pinMode(A0,INPUT); pinMode(A1,INPUT); analogReference(INTERNAL); // initialize serial communication at 57600 baud Serial.begin(57600); // Reset the DDS digitalWrite(RESET,HIGH); digitalWrite(RESET,LOW); //Initialise the incoming serial number to zero serial_input_number=0; } // the loop routine runs over and over again forever: void loop() { //Check for character if(Serial.available()>0){ incoming_char = Serial.read(); switch(incoming_char){ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': serial_input_number=serial_input_number*10+(incoming_char-'0'); break; case 'A': //Turn frequency into FStart Fstart_MHz = ((double)serial_input_number)/1000000; serial_input_number=0; break; case 'B': //Turn frequency into FStop Fstop_MHz = ((double)serial_input_number)/1000000; serial_input_number=0; break; case 'C': //Turn frequency into FStart and set DDS output to single frequency Fstart_MHz = ((double)serial_input_number)/1000000; //SetDDSFreq(Fstart_MHz); SetDDSFreq(Fstart_MHz * 1000000); delay(100); SetDDSFreq(Fstart_MHz * 1000000); serial_input_number=0; break; case 'N': // Set number of steps in the sweep num_steps = serial_input_number; serial_input_number=0; break; case 'S': case 's': Perform_sweep(); break; case '?': // Report current configuration to PC Serial.print("Start Freq:"); Serial.println(Fstart_MHz*1000000); Serial.print("Stop Freq:"); Serial.println(Fstop_MHz*1000000); Serial.print("Num Steps:"); Serial.println(num_steps); break; } Serial.flush(); } //Perform Sweep nach Interrupt PIN2 oder 3 // ingnoriere Startup Interrupts durch counter if (flag == 1 && counter >2) { flag = 0; Perform_sweep(); } } void Perform_sweep(){ double FWD=0; double REV=0; double VSWR; double Fstep_MHz = (Fstop_MHz-Fstart_MHz)/num_steps; z = 0; SwrMin = 100; ucg.clearScreen(); ucg.setFont(ucg_font_9x15_tf); ucg.setColor(255, 0, 100); ucg.setPrintPos(35,60); ucg.print("Analiz KSW"); // Start loop for(int i=0;i<=num_steps;i++){ // Calculate current frequency current_freq_MHz = Fstart_MHz + i*Fstep_MHz; // Set DDS to current frequency SetDDSFreq(current_freq_MHz*1000000); // Wait a little for settling //delay(10); delay(100); // Read the forward and reverse voltages REV = analogRead(A0); FWD = analogRead(A1); //Offset Korrektur REV = REV-1; if(REV>=FWD){ REV = FWD-1; } if (REV <1) { REV = 1; } VSWR = (FWD+REV)/(FWD-REV); //Skalieren für Ausgabe VSWR = VSWR * 1000; // Send current line back to PC over serial bus Serial.print(current_freq_MHz*1000000); Serial.print(",0,"); Serial.print(VSWR); Serial.print(","); Serial.print(FWD); Serial.print(","); Serial.println(REV); // Übergebe SWR an Array // ERmittele Freq bei niedrigsten SWR vswrArray[z] = VSWR/1000; if (vswrArray[z] > 10) vswrArray[z] = 10; if (vswrArray[z] < SwrMin && vswrArray[z] > 1) { SwrMin = vswrArray[z]; SwrFreq = current_freq_MHz; } z = z + 1; } // Send "End" to PC to indicate end of sweep Serial.println("End"); Serial.flush(); ucg.clearScreen(); //Zeichne Grid CreateGrid(); ucg.setColor(76, 255, 0); // Draw Line double last = 10; double xx = 6; double j = 1; for (int i = 1 ;i < 103; i++){ xx = vswrArray[i]; ucg.drawLine(j,105-last*9, j+1, 105-xx*9); ucg.drawLine(j+1,105-last*9, j+2, 105-xx*9); j = j + 1.5; last = xx; } } // Setze DDS Frequenz void SetDDSFreq(double Freq_Hz){ // Calculate the DDS word - from AD9850 Datasheet int32_t f = Freq_Hz * 4294967295/125000000; // Send one byte at a time for (int b=0;b<4;b++,f>>=8){ send_byte(f & 0xFF); } // 5th byte needs to be zeros send_byte(0); // Strobe the Update pin to tell DDS to use values digitalWrite(FQ_UD,HIGH); digitalWrite(FQ_UD,LOW); } // Sende Daten an DDS void send_byte(byte data_to_send){ // Bit bang the byte over the SPI bus for (int i=0; i<8; i++,data_to_send>>=1){ // Set Data bit on output pin digitalWrite(SDAT,data_to_send & 0x01); // Strobe the clock pin digitalWrite(SCLK,HIGH); digitalWrite(SCLK,LOW); } } //Zeichne Grid auf TFT Display void CreateGrid() { //ucg.clearScreen(); double maxSwr = 10; ucg.setFont(ucg_font_9x15_tf); ucg.drawHLine(0,60,155); ucg.drawHLine(0,98,155); ucg.drawVLine(39,15,90); ucg.drawVLine(78,15,90); ucg.drawVLine(117,15,90); ucg.setPrintPos(0, 118); ucg.print(Freq1,3); ucg.setPrintPos(65, 118); ucg.print(Freq2,3); ucg.setPrintPos(130, 118); ucg.print(Freq3,3); ucg.setPrintPos(1, 11); ucg.print("SWR"); ucg.setPrintPos(30, 11); ucg.print(SwrMin,2); ucg.setPrintPos(65, 11); ucg.print(">"); ucg.setPrintPos(75, 11); ucg.print(maxSwr,2); ucg.setPrintPos(125, 11); ucg.print(SwrFreq,3); ucg.drawRFrame(0,15,155,90, 1); } // Interrupt Service Routine // Abfrage Low an Pin 2 void key2() { //ignoriere Startup Interrupts > counter counter = counter + 1; //Entprellen mit millis() millinew = millis(); if (millinew - milliold < 1000) { milliold = millinew; return; } milliold = millinew; Fstart_MHz = 1; // Start Frequency for sweep Fstop_MHz = 30; // Stop Frequency for sweep num_steps = 102; // Steps Freq1 = 1; // Unterste Zeile Display Freq. Links Freq2 = 15; // Unterste Zeile Display Freq. Mitte Freq3 = 30; // Unterste Zeile Display Freq. Recht //Perform_sweep(); flag = 1; } // Interrupt Service Routine // Abfrage Low an Pin 3 void key3() { //ignoriere Startup Interrupts > counter counter = counter + 1; //Entprellen mit millis() millinew = millis(); if (millinew - milliold < 1000) { milliold = millinew; return; } milliold = millinew; int x = SwrFreq + 0.5; //Runde auf Mhz Fstart_MHz = x-1; // Start Frequency for sweep Fstop_MHz = x+1; // Stop Frequency for sweep num_steps = 102; // Steps Freq1 = x-1; // Unterste Zeile Display Freq. Links Freq2 = x; // Unterste Zeile Display Freq. Mitte Freq3 = x+1; // Unterste Zeile Display Freq. Rechts //Perform_sweep(); flag = 1; } плюс Русский текст , он в том - же скетче- const ucg_fntpgm_uint8_t my14x10rus[4157] UCG_SECTION(".progmem.my14x10") = { 0,11,15,0,255,14,3,35,6,248,32,255,0,15,255,14, 0,0,0,0,8,0,0,2,14,14,4,1,0,64,192,192, 192,192,192,192,192,192,128,0,64,192,128,6,5,5,7,0, 9,68,204,204,204,136,10,14,28,11,0,0,8,128,8,128, 17,0,17,0,127,192,17,0,17,0,34,0,34,0,255,128, 34,0,34,0,68,0,68,0,9,14,28,10,0,0,8,0, 8,0,59,128,123,0,200,0,200,0,232,0,107,0,11,128, 9,128,9,128,111,0,238,0,8,0,8,14,14,9,0,0, 97,179,214,102,12,12,24,24,48,48,102,107,205,134,9,14, 28,10,0,0,56,0,124,0,108,0,108,0,108,0,56,0, 56,128,109,128,199,0,194,0,199,0,237,128,124,128,56,0, 2,5,5,3,0,10,128,192,192,192,64,5,14,14,6,0, 0,24,48,96,96,192,192,192,192,192,192,96,96,48,24,5, 14,14,6,0,0,192,96,48,48,24,24,24,24,24,24,56, 48,96,192,7,7,7,8,0,4,146,214,124,16,124,214,146, 8,10,10,10,0,1,8,24,24,24,127,254,24,24,24,16, 4,6,6,5,0,0,112,96,96,64,192,192,8,2,2,9, 0,5,127,254,3,3,3,4,0,0,224,160,224,8,14,14, 9,0,0,3,3,6,6,12,12,24,24,48,48,96,96,192, 192,9,14,28,10,0,0,62,0,127,0,227,128,197,128,197, 128,197,128,201,128,201,128,209,128,209,128,209,128,227,128,127, 0,62,0,9,14,28,10,0,0,12,0,28,0,60,0,124, 0,8,0,4,0,12,0,12,0,8,0,4,0,12,0,12, 0,127,128,255,128,9,14,28,10,0,0,126,0,255,0,195, 128,193,128,1,128,3,128,63,0,126,0,224,0,192,0,192, 0,192,0,223,128,191,0,9,14,28,10,0,0,126,0,255, 0,195,128,1,128,1,128,3,0,58,0,119,0,3,128,1, 128,1,128,3,128,255,0,126,0,9,14,28,10,0,0,2, 0,6,0,14,0,30,0,62,0,118,0,230,0,198,0,251, 128,247,0,6,0,6,0,6,0,4,0,9,14,28,10,0, 0,127,128,127,128,96,0,96,0,96,0,110,0,111,0,3, 128,1,128,1,128,1,128,195,0,255,0,124,0,9,14,28, 10,0,0,31,0,127,0,96,0,192,0,192,0,192,0,222, 0,223,0,195,128,193,128,193,128,227,0,127,0,60,0,9, 14,28,10,0,0,127,128,255,128,0,0,3,0,3,0,6, 0,6,0,12,0,12,0,24,0,24,0,48,0,48,0,32, 0,9,14,28,10,0,0,58,0,119,0,227,128,193,128,193, 128,99,0,54,0,111,0,227,128,193,128,193,128,227,128,119, 0,46,0,9,14,28,10,0,0,60,0,255,0,231,0,195, 128,193,128,193,128,225,128,253,128,125,128,1,128,3,128,7, 0,127,0,252,0,3,11,11,4,0,2,224,160,224,0,0, 0,0,0,224,160,224,4,13,13,5,0,0,112,80,112,0, 0,0,0,0,112,80,112,96,192,9,11,22,10,0,1,1, 128,3,128,15,0,28,0,120,0,224,0,120,0,28,0,15, 0,3,128,1,128,9,6,12,10,0,4,127,128,255,0,0, 0,0,0,127,128,255,0,9,11,22,10,0,1,192,0,224, 0,120,0,60,0,15,0,3,128,15,0,60,0,120,0,224, 0,192,0,8,14,14,9,0,0,116,238,135,3,3,6,14, 56,48,48,0,0,48,48,9,11,22,10,0,1,62,0,65, 0,128,128,154,128,166,128,162,128,162,128,166,128,155,0,64, 0,63,128,9,14,28,10,0,0,252,0,254,0,199,0,195, 128,193,128,193,128,193,128,253,128,253,128,193,128,193,128,193, 128,193,128,129,0,9,14,28,10,0,0,94,0,223,0,195, 128,193,128,193,128,195,128,255,0,255,0,195,128,193,128,193, 128,195,128,223,0,190,0,9,14,28,10,0,0,14,0,63, 0,115,128,97,128,192,0,192,0,192,0,192,0,192,0,192, 0,96,0,112,0,63,128,15,0,9,14,28,10,0,0,238, 0,111,0,99,128,97,128,97,128,97,128,97,128,97,128,97, 128,97,128,97,128,99,128,111,0,238,0,9,14,28,10,0, 0,95,128,223,0,192,0,192,0,192,0,192,0,223,0,222, 0,192,0,192,0,192,0,192,0,223,128,191,0,9,14,28, 10,0,0,95,128,223,0,192,0,192,0,192,0,192,0,223, 0,222,0,192,0,192,0,192,0,192,0,192,0,128,0,9, 14,28,10,0,0,63,128,127,128,225,128,192,0,192,0,192, 0,192,0,207,128,223,128,193,128,193,128,225,128,127,128,62, 0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,193, 128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,193, 128,64,128,8,14,14,10,1,0,254,127,24,24,24,24,24, 24,24,24,24,24,254,127,9,14,28,10,0,0,31,128,63, 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, 128,1,128,195,128,255,0,62,0,9,14,28,10,0,0,65, 128,195,128,199,0,206,0,220,0,216,0,216,0,216,0,216, 0,220,0,206,0,199,0,195,128,65,128,9,14,28,10,0, 0,64,0,192,0,192,0,192,0,192,0,192,0,192,0,192, 0,192,0,192,0,192,0,192,0,255,128,255,0,9,14,28, 10,0,0,193,128,227,128,247,128,247,128,213,128,193,128,213, 128,221,128,221,128,201,128,193,128,193,128,193,128,129,0,9, 14,28,10,0,0,225,0,225,128,241,128,241,128,249,128,217, 128,221,128,205,128,205,128,197,128,197,128,193,128,193,128,128, 128,9,14,28,10,0,0,46,0,111,0,227,128,193,128,193, 128,193,128,193,128,193,128,193,128,193,128,193,128,227,128,123, 0,58,0,9,14,28,10,0,0,254,0,255,0,195,128,193, 128,193,128,195,128,223,0,222,0,192,0,192,0,192,0,192, 0,192,0,128,0,10,15,30,10,0,255,46,0,111,0,227, 128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,193, 128,227,0,123,128,58,192,0,192,9,14,28,10,0,0,126, 0,255,0,195,128,193,128,193,128,195,128,223,0,220,0,206, 0,199,0,195,128,193,128,193,128,129,0,9,14,28,10,0, 0,62,0,127,0,224,0,192,0,192,0,224,0,118,0,27, 0,3,128,1,128,1,128,3,128,255,128,127,0,9,14,28, 10,0,0,255,0,127,128,0,0,12,0,12,0,12,0,12, 0,12,0,12,0,12,0,12,0,12,0,12,0,4,0,9, 14,28,10,0,0,64,128,193,128,193,128,193,128,193,128,193, 128,193,128,193,128,193,128,193,128,193,128,99,0,127,0,62, 0,9,14,28,10,0,0,227,128,99,0,99,0,99,0,34, 0,54,0,54,0,54,0,20,0,28,0,28,0,28,0,8, 0,8,0,10,14,28,11,0,0,64,64,192,192,192,192,192, 192,192,192,192,192,204,192,204,192,204,192,222,192,222,192,211, 192,193,192,128,192,9,14,28,10,0,0,193,128,193,128,193, 128,99,0,99,0,50,0,56,0,28,0,14,0,103,0,99, 0,193,128,193,128,193,128,10,14,28,10,0,0,192,192,192, 192,97,128,97,128,51,0,63,0,30,0,12,0,8,0,4, 0,12,0,12,0,12,0,8,0,9,14,28,10,0,0,127, 128,255,128,1,128,3,128,7,0,6,0,4,0,16,0,48, 0,112,0,224,0,192,0,255,128,255,0,5,14,14,6,0, 0,248,192,192,192,192,192,192,192,192,192,192,192,192,248,9, 14,28,10,0,0,192,0,96,0,96,0,48,0,48,0,24, 0,24,0,12,0,12,0,6,0,6,0,3,0,3,0,1, 128,5,14,14,6,0,0,248,24,24,24,24,24,24,24,24, 24,24,24,24,248,9,6,12,10,0,8,8,0,28,0,54, 0,99,0,193,128,128,128,10,1,2,10,0,255,255,192,4, 3,3,5,0,12,224,96,48,8,11,11,9,0,0,124,127, 3,3,59,123,227,195,199,255,123,9,13,26,10,0,0,64, 0,192,0,192,0,192,0,192,0,222,0,223,0,195,128,193, 128,193,128,195,0,255,0,222,0,8,11,11,9,0,0,30, 63,115,224,192,192,192,224,240,127,30,9,13,26,10,0,0, 0,128,1,128,1,128,1,128,1,128,61,128,125,128,225,128, 193,128,193,128,227,128,127,128,61,128,8,11,11,9,0,0, 60,126,231,195,195,223,222,192,227,127,62,7,13,13,8,0, 0,62,124,96,96,252,248,96,96,96,96,96,96,32,8,13, 13,9,0,0,63,127,227,195,195,195,227,123,51,3,3,127, 254,8,13,13,9,0,0,64,192,192,192,222,223,195,195,195, 195,195,195,130,2,13,13,3,0,0,64,192,128,64,192,192, 192,192,192,192,192,192,128,5,14,14,6,0,255,16,24,24, 8,48,120,24,24,24,24,24,24,120,240,8,13,13,9,0, 0,64,192,192,198,198,204,216,216,216,204,198,199,131,2,14, 14,3,0,0,64,192,192,192,192,192,192,192,192,192,192,192, 192,128,9,11,22,10,0,0,91,0,219,128,201,128,201,128, 201,128,201,128,201,128,201,128,201,128,193,128,129,0,8,11, 11,9,0,0,94,223,195,195,195,195,195,195,195,195,130,8, 11,11,9,0,0,52,118,227,195,195,195,195,195,227,118,52, 8,11,11,9,0,0,252,254,199,195,199,222,220,192,192,192, 128,9,13,26,9,0,255,63,0,127,0,227,0,195,0,195, 0,195,0,251,0,123,0,3,0,3,0,3,128,3,128,3, 128,7,11,11,8,0,0,92,222,224,224,192,192,192,192,192, 192,128,8,11,11,9,0,0,62,127,192,192,240,102,15,3, 3,254,124,6,13,13,7,0,0,32,96,96,252,248,96,96, 96,96,96,96,124,60,8,11,11,9,0,0,65,195,195,195, 195,195,195,195,227,123,58,8,11,11,9,0,0,129,129,195, 195,102,102,102,36,60,24,24,9,11,22,10,0,0,128,128, 193,128,201,128,201,128,201,128,201,128,193,128,221,128,247,128, 227,128,65,0,8,11,11,9,0,0,195,102,102,52,24,24, 24,52,102,102,195,8,12,12,9,0,255,193,227,99,102,110, 44,12,24,24,48,240,224,8,11,11,9,0,0,127,255,7, 6,12,0,48,96,224,255,254,7,14,14,8,0,0,14,28, 24,24,24,48,224,224,48,24,24,24,28,14,2,16,16,5, 1,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192, 192,192,8,14,14,9,0,0,224,112,24,24,24,12,7,7, 12,24,24,24,112,224,10,5,10,11,0,4,48,192,120,192, 204,192,199,128,195,0,5,13,13,6,0,1,248,136,136,136, 136,136,136,136,136,136,136,136,248,8,11,11,9,0,0,252, 254,199,195,199,222,220,192,192,192,128,8,11,11,9,0,0, 30,63,115,224,192,192,192,224,240,127,30,8,11,11,9,0, 0,127,254,24,24,24,24,24,24,24,24,16,8,12,12,9, 0,255,193,227,99,102,110,44,12,24,24,48,240,224,8,12, 12,9,0,255,126,255,219,219,219,219,90,24,24,24,24,16, 8,11,11,9,0,0,195,102,102,52,24,24,24,52,102,102, 195,8,12,12,9,0,255,132,198,198,198,198,198,198,198,198, 254,255,3,8,11,11,9,0,0,65,195,195,195,231,127,63, 3,3,3,2,8,11,11,9,0,0,130,195,195,211,219,219, 219,219,219,203,255,8,12,12,9,0,255,130,195,195,211,219, 219,219,219,218,200,255,3,8,11,11,9,0,0,192,224,96, 96,108,110,103,99,103,126,124,8,11,11,9,0,0,130,195, 195,195,219,221,207,199,207,253,251,8,11,11,9,0,0,64, 192,192,192,220,222,199,195,199,254,252,8,11,11,9,0,0, 124,254,198,3,27,59,3,3,6,254,120,9,11,22,10,0, 0,71,0,207,128,205,128,205,128,221,128,221,128,205,128,205, 128,205,128,207,128,135,0,8,11,11,9,0,0,63,127,227, 195,227,123,59,51,51,115,226,9,14,28,10,0,0,252,0, 254,0,199,0,195,128,193,128,193,128,193,128,253,128,253,128, 193,128,193,128,193,128,193,128,129,0,9,14,28,10,0,0, 223,128,223,0,192,0,192,0,192,0,192,0,222,0,223,0, 195,128,193,128,193,128,195,128,255,0,254,0,9,14,28,10, 0,0,94,0,223,0,195,128,193,128,193,128,195,128,255,0, 255,0,195,128,193,128,193,128,195,128,223,0,190,0,9,14, 28,10,0,0,223,0,223,128,192,0,192,0,192,0,192,0, 192,0,192,0,192,0,192,0,192,0,192,0,192,0,128,0, 9,14,28,10,0,0,11,0,27,0,59,0,115,0,99,0, 99,0,99,0,99,0,99,0,99,0,123,0,251,128,193,128, 193,128,9,14,28,10,0,0,95,128,223,0,192,0,192,0, 192,0,192,0,223,0,222,0,192,0,192,0,192,0,192,0, 223,128,191,0,10,14,28,11,0,0,64,64,192,192,196,192, 204,192,204,192,109,128,109,128,109,128,109,128,204,192,204,192, 204,192,200,192,128,128,9,14,28,10,0,0,122,0,251,0, 131,128,1,128,1,128,3,0,58,0,123,0,3,128,1,128, 1,128,131,128,251,0,120,0,9,14,28,10,0,0,67,128, 195,128,199,128,199,128,199,128,205,128,205,128,205,128,217,128, 217,128,217,128,209,128,209,128,193,0,9,14,28,10,0,0, 91,128,219,128,215,128,199,128,199,128,205,128,205,128,205,128, 217,128,217,128,217,128,209,128,209,128,193,0,9,14,28,10, 0,0,65,128,195,128,199,0,206,0,220,0,216,0,216,0, 216,0,216,0,220,0,206,0,199,0,195,128,65,128,9,14, 28,10,0,0,220,0,222,0,199,0,195,128,193,128,193,128, 193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128, 9,14,28,10,0,0,193,128,227,128,247,128,247,128,213,128, 193,128,213,128,221,128,221,128,201,128,193,128,193,128,193,128, 129,0,9,14,28,10,0,0,129,0,193,128,193,128,193,128, 193,128,193,128,223,128,223,128,193,128,193,128,193,128,193,128, 193,128,64,128,9,14,28,10,0,0,46,0,111,0,227,128, 193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128, 227,128,123,0,58,0,9,14,28,10,0,0,223,128,223,128, 193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128, 193,128,193,128,193,128,129,0,9,14,28,10,0,0,254,0, 255,0,195,128,193,128,193,128,195,128,223,0,222,0,192,0, 192,0,192,0,192,0,192,0,128,0,9,14,28,10,0,0, 14,0,63,0,115,128,97,128,192,0,192,0,192,0,192,0, 192,0,192,0,96,0,112,0,63,128,15,0,9,14,28,10, 0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,0, 12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,14, 28,10,0,0,129,0,193,128,193,128,193,128,193,128,125,128, 61,128,1,128,1,128,1,128,193,128,225,128,127,0,62,0, 10,14,28,11,0,0,63,0,127,128,237,192,204,192,204,192, 237,192,109,128,45,0,12,0,12,0,12,0,12,0,12,0, 4,0,9,14,28,10,0,0,193,128,193,128,193,128,99,0, 99,0,50,0,56,0,28,0,14,0,103,0,99,0,193,128, 193,128,193,128,10,15,30,10,0,255,130,0,195,0,195,0, 195,0,195,0,195,0,195,0,195,0,195,0,195,0,195,0, 195,0,223,0,223,128,1,192,9,14,28,10,0,0,129,0, 193,128,193,128,193,128,193,128,193,128,225,128,125,128,61,128, 1,128,1,128,1,128,1,128,0,128,10,14,28,11,0,0, 128,128,192,192,192,192,192,192,200,192,204,192,204,192,204,192, 204,192,204,192,196,192,192,64,223,128,95,192,11,15,30,11, 0,255,128,128,192,192,192,192,192,192,200,192,204,192,204,192, 204,192,204,192,204,192,196,192,192,64,223,128,95,192,0,224, 9,14,28,10,0,0,224,0,224,0,96,0,96,0,96,0, 96,0,110,0,111,0,99,128,97,128,97,128,99,128,127,0, 62,0,10,14,28,11,0,0,128,128,192,192,192,192,192,192, 192,192,192,192,220,192,222,192,199,64,195,64,195,64,199,64, 254,192,124,192,9,14,28,10,0,0,128,0,192,0,192,0, 192,0,192,0,192,0,222,0,223,0,195,128,193,128,193,128, 195,128,255,0,254,0,9,14,28,10,0,0,62,0,127,0, 227,128,193,128,193,128,1,128,29,128,29,128,1,128,1,128, 193,128,227,128,127,0,62,0,10,14,28,11,0,0,71,0, 207,128,221,192,216,192,216,192,216,192,248,192,248,192,216,192, 216,192,216,192,221,192,207,128,135,0,9,14,28,10,0,0, 63,128,127,128,225,128,193,128,193,128,225,128,125,128,61,128, 29,128,57,128,113,128,225,128,193,128,129,0,8,11,11,9, 0,0,124,127,3,3,59,123,227,195,199,255,123,8,11,11, 9,0,0,7,31,56,112,102,207,195,195,231,126,60,8,11, 11,9,0,0,92,222,198,198,220,222,195,195,199,222,188,8, 11,11,9,0,0,254,255,192,192,192,192,192,192,192,192,128, 10,11,22,11,0,0,31,128,31,128,25,128,49,128,49,128, 49,128,1,128,127,192,255,192,192,192,192,192,8,11,11,9, 0,0,60,126,231,195,195,223,222,192,227,127,62,9,11,22, 10,0,0,64,128,201,128,201,128,107,0,54,0,54,0,107, 0,201,128,201,128,201,128,129,0,8,11,11,9,0,0,116, 246,195,7,126,62,6,3,7,254,124,8,11,11,9,0,0, 65,195,195,199,207,223,219,211,195,195,130,8,11,11,9,0, 0,89,219,211,199,207,223,219,211,195,195,130,8,11,11,9, 0,0,71,207,204,220,216,216,216,220,206,199,67,8,11,11, 9,0,0,27,59,115,227,195,195,195,195,195,195,195,9,11, 22,10,0,0,65,0,227,128,247,128,247,128,213,128,213,128, 213,128,213,128,193,128,193,128,129,0,8,11,11,9,0,0, 65,195,195,251,251,195,195,195,195,195,130,8,11,11,9,0, 0,52,118,227,195,195,195,195,195,227,118,52,8,11,11,9, 0,0,95,223,195,195,195,195,195,195,195,195,130,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255};

Выкладывать надо по правилам форума

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 14:36

#31

DAFdriver

Offline

Зарегистрирован: 12.08.2016

Извиняюсь это мое первое сообщение.

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 19:27

#32

Jeka_M

Jeka_M аватар

Offline

Зарегистрирован: 06.07.2014

DAFdriver пишет:

И сразу проблемка — неполучается прошить arduino nano . 

Информации недостаточно. Расшифруйте подробно ваше «неполучается прошить».

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 19:42

#33

DAFdriver

Offline

Зарегистрирован: 12.08.2016

          Пишет ошибка компиляции

Arduino: 1.8.1 (Windows 7), Плата:»Arduino Nano, ATmega328″

C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160_v4_hwspiDDS_sweeper1_TFT_ST7735_128x160_v4_hwspi.ino:18:20: fatal error: Ucglib.h: No such file or directory

 #include «Ucglib.h»

                    ^

compilation terminated.

exit status 1

Ошибка компиляции для платы Arduino Nano.

Этот отчёт будет иметь больше информации с

включенной опцией Файл -> Настройки ->

«Показать подробный вывод во время компиляции»

       вот сподключеной ардуиной 

  Arduino: 1.8.1 (Windows 7), Плата:»Arduino Nano, ATmega328″

C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160_v4_hwspiDDS_sweeper1_TFT_ST7735_128x160_v4_hwspi.ino:18:20: fatal error: Ucglib.h: No such file or directory

 #include «Ucglib.h»

                    ^

compilation terminated.

exit status 1

Ошибка компиляции для платы Arduino Nano.

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesad9850adafuilt: C:Program Files (x86)Arduinolibrariesad9850adafuilt

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master: C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield: C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTSCalibration: C:Program Files (x86)ArduinolibrariesTSCalibration

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesad9850adafuilt: C:Program Files (x86)Arduinolibrariesad9850adafuilt

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master: C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield: C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTSCalibration: C:Program Files (x86)ArduinolibrariesTSCalibration

Этот отчёт будет иметь больше информации с

включенной опцией Файл -> Настройки ->

«Показать подробный вывод во время компиляции»

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 19:41

#34

vovan_UA

Offline

Зарегистрирован: 27.05.2017

ну а с моими ошибками кто подскажет что делать если это возможно конечно

Скетч использует 21464 байт (69%) памяти устройства. Всего доступно 30720 байт.

Глобальные переменные используют 977 байт (47%) динамической памяти, оставляя 1071 байт для локальных переменных. Максимум: 2048 байт.

avrdude: verification error, first mismatch at byte 0x0042

         0xf1 != 0x1d

avrdude: verification error; content mismatch

avrdude: verification error; content mismatch

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 20:40

#35

T.Rook

Offline

Зарегистрирован: 05.03.2016

DAFdriver пишет:

  DDS_sweeper1_TFT_ST7735_128x160_v4_hwspi.ino:18:20: fatal error: Ucglib.h: No such file or directory

 #include «Ucglib.h»

нет бибиотеки (или не найдена) Ucglib.h. Т.к. в скетче написано «Ucglib.h» то библтотека ожидается в каталоге файла «.ino». Если библиотека лежит в libraries, то исправьте на:  #include <Ucglib.h>

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 20:49

#36

T.Rook

Offline

Зарегистрирован: 05.03.2016

vovan_UA пишет:

ну а с моими ошибками кто подскажет что делать если это возможно конечно

avrdude: verification error, first mismatch at byte 0x0042

         0xf1 != 0x1d

Если Вы полностью исключаете сбои по питанию (и ресету), и ошибка всегда на одном месте (на разных скетчах) «first mismatch at byte 0x0042» — то в мусор :(

UPD: хотя ВОТ написано что подобное было из-за драйвера

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 20:54

#37

vovan_UA

Offline

Зарегистрирован: 27.05.2017

Да вот как раз ошибка всегда на одном месте а так врди загрузка проходит нормально единственое при проверке и возникает эта ошибка а загрузчик не мог слететь случайно или это уже самой памяти гаплык просто это пошло после ппытки загрузить скетч при помощи XLoader хотя рание было все нормально 

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 21:04

#38

T.Rook

Offline

Зарегистрирован: 05.03.2016

vovan_UA пишет:

Да вот как раз ошибка всегда на одном месте а так врди загрузка проходит нормально единственое при проверке и возникает эта ошибка а загрузчик не мог слететь случайно или это уже самой памяти гаплык просто это пошло после ппытки загрузить скетч при помощи XLoader хотя рание было все нормально 

Это легко проверить: пробовали  перезаписать загрузчик?

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 21:15

#39

qwone

qwone аватар

Offline

Зарегистрирован: 03.07.2016

DAFdriver

Ucglib.h: No such file or directory // нет файла в директории #include "Ucglib.h" ^ //<--а вот вам стрелочкой компилятор показывает compilation terminated.

Нельзя же быть таким безголовым

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 21:15

#40

DAFdriver

Offline

Зарегистрирован: 12.08.2016

Так что на чтои где исправить.Я в этом деле зеленый бегемот.

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 21:22

#41

qwone

qwone аватар

Offline

Зарегистрирован: 03.07.2016

#include "Ucglib.h" //<-это можно найти здесь https://code.google.com/p/ucglib/ * #include "rusFont.h" //<- а вот это хер знает где и не беритесь за сложные проекты это вам не игры на планшет заливать

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 21:47

#42

DAFdriver

Offline

Зарегистрирован: 12.08.2016

  Спасибо буду пытаться. На счет игр мне 56лет ,я ими не занимаюсь . Занимаюсь настройкой CI-Bi антенн и ремонтом радиостанций , устанавливааю  и обслуживаю пожарные , охранные сигнализации и видео наблюдение. Там приходится пршивать датчики и приборы , нотам все проще .

  • Войдите на сайт для отправки комментариев

Вс, 28/05/2017 — 21:58

#43

vovan_UA

Offline

Зарегистрирован: 27.05.2017

T.Rook пишет:

Это легко проверить: пробовали  перезаписать загрузчик?

Не пробовал просто незнаю как с таким столкнулся в первые а из самой среды не получается выдает ошибку пробовал и при помощи USBASP он ее вобще отказывается видить а этот PL2303HX видит ну так же выдает шибку а как ещо просто незна есть ещо в наличие R3 MEGA328P ATMEGA16U2 со сьемной микрухой ну вот как к нему правильно подключится найти не могу 

  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 00:48

#44

T.Rook

Offline

Зарегистрирован: 05.03.2016

vovan_UA пишет:

Не пробовал просто незнаю как с таким столкнулся в первые а из самой среды не получается выдает ошибку пробовал и при помощи USBASP он ее вобще отказывается видить а этот PL2303HX видит ну так же выдает шибку а как ещо просто незна есть ещо в наличие R3 MEGA328P ATMEGA16U2 со сьемной микрухой ну вот как к нему правильно подключится найти не могу 

Легко гуглится по «arduino isp программатор».

В качестве немного бредовой идеи на «поискать и почитать много непонятного»: если вылетела одна ячейка, то, наверное. можно натйти опции компиляции HEX файла, что бы рабочий код начинался после сбойного адреса.  Может кто подскажет vovan_UA?

  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 07:30

#45

vovan_UA

Offline

Зарегистрирован: 27.05.2017

T.Rook пишет:

UPD: хотя ВОТ написано что подобное было из-за драйвера

Ну с драйверами тут все в порядке прост у меня таких платок несколько и в другую все записалось без проблем а с этой непонятка такая и такое ощущение что прсто предыдущая прошивка сидит внутри и невкаку не хочет затираться 

  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 08:57

#46

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

qwone пишет:

#include "rusFont.h" //<- а вот это хер знает где 

А это разве не оно?
Добавить в проект файлик с этим имененм и содержимое в этот файл разместить, или я что-то путаю???
 

const ucg_fntpgm_uint8_t my14x10rus[4157] UCG_SECTION(«.progmem.my14x10») = {

  0,11,15,0,255,14,3,35,6,248,32,255,0,15,255,14,……………………………….

Файлик «rusFont.h» — файлик должен лежать в каталоге со скетчем

const ucg_fntpgm_uint8_t my14x10rus[4157] UCG_SECTION(".progmem.my14x10") = { 0,11,15,0,255,14,3,35,6,248,32,255,0,15,255,14, 0,0,0,0,8,0,0,2,14,14,4,1,0,64,192,192, 192,192,192,192,192,192,128,0,64,192,128,6,5,5,7,0, 9,68,204,204,204,136,10,14,28,11,0,0,8,128,8,128, 17,0,17,0,127,192,17,0,17,0,34,0,34,0,255,128, 34,0,34,0,68,0,68,0,9,14,28,10,0,0,8,0, 8,0,59,128,123,0,200,0,200,0,232,0,107,0,11,128, 9,128,9,128,111,0,238,0,8,0,8,14,14,9,0,0, 97,179,214,102,12,12,24,24,48,48,102,107,205,134,9,14, 28,10,0,0,56,0,124,0,108,0,108,0,108,0,56,0, 56,128,109,128,199,0,194,0,199,0,237,128,124,128,56,0, 2,5,5,3,0,10,128,192,192,192,64,5,14,14,6,0, 0,24,48,96,96,192,192,192,192,192,192,96,96,48,24,5, 14,14,6,0,0,192,96,48,48,24,24,24,24,24,24,56, 48,96,192,7,7,7,8,0,4,146,214,124,16,124,214,146, 8,10,10,10,0,1,8,24,24,24,127,254,24,24,24,16, 4,6,6,5,0,0,112,96,96,64,192,192,8,2,2,9, 0,5,127,254,3,3,3,4,0,0,224,160,224,8,14,14, 9,0,0,3,3,6,6,12,12,24,24,48,48,96,96,192, 192,9,14,28,10,0,0,62,0,127,0,227,128,197,128,197, 128,197,128,201,128,201,128,209,128,209,128,209,128,227,128,127, 0,62,0,9,14,28,10,0,0,12,0,28,0,60,0,124, 0,8,0,4,0,12,0,12,0,8,0,4,0,12,0,12, 0,127,128,255,128,9,14,28,10,0,0,126,0,255,0,195, 128,193,128,1,128,3,128,63,0,126,0,224,0,192,0,192, 0,192,0,223,128,191,0,9,14,28,10,0,0,126,0,255, 0,195,128,1,128,1,128,3,0,58,0,119,0,3,128,1, 128,1,128,3,128,255,0,126,0,9,14,28,10,0,0,2, 0,6,0,14,0,30,0,62,0,118,0,230,0,198,0,251, 128,247,0,6,0,6,0,6,0,4,0,9,14,28,10,0, 0,127,128,127,128,96,0,96,0,96,0,110,0,111,0,3, 128,1,128,1,128,1,128,195,0,255,0,124,0,9,14,28, 10,0,0,31,0,127,0,96,0,192,0,192,0,192,0,222, 0,223,0,195,128,193,128,193,128,227,0,127,0,60,0,9, 14,28,10,0,0,127,128,255,128,0,0,3,0,3,0,6, 0,6,0,12,0,12,0,24,0,24,0,48,0,48,0,32, 0,9,14,28,10,0,0,58,0,119,0,227,128,193,128,193, 128,99,0,54,0,111,0,227,128,193,128,193,128,227,128,119, 0,46,0,9,14,28,10,0,0,60,0,255,0,231,0,195, 128,193,128,193,128,225,128,253,128,125,128,1,128,3,128,7, 0,127,0,252,0,3,11,11,4,0,2,224,160,224,0,0, 0,0,0,224,160,224,4,13,13,5,0,0,112,80,112,0, 0,0,0,0,112,80,112,96,192,9,11,22,10,0,1,1, 128,3,128,15,0,28,0,120,0,224,0,120,0,28,0,15, 0,3,128,1,128,9,6,12,10,0,4,127,128,255,0,0, 0,0,0,127,128,255,0,9,11,22,10,0,1,192,0,224, 0,120,0,60,0,15,0,3,128,15,0,60,0,120,0,224, 0,192,0,8,14,14,9,0,0,116,238,135,3,3,6,14, 56,48,48,0,0,48,48,9,11,22,10,0,1,62,0,65, 0,128,128,154,128,166,128,162,128,162,128,166,128,155,0,64, 0,63,128,9,14,28,10,0,0,252,0,254,0,199,0,195, 128,193,128,193,128,193,128,253,128,253,128,193,128,193,128,193, 128,193,128,129,0,9,14,28,10,0,0,94,0,223,0,195, 128,193,128,193,128,195,128,255,0,255,0,195,128,193,128,193, 128,195,128,223,0,190,0,9,14,28,10,0,0,14,0,63, 0,115,128,97,128,192,0,192,0,192,0,192,0,192,0,192, 0,96,0,112,0,63,128,15,0,9,14,28,10,0,0,238, 0,111,0,99,128,97,128,97,128,97,128,97,128,97,128,97, 128,97,128,97,128,99,128,111,0,238,0,9,14,28,10,0, 0,95,128,223,0,192,0,192,0,192,0,192,0,223,0,222, 0,192,0,192,0,192,0,192,0,223,128,191,0,9,14,28, 10,0,0,95,128,223,0,192,0,192,0,192,0,192,0,223, 0,222,0,192,0,192,0,192,0,192,0,192,0,128,0,9, 14,28,10,0,0,63,128,127,128,225,128,192,0,192,0,192, 0,192,0,207,128,223,128,193,128,193,128,225,128,127,128,62, 0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,193, 128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,193, 128,64,128,8,14,14,10,1,0,254,127,24,24,24,24,24, 24,24,24,24,24,254,127,9,14,28,10,0,0,31,128,63, 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, 128,1,128,195,128,255,0,62,0,9,14,28,10,0,0,65, 128,195,128,199,0,206,0,220,0,216,0,216,0,216,0,216, 0,220,0,206,0,199,0,195,128,65,128,9,14,28,10,0, 0,64,0,192,0,192,0,192,0,192,0,192,0,192,0,192, 0,192,0,192,0,192,0,192,0,255,128,255,0,9,14,28, 10,0,0,193,128,227,128,247,128,247,128,213,128,193,128,213, 128,221,128,221,128,201,128,193,128,193,128,193,128,129,0,9, 14,28,10,0,0,225,0,225,128,241,128,241,128,249,128,217, 128,221,128,205,128,205,128,197,128,197,128,193,128,193,128,128, 128,9,14,28,10,0,0,46,0,111,0,227,128,193,128,193, 128,193,128,193,128,193,128,193,128,193,128,193,128,227,128,123, 0,58,0,9,14,28,10,0,0,254,0,255,0,195,128,193, 128,193,128,195,128,223,0,222,0,192,0,192,0,192,0,192, 0,192,0,128,0,10,15,30,10,0,255,46,0,111,0,227, 128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,193, 128,227,0,123,128,58,192,0,192,9,14,28,10,0,0,126, 0,255,0,195,128,193,128,193,128,195,128,223,0,220,0,206, 0,199,0,195,128,193,128,193,128,129,0,9,14,28,10,0, 0,62,0,127,0,224,0,192,0,192,0,224,0,118,0,27, 0,3,128,1,128,1,128,3,128,255,128,127,0,9,14,28, 10,0,0,255,0,127,128,0,0,12,0,12,0,12,0,12, 0,12,0,12,0,12,0,12,0,12,0,12,0,4,0,9, 14,28,10,0,0,64,128,193,128,193,128,193,128,193,128,193, 128,193,128,193,128,193,128,193,128,193,128,99,0,127,0,62, 0,9,14,28,10,0,0,227,128,99,0,99,0,99,0,34, 0,54,0,54,0,54,0,20,0,28,0,28,0,28,0,8, 0,8,0,10,14,28,11,0,0,64,64,192,192,192,192,192, 192,192,192,192,192,204,192,204,192,204,192,222,192,222,192,211, 192,193,192,128,192,9,14,28,10,0,0,193,128,193,128,193, 128,99,0,99,0,50,0,56,0,28,0,14,0,103,0,99, 0,193,128,193,128,193,128,10,14,28,10,0,0,192,192,192, 192,97,128,97,128,51,0,63,0,30,0,12,0,8,0,4, 0,12,0,12,0,12,0,8,0,9,14,28,10,0,0,127, 128,255,128,1,128,3,128,7,0,6,0,4,0,16,0,48, 0,112,0,224,0,192,0,255,128,255,0,5,14,14,6,0, 0,248,192,192,192,192,192,192,192,192,192,192,192,192,248,9, 14,28,10,0,0,192,0,96,0,96,0,48,0,48,0,24, 0,24,0,12,0,12,0,6,0,6,0,3,0,3,0,1, 128,5,14,14,6,0,0,248,24,24,24,24,24,24,24,24, 24,24,24,24,248,9,6,12,10,0,8,8,0,28,0,54, 0,99,0,193,128,128,128,10,1,2,10,0,255,255,192,4, 3,3,5,0,12,224,96,48,8,11,11,9,0,0,124,127, 3,3,59,123,227,195,199,255,123,9,13,26,10,0,0,64, 0,192,0,192,0,192,0,192,0,222,0,223,0,195,128,193, 128,193,128,195,0,255,0,222,0,8,11,11,9,0,0,30, 63,115,224,192,192,192,224,240,127,30,9,13,26,10,0,0, 0,128,1,128,1,128,1,128,1,128,61,128,125,128,225,128, 193,128,193,128,227,128,127,128,61,128,8,11,11,9,0,0, 60,126,231,195,195,223,222,192,227,127,62,7,13,13,8,0, 0,62,124,96,96,252,248,96,96,96,96,96,96,32,8,13, 13,9,0,0,63,127,227,195,195,195,227,123,51,3,3,127, 254,8,13,13,9,0,0,64,192,192,192,222,223,195,195,195, 195,195,195,130,2,13,13,3,0,0,64,192,128,64,192,192, 192,192,192,192,192,192,128,5,14,14,6,0,255,16,24,24, 8,48,120,24,24,24,24,24,24,120,240,8,13,13,9,0, 0,64,192,192,198,198,204,216,216,216,204,198,199,131,2,14, 14,3,0,0,64,192,192,192,192,192,192,192,192,192,192,192, 192,128,9,11,22,10,0,0,91,0,219,128,201,128,201,128, 201,128,201,128,201,128,201,128,201,128,193,128,129,0,8,11, 11,9,0,0,94,223,195,195,195,195,195,195,195,195,130,8, 11,11,9,0,0,52,118,227,195,195,195,195,195,227,118,52, 8,11,11,9,0,0,252,254,199,195,199,222,220,192,192,192, 128,9,13,26,9,0,255,63,0,127,0,227,0,195,0,195, 0,195,0,251,0,123,0,3,0,3,0,3,128,3,128,3, 128,7,11,11,8,0,0,92,222,224,224,192,192,192,192,192, 192,128,8,11,11,9,0,0,62,127,192,192,240,102,15,3, 3,254,124,6,13,13,7,0,0,32,96,96,252,248,96,96, 96,96,96,96,124,60,8,11,11,9,0,0,65,195,195,195, 195,195,195,195,227,123,58,8,11,11,9,0,0,129,129,195, 195,102,102,102,36,60,24,24,9,11,22,10,0,0,128,128, 193,128,201,128,201,128,201,128,201,128,193,128,221,128,247,128, 227,128,65,0,8,11,11,9,0,0,195,102,102,52,24,24, 24,52,102,102,195,8,12,12,9,0,255,193,227,99,102,110, 44,12,24,24,48,240,224,8,11,11,9,0,0,127,255,7, 6,12,0,48,96,224,255,254,7,14,14,8,0,0,14,28, 24,24,24,48,224,224,48,24,24,24,28,14,2,16,16,5, 1,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192, 192,192,8,14,14,9,0,0,224,112,24,24,24,12,7,7, 12,24,24,24,112,224,10,5,10,11,0,4,48,192,120,192, 204,192,199,128,195,0,5,13,13,6,0,1,248,136,136,136, 136,136,136,136,136,136,136,136,248,8,11,11,9,0,0,252, 254,199,195,199,222,220,192,192,192,128,8,11,11,9,0,0, 30,63,115,224,192,192,192,224,240,127,30,8,11,11,9,0, 0,127,254,24,24,24,24,24,24,24,24,16,8,12,12,9, 0,255,193,227,99,102,110,44,12,24,24,48,240,224,8,12, 12,9,0,255,126,255,219,219,219,219,90,24,24,24,24,16, 8,11,11,9,0,0,195,102,102,52,24,24,24,52,102,102, 195,8,12,12,9,0,255,132,198,198,198,198,198,198,198,198, 254,255,3,8,11,11,9,0,0,65,195,195,195,231,127,63, 3,3,3,2,8,11,11,9,0,0,130,195,195,211,219,219, 219,219,219,203,255,8,12,12,9,0,255,130,195,195,211,219, 219,219,219,218,200,255,3,8,11,11,9,0,0,192,224,96, 96,108,110,103,99,103,126,124,8,11,11,9,0,0,130,195, 195,195,219,221,207,199,207,253,251,8,11,11,9,0,0,64, 192,192,192,220,222,199,195,199,254,252,8,11,11,9,0,0, 124,254,198,3,27,59,3,3,6,254,120,9,11,22,10,0, 0,71,0,207,128,205,128,205,128,221,128,221,128,205,128,205, 128,205,128,207,128,135,0,8,11,11,9,0,0,63,127,227, 195,227,123,59,51,51,115,226,9,14,28,10,0,0,252,0, 254,0,199,0,195,128,193,128,193,128,193,128,253,128,253,128, 193,128,193,128,193,128,193,128,129,0,9,14,28,10,0,0, 223,128,223,0,192,0,192,0,192,0,192,0,222,0,223,0, 195,128,193,128,193,128,195,128,255,0,254,0,9,14,28,10, 0,0,94,0,223,0,195,128,193,128,193,128,195,128,255,0, 255,0,195,128,193,128,193,128,195,128,223,0,190,0,9,14, 28,10,0,0,223,0,223,128,192,0,192,0,192,0,192,0, 192,0,192,0,192,0,192,0,192,0,192,0,192,0,128,0, 9,14,28,10,0,0,11,0,27,0,59,0,115,0,99,0, 99,0,99,0,99,0,99,0,99,0,123,0,251,128,193,128, 193,128,9,14,28,10,0,0,95,128,223,0,192,0,192,0, 192,0,192,0,223,0,222,0,192,0,192,0,192,0,192,0, 223,128,191,0,10,14,28,11,0,0,64,64,192,192,196,192, 204,192,204,192,109,128,109,128,109,128,109,128,204,192,204,192, 204,192,200,192,128,128,9,14,28,10,0,0,122,0,251,0, 131,128,1,128,1,128,3,0,58,0,123,0,3,128,1,128, 1,128,131,128,251,0,120,0,9,14,28,10,0,0,67,128, 195,128,199,128,199,128,199,128,205,128,205,128,205,128,217,128, 217,128,217,128,209,128,209,128,193,0,9,14,28,10,0,0, 91,128,219,128,215,128,199,128,199,128,205,128,205,128,205,128, 217,128,217,128,217,128,209,128,209,128,193,0,9,14,28,10, 0,0,65,128,195,128,199,0,206,0,220,0,216,0,216,0, 216,0,216,0,220,0,206,0,199,0,195,128,65,128,9,14, 28,10,0,0,220,0,222,0,199,0,195,128,193,128,193,128, 193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128, 9,14,28,10,0,0,193,128,227,128,247,128,247,128,213,128, 193,128,213,128,221,128,221,128,201,128,193,128,193,128,193,128, 129,0,9,14,28,10,0,0,129,0,193,128,193,128,193,128, 193,128,193,128,223,128,223,128,193,128,193,128,193,128,193,128, 193,128,64,128,9,14,28,10,0,0,46,0,111,0,227,128, 193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128, 227,128,123,0,58,0,9,14,28,10,0,0,223,128,223,128, 193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128, 193,128,193,128,193,128,129,0,9,14,28,10,0,0,254,0, 255,0,195,128,193,128,193,128,195,128,223,0,222,0,192,0, 192,0,192,0,192,0,192,0,128,0,9,14,28,10,0,0, 14,0,63,0,115,128,97,128,192,0,192,0,192,0,192,0, 192,0,192,0,96,0,112,0,63,128,15,0,9,14,28,10, 0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,0, 12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,14, 28,10,0,0,129,0,193,128,193,128,193,128,193,128,125,128, 61,128,1,128,1,128,1,128,193,128,225,128,127,0,62,0, 10,14,28,11,0,0,63,0,127,128,237,192,204,192,204,192, 237,192,109,128,45,0,12,0,12,0,12,0,12,0,12,0, 4,0,9,14,28,10,0,0,193,128,193,128,193,128,99,0, 99,0,50,0,56,0,28,0,14,0,103,0,99,0,193,128, 193,128,193,128,10,15,30,10,0,255,130,0,195,0,195,0, 195,0,195,0,195,0,195,0,195,0,195,0,195,0,195,0, 195,0,223,0,223,128,1,192,9,14,28,10,0,0,129,0, 193,128,193,128,193,128,193,128,193,128,225,128,125,128,61,128, 1,128,1,128,1,128,1,128,0,128,10,14,28,11,0,0, 128,128,192,192,192,192,192,192,200,192,204,192,204,192,204,192, 204,192,204,192,196,192,192,64,223,128,95,192,11,15,30,11, 0,255,128,128,192,192,192,192,192,192,200,192,204,192,204,192, 204,192,204,192,204,192,196,192,192,64,223,128,95,192,0,224, 9,14,28,10,0,0,224,0,224,0,96,0,96,0,96,0, 96,0,110,0,111,0,99,128,97,128,97,128,99,128,127,0, 62,0,10,14,28,11,0,0,128,128,192,192,192,192,192,192, 192,192,192,192,220,192,222,192,199,64,195,64,195,64,199,64, 254,192,124,192,9,14,28,10,0,0,128,0,192,0,192,0, 192,0,192,0,192,0,222,0,223,0,195,128,193,128,193,128, 195,128,255,0,254,0,9,14,28,10,0,0,62,0,127,0, 227,128,193,128,193,128,1,128,29,128,29,128,1,128,1,128, 193,128,227,128,127,0,62,0,10,14,28,11,0,0,71,0, 207,128,221,192,216,192,216,192,216,192,248,192,248,192,216,192, 216,192,216,192,221,192,207,128,135,0,9,14,28,10,0,0, 63,128,127,128,225,128,193,128,193,128,225,128,125,128,61,128, 29,128,57,128,113,128,225,128,193,128,129,0,8,11,11,9, 0,0,124,127,3,3,59,123,227,195,199,255,123,8,11,11, 9,0,0,7,31,56,112,102,207,195,195,231,126,60,8,11, 11,9,0,0,92,222,198,198,220,222,195,195,199,222,188,8, 11,11,9,0,0,254,255,192,192,192,192,192,192,192,192,128, 10,11,22,11,0,0,31,128,31,128,25,128,49,128,49,128, 49,128,1,128,127,192,255,192,192,192,192,192,8,11,11,9, 0,0,60,126,231,195,195,223,222,192,227,127,62,9,11,22, 10,0,0,64,128,201,128,201,128,107,0,54,0,54,0,107, 0,201,128,201,128,201,128,129,0,8,11,11,9,0,0,116, 246,195,7,126,62,6,3,7,254,124,8,11,11,9,0,0, 65,195,195,199,207,223,219,211,195,195,130,8,11,11,9,0, 0,89,219,211,199,207,223,219,211,195,195,130,8,11,11,9, 0,0,71,207,204,220,216,216,216,220,206,199,67,8,11,11, 9,0,0,27,59,115,227,195,195,195,195,195,195,195,9,11, 22,10,0,0,65,0,227,128,247,128,247,128,213,128,213,128, 213,128,213,128,193,128,193,128,129,0,8,11,11,9,0,0, 65,195,195,251,251,195,195,195,195,195,130,8,11,11,9,0, 0,52,118,227,195,195,195,195,195,227,118,52,8,11,11,9, 0,0,95,223,195,195,195,195,195,195,195,195,130,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255}; 
  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 10:09

#47

DAFdriver

Offline

Зарегистрирован: 12.08.2016

      Так он там есть , может не правильный . пост 29 .

  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 10:12

#48

ua6em

ua6em аватар

Offline

Зарегистрирован: 17.08.2016

DAFdriver пишет:

      Так он там есть , может не правильный . пост 29 .

не в скетче, а в отдельном файле, точно есть? и имя файла соответствует? сомневаюсь )))

  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 11:39

#49

DAFdriver

Offline

Зарегистрирован: 12.08.2016

Да в отдельной папке . В ide на белом фоне DDS_sveper1_TFT_ST7735_128X160_V4hvspi рядом на синем фоне rusFont.h и далее

 /***************************************************************************

 *  Name    : DDS_Sweeper.BAS                                                *

 *  Author  : Beric Dunn (K6BEZ)                                             *

 *  Notice  : Copyright (c) 2013  CC-BY-SA                                   *

 *          : Creative Commons Attribution-ShareAlike 3.0 Unported License   *

 *  Date    : 9/26/2013                                                      *

 *  Version : 1.0                                                            *

 *  Notes   : Written using for the Arduino Micro                            *

 *          :   Pins:                                                        *

 *          :   A0 — Reverse Detector Analog in                              *

 *          :   A1 — Forward Detector Analog in                              *

 *          : Modified by Norbert Redeker (DG7EAO) 07/2014                   *

 *          : TFT Display mit ILI9341 Chip, SPI, 240 x 320                   *

 ***************************************************************************/

#include <SPI.h>

#include «Ucglib.h»

#include «rusFont.h»

// Define Pins used to control AD9850 DDS

const int FQ_UD=9;

const int SDAT=7;

const int SCLK=10;

const int RESET=12;

// Variablen für Display

double vswrArray[110]; //Array für SWR

int z = 0;            // Index für Array

double SwrFreq = 14;  // Variable für Freq. mit SWR Min.

double SwrMin = 100;   // Variable für SWR Min.

double Freq1 = 1;     // Freq. Links unterste Zeile Display

double Freq2 = 15;    // Freq. Mitte unterste Zeile Display

double Freq3 = 30;    // Freq. Mitte unterste Zeile Display

unsigned long milliold = 0;  //Millisekunden für Entprellung Interrupt

unsigned long millinew = 0;  //Millisekunden für Entprellung Interrupt

int flag = 0;                // wir auf 1 gesetzt bei Interrupt, in void Loop perform_sweep

double counter = 0;          // Zähler um erste Interrupts zu ignorieren

// Variablen für Messung

double Fstart_MHz = 1;  // Start Frequency for sweep

double Fstop_MHz = 30;  // Stop Frequency for sweep

double current_freq_MHz; // Temp variable used during sweep

long serial_input_number; // Used to build number from serial stream

int num_steps = 100; // Number of steps to use in the sweep

char incoming_char; // Character read from serial stream

//Konstruktor für Display

Ucglib_ST7735_18x128x160_HWSPI ucg(/*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4);

// the setup routine runs once when you press reset:

void setup() {

  // Voltmetr

  analogReference(INTERNAL);

  float Vbat = (analogRead(A5) * 1.1) / 1023.0;

  float Vin = Vbat / (89.8 / (783.0 + 89.8)); // R2/(R1+R2)

  // Schreibe Info Text auf Display

  ucg.begin(UCG_FONT_MODE_SOLID);

  ucg.clearScreen();

  ucg.setRotate90();

  ucg.setFont(my14x10rus);

  ucg.setColor(255, 255, 255); 

  ucg.setPrintPos(32,25);

  ucg.print(«Панорамный»);

  ucg.setPrintPos(40,45);

  ucg.print(«КСВ Метр»);

  ucg.setPrintPos(40,65);

  ucg.print(«1-30 MHz»);

  ucg.setPrintPos(32,90);

  ucg.print(«Пенза 2016»);

  ucg.setPrintPos(5,128);

  ucg.print(«Бат «);

  ucg.setPrintPos(40,128);

  ucg.print(Vin, 1);

  // Configiure DDS control pins for digital output

  pinMode(FQ_UD,OUTPUT);

  pinMode(SCLK,OUTPUT);

  pinMode(SDAT,OUTPUT);

  pinMode(RESET,OUTPUT);

  //Tasten Interrupt an PIN 2

  pinMode(2,OUTPUT);

  digitalWrite(2, HIGH);

  attachInterrupt(0, key2, FALLING);

  unsigned long milliold = millis();

  //Tasten Interrupt an PIN 3

  pinMode(3,OUTPUT);

  digitalWrite(3, HIGH);

  attachInterrupt(1, key3, FALLING);

  //milliold = millis();

  // Configure LED pin for digital output

  pinMode(13,OUTPUT);

  // Set up analog inputs on A0 and A1, internal reference voltage

  pinMode(A0,INPUT);

  pinMode(A1,INPUT);

  analogReference(INTERNAL);

  // initialize serial communication at 57600 baud

  Serial.begin(57600);

  // Reset the DDS

  digitalWrite(RESET,HIGH);

  digitalWrite(RESET,LOW);

  //Initialise the incoming serial number to zero

  serial_input_number=0;

}

// the loop routine runs over and over again forever:

void loop() {

  //Check for character

  if(Serial.available()>0){

    incoming_char = Serial.read();

    switch(incoming_char){

    case ‘0’:

    case ‘1’:

    case ‘2’:

    case ‘3’:

    case ‘4’:

    case ‘5’:

    case ‘6’:

    case ‘7’:

    case ‘8’:

    case ‘9’:

      serial_input_number=serial_input_number*10+(incoming_char-‘0’);

      break;

    case ‘A’:

      //Turn frequency into FStart

      Fstart_MHz = ((double)serial_input_number)/1000000;

      serial_input_number=0;

      break;

    case ‘B’:

      //Turn frequency into FStop

      Fstop_MHz = ((double)serial_input_number)/1000000;

      serial_input_number=0;

      break;

    case ‘C’:

      //Turn frequency into FStart and set DDS output to single frequency

      Fstart_MHz = ((double)serial_input_number)/1000000;

      //SetDDSFreq(Fstart_MHz);

      SetDDSFreq(Fstart_MHz * 1000000);

      delay(100);

      SetDDSFreq(Fstart_MHz * 1000000);

      serial_input_number=0;    

      break;

    case ‘N’:

      // Set number of steps in the sweep

      num_steps = serial_input_number;

      serial_input_number=0;

      break;

    case ‘S’:    

    case ‘s’:    

      Perform_sweep();

      break;

    case ‘?’:

      // Report current configuration to PC    

      Serial.print(«Start Freq:»);

      Serial.println(Fstart_MHz*1000000);

      Serial.print(«Stop Freq:»);

      Serial.println(Fstop_MHz*1000000);

      Serial.print(«Num Steps:»);

      Serial.println(num_steps);

      break;

    }

    Serial.flush();     

  } 

  //Perform Sweep nach Interrupt PIN2 oder 3

  // ingnoriere Startup Interrupts durch counter

  if (flag == 1 && counter >2) 

  {

    flag = 0;

    Perform_sweep(); 

  }

}

void Perform_sweep(){

  double FWD=0;

  double REV=0;

  double VSWR;

  double Fstep_MHz = (Fstop_MHz-Fstart_MHz)/num_steps;

  z = 0;

  SwrMin = 100;

  ucg.clearScreen();

  ucg.setFont(my14x10rus);

  ucg.setColor(255, 0, 100); 

  ucg.setPrintPos(35,60);

  ucg.print(«Анализ КСВ»);

  // Start loop 

  for(int i=0;i<=num_steps;i++){

    // Calculate current frequency

    current_freq_MHz = Fstart_MHz + i*Fstep_MHz;

    // Set DDS to current frequency

    SetDDSFreq(current_freq_MHz*1000000);

    // Wait a little for settling

    //delay(10);

    delay(100);

    // Read the forward and reverse voltages

    REV = analogRead(A0);

    FWD = analogRead(A1);

    //Offset Korrektur

    REV = REV-5;

    if(REV>=FWD){

      REV = FWD-1;

    }

    if (REV <1) {

      REV = 1;

    }

    VSWR = (FWD+REV)/(FWD-REV);

    //Skalieren für Ausgabe

    VSWR = VSWR * 1000;

    // Send current line back to PC over serial bus

    Serial.print(current_freq_MHz*1000000);

    Serial.print(«,0,»);

    Serial.print(VSWR);

    Serial.print(«,»);

    Serial.print(FWD);

    Serial.print(«,»);

    Serial.println(REV);

    // Übergebe SWR an Array

    // ERmittele Freq bei niedrigsten SWR

    vswrArray[z] = VSWR/1000;

    if (vswrArray[z] > 10) vswrArray[z] = 10;

    if (vswrArray[z] < SwrMin && vswrArray[z] > 1) 

    {

      SwrMin = vswrArray[z];

      SwrFreq = current_freq_MHz;

    }    

    z = z + 1;

  }

  // Send «End» to PC to indicate end of sweep

  Serial.println(«End»);

  Serial.flush(); 

  ucg.clearScreen();

  //Zeichne Grid

  CreateGrid();

  ucg.setColor(76, 255, 0);

  // Draw Line

  double last = 10;

  double xx = 6;

  double j = 1;

  for (int i = 1 ;i < 103; i++){

    xx = vswrArray[i];

    ucg.drawLine(j,105-last*9, j+1, 105-xx*9);

    ucg.drawLine(j+1,105-last*9, j+2, 105-xx*9);

    j = j + 1.5;

    last = xx;  

  }     

}

// Setze DDS Frequenz

void SetDDSFreq(double Freq_Hz){

  // Calculate the DDS word — from AD9850 Datasheet

  int32_t f = Freq_Hz * 4294967295/125000000;

  // Send one byte at a time

  for (int b=0;b<4;b++,f>>=8){

    send_byte(f & 0xFF);

  }

  // 5th byte needs to be zeros

  send_byte(0);

  // Strobe the Update pin to tell DDS to use values

  digitalWrite(FQ_UD,HIGH);

  digitalWrite(FQ_UD,LOW);

}

// Sende Daten an DDS

void send_byte(byte data_to_send){

  // Bit bang the byte over the SPI bus

  for (int i=0; i<8; i++,data_to_send>>=1){

    // Set Data bit on output pin

    digitalWrite(SDAT,data_to_send & 0x01);

    // Strobe the clock pin

    digitalWrite(SCLK,HIGH);

    digitalWrite(SCLK,LOW);

  }

}

//Zeichne Grid auf TFT Display  

void CreateGrid()

{

  //ucg.clearScreen();

  double maxSwr = 10;

  ucg.setFont(ucg_font_5x8);

  ucg.drawHLine(0,60,155);

  ucg.drawHLine(0,98,155);

  ucg.drawVLine(39,15,90);

  ucg.drawVLine(78,15,90);

  ucg.drawVLine(117,15,90);

  ucg.setPrintPos(0, 118);

  ucg.print(Freq1,3);

  ucg.setPrintPos(65, 118);

  ucg.print(Freq2,3);

  ucg.setPrintPos(130, 118);

  ucg.print(Freq3,3);

  ucg.setPrintPos(5, 8);

  ucg.print(«SWR»);

  ucg.setPrintPos(30, 8);

  ucg.print(SwrMin,2);

  ucg.setPrintPos(58, 8);

  ucg.print(«>»);

  ucg.setPrintPos(65, 8);

  ucg.print(maxSwr,2);

  ucg.setPrintPos(125, 8);

  ucg.print(SwrFreq,3);

  ucg.drawRFrame(0,15,155,90, 1);

}  

// Interrupt Service Routine

// Abfrage Low an Pin 2

void key2()

{

  //ignoriere Startup Interrupts > counter 

  counter = counter + 1; 

  //Entprellen mit millis()

  millinew = millis();

  if (millinew — milliold < 1000)

  {

    milliold = millinew;

    return; 

  }

  milliold = millinew;

  Fstart_MHz = 1;  // Start Frequency for sweep

  Fstop_MHz = 30;  // Stop Frequency for sweep

  num_steps = 102; // Steps

  Freq1 = 1;       // Unterste Zeile Display Freq. Links

  Freq2 = 15;      // Unterste Zeile Display Freq. Mitte

  Freq3 = 30;      // Unterste Zeile Display Freq. Recht

  //Perform_sweep();

  flag = 1;

}

// Interrupt Service Routine

// Abfrage Low an Pin 3

void key3()

{

  //ignoriere Startup Interrupts > counter 

  counter = counter + 1;  

  //Entprellen mit millis()

  millinew = millis();

  if (millinew — milliold < 1000)

  {

    milliold = millinew;

    return; 

  }

  milliold = millinew;

  int x = SwrFreq + 0.5; //Runde auf Mhz

  Fstart_MHz = x-1;  // Start Frequency for sweep

  Fstop_MHz = x+1;   // Stop Frequency for sweep

  num_steps = 102;  // Steps

  Freq1 = x-1;      // Unterste Zeile Display Freq. Links

  Freq2 = x;        // Unterste Zeile Display Freq. Mitte

  Freq3 = x+1;      // Unterste Zeile Display Freq. Rechts

  //Perform_sweep();

  flag = 1;

}

   кликаем  rusFont.h открывается

  const ucg_fntpgm_uint8_t my14x10rus[4157] UCG_SECTION(«.progmem.my14x10») = {

  0,11,15,0,255,14,3,35,6,248,32,255,0,15,255,14,

  0,0,0,0,8,0,0,2,14,14,4,1,0,64,192,192,

  192,192,192,192,192,192,128,0,64,192,128,6,5,5,7,0,

  9,68,204,204,204,136,10,14,28,11,0,0,8,128,8,128,

  17,0,17,0,127,192,17,0,17,0,34,0,34,0,255,128,

  34,0,34,0,68,0,68,0,9,14,28,10,0,0,8,0,

  8,0,59,128,123,0,200,0,200,0,232,0,107,0,11,128,

  9,128,9,128,111,0,238,0,8,0,8,14,14,9,0,0,

  97,179,214,102,12,12,24,24,48,48,102,107,205,134,9,14,

  28,10,0,0,56,0,124,0,108,0,108,0,108,0,56,0,

  56,128,109,128,199,0,194,0,199,0,237,128,124,128,56,0,

  2,5,5,3,0,10,128,192,192,192,64,5,14,14,6,0,

  0,24,48,96,96,192,192,192,192,192,192,96,96,48,24,5,

  14,14,6,0,0,192,96,48,48,24,24,24,24,24,24,56,

  48,96,192,7,7,7,8,0,4,146,214,124,16,124,214,146,

  8,10,10,10,0,1,8,24,24,24,127,254,24,24,24,16,

  4,6,6,5,0,0,112,96,96,64,192,192,8,2,2,9,

  0,5,127,254,3,3,3,4,0,0,224,160,224,8,14,14,

  9,0,0,3,3,6,6,12,12,24,24,48,48,96,96,192,

  192,9,14,28,10,0,0,62,0,127,0,227,128,197,128,197,

  128,197,128,201,128,201,128,209,128,209,128,209,128,227,128,127,

  0,62,0,9,14,28,10,0,0,12,0,28,0,60,0,124,

  0,8,0,4,0,12,0,12,0,8,0,4,0,12,0,12,

  0,127,128,255,128,9,14,28,10,0,0,126,0,255,0,195,

  128,193,128,1,128,3,128,63,0,126,0,224,0,192,0,192,

  0,192,0,223,128,191,0,9,14,28,10,0,0,126,0,255,

  0,195,128,1,128,1,128,3,0,58,0,119,0,3,128,1,

  128,1,128,3,128,255,0,126,0,9,14,28,10,0,0,2,

  0,6,0,14,0,30,0,62,0,118,0,230,0,198,0,251,

  128,247,0,6,0,6,0,6,0,4,0,9,14,28,10,0,

  0,127,128,127,128,96,0,96,0,96,0,110,0,111,0,3,

  128,1,128,1,128,1,128,195,0,255,0,124,0,9,14,28,

  10,0,0,31,0,127,0,96,0,192,0,192,0,192,0,222,

  0,223,0,195,128,193,128,193,128,227,0,127,0,60,0,9,

  14,28,10,0,0,127,128,255,128,0,0,3,0,3,0,6,

  0,6,0,12,0,12,0,24,0,24,0,48,0,48,0,32,

  0,9,14,28,10,0,0,58,0,119,0,227,128,193,128,193,

  128,99,0,54,0,111,0,227,128,193,128,193,128,227,128,119,

  0,46,0,9,14,28,10,0,0,60,0,255,0,231,0,195,

  128,193,128,193,128,225,128,253,128,125,128,1,128,3,128,7,

  0,127,0,252,0,3,11,11,4,0,2,224,160,224,0,0,

  0,0,0,224,160,224,4,13,13,5,0,0,112,80,112,0,

  0,0,0,0,112,80,112,96,192,9,11,22,10,0,1,1,

  128,3,128,15,0,28,0,120,0,224,0,120,0,28,0,15,

  0,3,128,1,128,9,6,12,10,0,4,127,128,255,0,0,

  0,0,0,127,128,255,0,9,11,22,10,0,1,192,0,224,

  0,120,0,60,0,15,0,3,128,15,0,60,0,120,0,224,

  0,192,0,8,14,14,9,0,0,116,238,135,3,3,6,14,

  56,48,48,0,0,48,48,9,11,22,10,0,1,62,0,65,

  0,128,128,154,128,166,128,162,128,162,128,166,128,155,0,64,

  0,63,128,9,14,28,10,0,0,252,0,254,0,199,0,195,

  128,193,128,193,128,193,128,253,128,253,128,193,128,193,128,193,

  128,193,128,129,0,9,14,28,10,0,0,94,0,223,0,195,

  128,193,128,193,128,195,128,255,0,255,0,195,128,193,128,193,

  128,195,128,223,0,190,0,9,14,28,10,0,0,14,0,63,

  0,115,128,97,128,192,0,192,0,192,0,192,0,192,0,192,

  0,96,0,112,0,63,128,15,0,9,14,28,10,0,0,238,

  0,111,0,99,128,97,128,97,128,97,128,97,128,97,128,97,

  128,97,128,97,128,99,128,111,0,238,0,9,14,28,10,0,

  0,95,128,223,0,192,0,192,0,192,0,192,0,223,0,222,

  0,192,0,192,0,192,0,192,0,223,128,191,0,9,14,28,

  10,0,0,95,128,223,0,192,0,192,0,192,0,192,0,223,

  0,222,0,192,0,192,0,192,0,192,0,192,0,128,0,9,

  14,28,10,0,0,63,128,127,128,225,128,192,0,192,0,192,

  0,192,0,207,128,223,128,193,128,193,128,225,128,127,128,62,

  0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,193,

  128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,193,

  128,64,128,8,14,14,10,1,0,254,127,24,24,24,24,24,

  24,24,24,24,24,254,127,9,14,28,10,0,0,31,128,63,

  128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,

  128,1,128,195,128,255,0,62,0,9,14,28,10,0,0,65,

  128,195,128,199,0,206,0,220,0,216,0,216,0,216,0,216,

  0,220,0,206,0,199,0,195,128,65,128,9,14,28,10,0,

  0,64,0,192,0,192,0,192,0,192,0,192,0,192,0,192,

  0,192,0,192,0,192,0,192,0,255,128,255,0,9,14,28,

  10,0,0,193,128,227,128,247,128,247,128,213,128,193,128,213,

  128,221,128,221,128,201,128,193,128,193,128,193,128,129,0,9,

  14,28,10,0,0,225,0,225,128,241,128,241,128,249,128,217,

  128,221,128,205,128,205,128,197,128,197,128,193,128,193,128,128,

  128,9,14,28,10,0,0,46,0,111,0,227,128,193,128,193,

  128,193,128,193,128,193,128,193,128,193,128,193,128,227,128,123,

  0,58,0,9,14,28,10,0,0,254,0,255,0,195,128,193,

  128,193,128,195,128,223,0,222,0,192,0,192,0,192,0,192,

  0,192,0,128,0,10,15,30,10,0,255,46,0,111,0,227,

  128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,

  128,227,0,123,128,58,192,0,192,9,14,28,10,0,0,126,

  0,255,0,195,128,193,128,193,128,195,128,223,0,220,0,206,

  0,199,0,195,128,193,128,193,128,129,0,9,14,28,10,0,

  0,62,0,127,0,224,0,192,0,192,0,224,0,118,0,27,

  0,3,128,1,128,1,128,3,128,255,128,127,0,9,14,28,

  10,0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,

  0,12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,

  14,28,10,0,0,64,128,193,128,193,128,193,128,193,128,193,

  128,193,128,193,128,193,128,193,128,193,128,99,0,127,0,62,

  0,9,14,28,10,0,0,227,128,99,0,99,0,99,0,34,

  0,54,0,54,0,54,0,20,0,28,0,28,0,28,0,8,

  0,8,0,10,14,28,11,0,0,64,64,192,192,192,192,192,

  192,192,192,192,192,204,192,204,192,204,192,222,192,222,192,211,

  192,193,192,128,192,9,14,28,10,0,0,193,128,193,128,193,

  128,99,0,99,0,50,0,56,0,28,0,14,0,103,0,99,

  0,193,128,193,128,193,128,10,14,28,10,0,0,192,192,192,

  192,97,128,97,128,51,0,63,0,30,0,12,0,8,0,4,

  0,12,0,12,0,12,0,8,0,9,14,28,10,0,0,127,

  128,255,128,1,128,3,128,7,0,6,0,4,0,16,0,48,

  0,112,0,224,0,192,0,255,128,255,0,5,14,14,6,0,

  0,248,192,192,192,192,192,192,192,192,192,192,192,192,248,9,

  14,28,10,0,0,192,0,96,0,96,0,48,0,48,0,24,

  0,24,0,12,0,12,0,6,0,6,0,3,0,3,0,1,

  128,5,14,14,6,0,0,248,24,24,24,24,24,24,24,24,

  24,24,24,24,248,9,6,12,10,0,8,8,0,28,0,54,

  0,99,0,193,128,128,128,10,1,2,10,0,255,255,192,4,

  3,3,5,0,12,224,96,48,8,11,11,9,0,0,124,127,

  3,3,59,123,227,195,199,255,123,9,13,26,10,0,0,64,

  0,192,0,192,0,192,0,192,0,222,0,223,0,195,128,193,

  128,193,128,195,0,255,0,222,0,8,11,11,9,0,0,30,

  63,115,224,192,192,192,224,240,127,30,9,13,26,10,0,0,

  0,128,1,128,1,128,1,128,1,128,61,128,125,128,225,128,

  193,128,193,128,227,128,127,128,61,128,8,11,11,9,0,0,

  60,126,231,195,195,223,222,192,227,127,62,7,13,13,8,0,

  0,62,124,96,96,252,248,96,96,96,96,96,96,32,8,13,

  13,9,0,0,63,127,227,195,195,195,227,123,51,3,3,127,

  254,8,13,13,9,0,0,64,192,192,192,222,223,195,195,195,

  195,195,195,130,2,13,13,3,0,0,64,192,128,64,192,192,

  192,192,192,192,192,192,128,5,14,14,6,0,255,16,24,24,

  8,48,120,24,24,24,24,24,24,120,240,8,13,13,9,0,

  0,64,192,192,198,198,204,216,216,216,204,198,199,131,2,14,

  14,3,0,0,64,192,192,192,192,192,192,192,192,192,192,192,

  192,128,9,11,22,10,0,0,91,0,219,128,201,128,201,128,

  201,128,201,128,201,128,201,128,201,128,193,128,129,0,8,11,

  11,9,0,0,94,223,195,195,195,195,195,195,195,195,130,8,

  11,11,9,0,0,52,118,227,195,195,195,195,195,227,118,52,

  8,11,11,9,0,0,252,254,199,195,199,222,220,192,192,192,

  128,9,13,26,9,0,255,63,0,127,0,227,0,195,0,195,

  0,195,0,251,0,123,0,3,0,3,0,3,128,3,128,3,

  128,7,11,11,8,0,0,92,222,224,224,192,192,192,192,192,

  192,128,8,11,11,9,0,0,62,127,192,192,240,102,15,3,

  3,254,124,6,13,13,7,0,0,32,96,96,252,248,96,96,

  96,96,96,96,124,60,8,11,11,9,0,0,65,195,195,195,

  195,195,195,195,227,123,58,8,11,11,9,0,0,129,129,195,

  195,102,102,102,36,60,24,24,9,11,22,10,0,0,128,128,

  193,128,201,128,201,128,201,128,201,128,193,128,221,128,247,128,

  227,128,65,0,8,11,11,9,0,0,195,102,102,52,24,24,

  24,52,102,102,195,8,12,12,9,0,255,193,227,99,102,110,

  44,12,24,24,48,240,224,8,11,11,9,0,0,127,255,7,

  6,12,0,48,96,224,255,254,7,14,14,8,0,0,14,28,

  24,24,24,48,224,224,48,24,24,24,28,14,2,16,16,5,

  1,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192,

  192,192,8,14,14,9,0,0,224,112,24,24,24,12,7,7,

  12,24,24,24,112,224,10,5,10,11,0,4,48,192,120,192,

  204,192,199,128,195,0,5,13,13,6,0,1,248,136,136,136,

  136,136,136,136,136,136,136,136,248,8,11,11,9,0,0,252,

  254,199,195,199,222,220,192,192,192,128,8,11,11,9,0,0,

  30,63,115,224,192,192,192,224,240,127,30,8,11,11,9,0,

  0,127,254,24,24,24,24,24,24,24,24,16,8,12,12,9,

  0,255,193,227,99,102,110,44,12,24,24,48,240,224,8,12,

  12,9,0,255,126,255,219,219,219,219,90,24,24,24,24,16,

  8,11,11,9,0,0,195,102,102,52,24,24,24,52,102,102,

  195,8,12,12,9,0,255,132,198,198,198,198,198,198,198,198,

  254,255,3,8,11,11,9,0,0,65,195,195,195,231,127,63,

  3,3,3,2,8,11,11,9,0,0,130,195,195,211,219,219,

  219,219,219,203,255,8,12,12,9,0,255,130,195,195,211,219,

  219,219,219,218,200,255,3,8,11,11,9,0,0,192,224,96,

  96,108,110,103,99,103,126,124,8,11,11,9,0,0,130,195,

  195,195,219,221,207,199,207,253,251,8,11,11,9,0,0,64,

  192,192,192,220,222,199,195,199,254,252,8,11,11,9,0,0,

  124,254,198,3,27,59,3,3,6,254,120,9,11,22,10,0,

  0,71,0,207,128,205,128,205,128,221,128,221,128,205,128,205,

  128,205,128,207,128,135,0,8,11,11,9,0,0,63,127,227,

  195,227,123,59,51,51,115,226,9,14,28,10,0,0,252,0,

  254,0,199,0,195,128,193,128,193,128,193,128,253,128,253,128,

  193,128,193,128,193,128,193,128,129,0,9,14,28,10,0,0,

  223,128,223,0,192,0,192,0,192,0,192,0,222,0,223,0,

  195,128,193,128,193,128,195,128,255,0,254,0,9,14,28,10,

  0,0,94,0,223,0,195,128,193,128,193,128,195,128,255,0,

  255,0,195,128,193,128,193,128,195,128,223,0,190,0,9,14,

  28,10,0,0,223,0,223,128,192,0,192,0,192,0,192,0,

  192,0,192,0,192,0,192,0,192,0,192,0,192,0,128,0,

  9,14,28,10,0,0,11,0,27,0,59,0,115,0,99,0,

  99,0,99,0,99,0,99,0,99,0,123,0,251,128,193,128,

  193,128,9,14,28,10,0,0,95,128,223,0,192,0,192,0,

  192,0,192,0,223,0,222,0,192,0,192,0,192,0,192,0,

  223,128,191,0,10,14,28,11,0,0,64,64,192,192,196,192,

  204,192,204,192,109,128,109,128,109,128,109,128,204,192,204,192,

  204,192,200,192,128,128,9,14,28,10,0,0,122,0,251,0,

  131,128,1,128,1,128,3,0,58,0,123,0,3,128,1,128,

  1,128,131,128,251,0,120,0,9,14,28,10,0,0,67,128,

  195,128,199,128,199,128,199,128,205,128,205,128,205,128,217,128,

  217,128,217,128,209,128,209,128,193,0,9,14,28,10,0,0,

  91,128,219,128,215,128,199,128,199,128,205,128,205,128,205,128,

  217,128,217,128,217,128,209,128,209,128,193,0,9,14,28,10,

  0,0,65,128,195,128,199,0,206,0,220,0,216,0,216,0,

  216,0,216,0,220,0,206,0,199,0,195,128,65,128,9,14,

  28,10,0,0,220,0,222,0,199,0,195,128,193,128,193,128,

  193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,

  9,14,28,10,0,0,193,128,227,128,247,128,247,128,213,128,

  193,128,213,128,221,128,221,128,201,128,193,128,193,128,193,128,

  129,0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,

  193,128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,

  193,128,64,128,9,14,28,10,0,0,46,0,111,0,227,128,

  193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,

  227,128,123,0,58,0,9,14,28,10,0,0,223,128,223,128,

  193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,

  193,128,193,128,193,128,129,0,9,14,28,10,0,0,254,0,

  255,0,195,128,193,128,193,128,195,128,223,0,222,0,192,0,

  192,0,192,0,192,0,192,0,128,0,9,14,28,10,0,0,

  14,0,63,0,115,128,97,128,192,0,192,0,192,0,192,0,

  192,0,192,0,96,0,112,0,63,128,15,0,9,14,28,10,

  0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,0,

  12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,14,

  28,10,0,0,129,0,193,128,193,128,193,128,193,128,125,128,

  61,128,1,128,1,128,1,128,193,128,225,128,127,0,62,0,

  10,14,28,11,0,0,63,0,127,128,237,192,204,192,204,192,

  237,192,109,128,45,0,12,0,12,0,12,0,12,0,12,0,

  4,0,9,14,28,10,0,0,193,128,193,128,193,128,99,0,

  99,0,50,0,56,0,28,0,14,0,103,0,99,0,193,128,

  193,128,193,128,10,15,30,10,0,255,130,0,195,0,195,0,

  195,0,195,0,195,0,195,0,195,0,195,0,195,0,195,0,

  195,0,223,0,223,128,1,192,9,14,28,10,0,0,129,0,

  193,128,193,128,193,128,193,128,193,128,225,128,125,128,61,128,

  1,128,1,128,1,128,1,128,0,128,10,14,28,11,0,0,

  128,128,192,192,192,192,192,192,200,192,204,192,204,192,204,192,

  204,192,204,192,196,192,192,64,223,128,95,192,11,15,30,11,

  0,255,128,128,192,192,192,192,192,192,200,192,204,192,204,192,

  204,192,204,192,204,192,196,192,192,64,223,128,95,192,0,224,

  9,14,28,10,0,0,224,0,224,0,96,0,96,0,96,0,

  96,0,110,0,111,0,99,128,97,128,97,128,99,128,127,0,

  62,0,10,14,28,11,0,0,128,128,192,192,192,192,192,192,

  192,192,192,192,220,192,222,192,199,64,195,64,195,64,199,64,

  254,192,124,192,9,14,28,10,0,0,128,0,192,0,192,0,

  192,0,192,0,192,0,222,0,223,0,195,128,193,128,193,128,

  195,128,255,0,254,0,9,14,28,10,0,0,62,0,127,0,

  227,128,193,128,193,128,1,128,29,128,29,128,1,128,1,128,

  193,128,227,128,127,0,62,0,10,14,28,11,0,0,71,0,

  207,128,221,192,216,192,216,192,216,192,248,192,248,192,216,192,

  216,192,216,192,221,192,207,128,135,0,9,14,28,10,0,0,

  63,128,127,128,225,128,193,128,193,128,225,128,125,128,61,128,

  29,128,57,128,113,128,225,128,193,128,129,0,8,11,11,9,

  0,0,124,127,3,3,59,123,227,195,199,255,123,8,11,11,

  9,0,0,7,31,56,112,102,207,195,195,231,126,60,8,11,

  11,9,0,0,92,222,198,198,220,222,195,195,199,222,188,8,

  11,11,9,0,0,254,255,192,192,192,192,192,192,192,192,128,

  10,11,22,11,0,0,31,128,31,128,25,128,49,128,49,128,

  49,128,1,128,127,192,255,192,192,192,192,192,8,11,11,9,

  0,0,60,126,231,195,195,223,222,192,227,127,62,9,11,22,

  10,0,0,64,128,201,128,201,128,107,0,54,0,54,0,107,

  0,201,128,201,128,201,128,129,0,8,11,11,9,0,0,116,

  246,195,7,126,62,6,3,7,254,124,8,11,11,9,0,0,

  65,195,195,199,207,223,219,211,195,195,130,8,11,11,9,0,

  0,89,219,211,199,207,223,219,211,195,195,130,8,11,11,9,

  0,0,71,207,204,220,216,216,216,220,206,199,67,8,11,11,

  9,0,0,27,59,115,227,195,195,195,195,195,195,195,9,11,

  22,10,0,0,65,0,227,128,247,128,247,128,213,128,213,128,

  213,128,213,128,193,128,193,128,129,0,8,11,11,9,0,0,

  65,195,195,251,251,195,195,195,195,195,130,8,11,11,9,0,

  0,52,118,227,195,195,195,195,195,227,118,52,8,11,11,9,

  0,0,95,223,195,195,195,195,195,195,195,195,130,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,

  255,255,255,255,255,255,255,255,255,255,255,255,255};

  подключаю Arduino nano нажимаю загузить — стрелочку и выдет

Arduino: 1.8.1 (Windows 7), Плата:»Arduino Nano, ATmega328″

C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160_v4_hwspiDDS_sweeper1_TFT_ST7735_128x160_v4_hwspi.ino:18:20: fatal error: Ucglib.h: No such file or directory

 #include «Ucglib.h»

                    ^

compilation terminated.

exit status 1

Ошибка компиляции для платы Arduino Nano.

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesad9850adafuilt: C:Program Files (x86)Arduinolibrariesad9850adafuilt

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160: C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesLCD_ID_Reader: C:Program Files (x86)ArduinolibrariesLCD_ID_Reader

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesOLED_RUS: C:Program Files (x86)ArduinolibrariesOLED_RUS

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariessimple_dds_st7735_2: C:Program Files (x86)Arduinolibrariessimple_dds_st7735_2

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master: C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield: C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT_Ucglib: C:Program Files (x86)ArduinolibrariesTFT_Ucglib

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTSCalibration: C:Program Files (x86)ArduinolibrariesTSCalibration

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesucglib-master: C:Program Files (x86)Arduinolibrariesucglib-master

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesutf8rus3: C:Program Files (x86)Arduinolibrariesutf8rus3

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesUTFT: C:Program Files (x86)ArduinolibrariesUTFT

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesad9850adafuilt: C:Program Files (x86)Arduinolibrariesad9850adafuilt

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160: C:Program Files (x86)ArduinolibrariesDDS_sweeper1_TFT_ST7735_128x160

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesLCD_ID_Reader: C:Program Files (x86)ArduinolibrariesLCD_ID_Reader

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesOLED_RUS: C:Program Files (x86)ArduinolibrariesOLED_RUS

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariessimple_dds_st7735_2: C:Program Files (x86)Arduinolibrariessimple_dds_st7735_2

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master: C:Program Files (x86)ArduinolibrariesTFT-Shield-Example-Code-master

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield: C:Program Files (x86)ArduinolibrariesTFT_Touch_Shield

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTFT_Ucglib: C:Program Files (x86)ArduinolibrariesTFT_Ucglib

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesTSCalibration: C:Program Files (x86)ArduinolibrariesTSCalibration

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesucglib-master: C:Program Files (x86)Arduinolibrariesucglib-master

Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesutf8rus3: C:Program Files (x86)Arduinolibrariesutf8rus3

Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesUTFT: C:Program Files (x86)ArduinolibrariesUTFT

Этот отчёт будет иметь больше информации с

включенной опцией Файл -> Настройки ->

«Показать подробный вывод во время компиляции»

  • Войдите на сайт для отправки комментариев

Пнд, 29/05/2017 — 12:30

#50

T.Rook

Offline

Зарегистрирован: 05.03.2016

DAFdriver, да поправьте уже #include «Ucglib.h» на #include <Ucglib.h> !!!!! Вам же уже несколько раз советовали. Или обеспечьте наличие Ucglib.h Ucglib.cpp в папке Вашего скетча.

И наконец-то научитесь правильно вставлять код в сообщение на форуме. Прочтите «Вставка программного кода в комментарий» (одна из приклееных тем вверху)

  • Войдите на сайт для отправки комментариев
  • 1
  • 2
  • 3
  • следующая ›
  • последняя »

#include <LCD5110_Graph.h>

// Аналоговые входы (analog pins) могут быть использованы как цифровые вход/выходы (digital pins). 
// Обращение к ним идет по номерам от 14 (для аналогового входа 0) до 19 (для аналогового входа 5).
#define EXT_FILTER_PIN 12
#define EXT_AIR_PIN 1  
#define EXT_HEATER_PIN 13  
#define EXT_COOLING_PIN 10  
#define EXT_LIGHT_1_PIN 15
#define EXT_LIGHT_2_PIN 16
#define EXT_CO2_PIN 0  

#define EXT_POWER_ON_PIN 20
#define EXT_LIGHT_LED_PIN 11

#define EXT_UDO_MICRO_PIN 17
#define EXT_UDO_MACRO_PIN 18
#define EXT_UDO_Fe_PIN 19

#define Key_PIN 7

#define DispLight_min 253  //минимальная подсветка в режиме часов
#define CorrTime -3      // коррекция хода системных часов [Сек] выполняется каждый час  
//const int CorrTime = -23;      // коррекция хода системных часов [Сек]  
// It is assumed that the LCD module is connected to
// the following pins using a levelshifter to get the
// correct voltage to the module.
//      SCK  - Pin 8
//      MOSI - Pin 9
//      DC   - Pin 10
//      RST  - Pin 11
//      CS   - Pin 12
//
#include <LCD5110_Graph.h>

#define LED_LIGHT_PIN 9  
LCD5110 myGLCD(8,7,6,4,5); 
extern uint8_t SmallFont[];
extern uint8_t BigNumbers[];
//extern unsigned char TinyFont[];
byte ledContrast;
byte ledLight;

//подключаем заголовочный файл библиотеки EEPROM
#include <EEPROM.h>

#include <OneWire.h> 
OneWire  temp(14);  // on pin 10 (a 4.7K resistor is necessary) 
float cur_temp = -999;
byte temp_type_s;
byte temp_data[12];
byte temp_addr[8];
byte temp_cicle = 0;
// I assume you know how to connect the DS1307.
// DS1307:  SDA pin   -> Arduino Digital 4
//          SCL pin   -> Arduino Digital 5

#include <DS1307.h>

// Init the DS1307
DS1307 rtc(3, 2); 
// Init a Time-data structure
Time  time; 
unsigned long currentTime;
unsigned long loopTime;


byte key = 0;
byte prev_key = 0;
byte idle_key = 0;
//const int max_idle_key = 100; //цыклов не активности перед скринсейвером
#define max_idle_key  100 //цыклов не активности перед скринсейвером

int cur_menu = 0;
int cur_item = 0;
boolean cur_item_edit = false;
byte aquaT;                   // Требуемая температура воды
boolean CoolingEnabled;             // Разрешено ли охлаждение куллером
boolean light1 = false;
boolean light2 = false;
boolean air = false;
boolean CO2 = false;
byte kormMin = 0;             // Остаток времени для кормления мин

byte minCool = 0;  // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
byte maxCool = 0;  // максимальные обороты для охлаждения воды

void setup()
{
  pinMode(EXT_HEATER_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_HEATER_PIN, LOW);   // выключает
  pinMode(EXT_COOLING_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_COOLING_PIN, LOW);   // выключает
  pinMode(EXT_LIGHT_1_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_LIGHT_1_PIN, HIGH);   // выключает
  light1 = true;
  pinMode(EXT_LIGHT_2_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_LIGHT_2_PIN, LOW);   // выключает
  light2 = false;
  pinMode(EXT_FILTER_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_FILTER_PIN, HIGH);   // выключает
  pinMode(EXT_CO2_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_CO2_PIN, LOW);   // выключает
  CO2 = false;
  pinMode(EXT_AIR_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_AIR_PIN, HIGH);   // выключает
  air = true;
  CoolingEnabled = false;             // Разрешено ли охлаждение куллером


  pinMode(EXT_POWER_ON_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_POWER_ON_PIN, LOW);   // выключает
  pinMode(EXT_LIGHT_LED_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_LIGHT_LED_PIN, LOW);   // выключает
  pinMode(EXT_UDO_MICRO_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_UDO_MICRO_PIN, LOW);   // выключает
  pinMode(EXT_UDO_MACRO_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_UDO_MACRO_PIN, LOW);   // выключает
  pinMode(EXT_UDO_Fe_PIN, OUTPUT);      // устанавливает режим работы - выход
  digitalWrite(EXT_UDO_Fe_PIN, LOW);   // выключает

  //включит pullup резистор для входа:
//  pinMode(Key_PIN, INPUT);

// Init EEPROM
//  for(int e = 0; e < 2047; e++) EEPROM.write(e,0);
//  EEPROM.write(0,61);   // ledContrast  !!!!!!! Очень акуратно иначе белый либо черный экран
//  EEPROM.write(1,200);  // ledLight 
//  EEPROM.write(2,24);   // Требуемая температура воды
//  EEPROM.write(3,1);    // Разрешено ли охлаждение куллером
  
  ledContrast = EEPROM.read(0);
  // первичная установка контраста - иначе при первом запуске нихрена невидно
  if ((ledContrast==0)||(ledContrast==255)){
    ledContrast = 65;
  }

  ledLight = EEPROM.read(1);
  myGLCD.InitLCD(ledContrast);
  pinMode(LED_LIGHT_PIN, OUTPUT);      // устанавливает режим работы - выход
  analogWrite(LED_LIGHT_PIN,ledLight);
  aquaT = EEPROM.read(2);                   // Требуемая температура воды

  minCool = EEPROM.read(3);  // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
  maxCool = EEPROM.read(4);  // максимальные обороты для охлаждения воды

  // Set the clock to run-mode
  rtc.halt(false); 
//  rtc.setDOW(SUNDAY);        // Set Day-of-Week to SUNDAY
//  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
//  rtc.setDate(3, 10, 2010);   // Set the date to October 3th, 2010 
  
  myGLCD.setFont(SmallFont);
  myGLCD.clrScr();
  myGLCD.update();
/*
  myGLCD.setFont(SmallFont);
  myGLCD.clrScr();
  myGLCD.print("AQUA controll", CENTER, 3);
  myGLCD.print("ALEX", CENTER, 20);
  myGLCD.drawRect(28, 18, 56, 28);
  for (int i=0; i<6; i++)
  {
    myGLCD.drawLine(57, 18+(i*2), 83-(i*3), 18+(i*2));
    myGLCD.drawLine((i*3), 28-(i*2), 28, 28-(i*2));
  }
//  myGLCD.setFont(TinyFont);
  myGLCD.print("(C) AlexVOK", CENTER, 36);
//  myGLCD.print("[email protected]", CENTER, 42);
  myGLCD.update();
  delay(1000);
*/
//-------------------------------------------------------------------------------
  byte b = 0;
  while ( (!temp.search(temp_addr))&&(b < 10)) {
    //Serial.println("Нет больше адресов.");
    temp.reset_search();
    delay(250);
    b++;
  }
//  if (OneWire::crc8(temp_addr, 7) != temp_addr[7]) {
//      Serial.println("CRC не является действительным!");
//  }

// Первый байт ROM указывает, какой чип
  switch (temp_addr[0]) {
    case 0x10:
//      Serial.println("  Chip = DS18S20"); 
      temp_type_s = 1;
      break;
    case 0x28:
//      Serial.println("  Chip = DS18B20");
      temp_type_s = 0;
      break;
    case 0x22:
//      Serial.println("  Chip = DS1822");
      temp_type_s = 0;
      break;
//    default:
//      Serial.println("Устройство не распознано");
  }

  currentTime = millis();
  loopTime = currentTime;   
}

//-----------------------------------------------------------------------------------
float getTemp(){
//  temp.reset();
//  temp.select(temp_addr);
//  temp.write(0x44, 1);        // start conversion, with parasite power on at the end
  
//  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.
  
  temp.reset();
  temp.select(temp_addr);    
  temp.write(0xBE);         // Read Scratchpad

  for (byte i = 0; i < 9; i++) {           // we need 9 bytes
    temp_data[i] = temp.read();
  }
//  Serial.print(OneWire::crc8(data, 8), HEX);

  // Convert the data to actual temperature
  // because the result is a 16 bit signed integer, it should
  // be stored to an "int16_t" type, which is always 16 bits
  // even when compiled on a 32 bit processor.
  int16_t raw = (temp_data[1] << 8) | temp_data[0];
  
  if (temp_type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (temp_data[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - temp_data[6];
    }
  } else {
    byte cfg = (temp_data[4] & 0x60);
    // at lower res, the low bits are undefined, so let's zero them
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
    //// default is 12 bit resolution, 750 ms conversion time
  }
  return ((float)raw / 16.0);
}

//-----------------------------------------------------------------------------------
// Нажатые кнопки
//int button;
const byte BUTTON_NONE   = 0;
const byte BUTTON_UP     = 1;
const byte BUTTON_DOWN   = 2;
const byte BUTTON_OK     = 3;
const byte BUTTON_CANCEL = 4;

int getPressedButton()
{
 byte KeyNum=0;
 int KeyValue1=0;
 int KeyValue2=0;
 
//Читаем в цикле аналоговый вход, для подавления дребезга и нестабильности читаем по два раза подряд, пока значения не будут равны.
//Если значения равны 1023 – значит не была нажата ни  одна клавиша.
do {
 // считываем значения с аналогового входа(A0)  
 KeyValue1=analogRead(Key_PIN);
 delay(10);
 KeyValue2=analogRead(Key_PIN);
 delay(5);
 } while (KeyValue1!=KeyValue2);
 
//Интерпретируем полученное значение и определяем код нажатой клавиши
 if (KeyValue2 > 900) 
  {KeyNum = BUTTON_NONE;}
 else if (KeyValue2 > 450) 
       {KeyNum = BUTTON_CANCEL;}
      else if (KeyValue2 > 250) 
            {KeyNum = BUTTON_UP;}
           else if (KeyValue2 > 100) 
                 {KeyNum = BUTTON_DOWN;}
                else {KeyNum = BUTTON_OK;}
//Возвращаем код нажатой клавиши
return KeyNum;
}

//-----------------------------------------------------------------------------------
void naviKey(byte maxItems){
  if(key == BUTTON_UP){
    cur_item--;
    if(cur_item < 1)
      cur_item = maxItems;
  }
  if(key == BUTTON_DOWN){
    cur_item++;
    if(cur_item > maxItems)
      cur_item = 1;
  }
}
//-----------------------------------------------------------------------------------
void drawMenu(String mName, String item1, String item2, String item3, String item4){
  myGLCD.setFont(SmallFont);
  myGLCD.clrScr();
  
  myGLCD.print(mName,1,0);
  myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0);
  myGLCD.drawLine(0,8,83,8);
  myGLCD.drawLine(0,9,83,9);

  if(cur_item == 1){
    myGLCD.print(item1,3,12);
    myGLCD.drawRoundRect(0,11,83,20);
  }else  
    myGLCD.print(item1,0,12);
      
  if(cur_item == 2){
    myGLCD.print(item2,3,21);
    myGLCD.drawRoundRect(0,20,83,29);
  }else  
    myGLCD.print(item2,0,21);

  if(cur_item == 3){
    myGLCD.print(item3,3,30);
    myGLCD.drawRoundRect(0,29,83,38);
  }else  
    myGLCD.print(item3,0,30);

  if(cur_item == 4){
    myGLCD.print(item4,3,39);
    myGLCD.drawRoundRect(0,38,83,47);
  }else  
    myGLCD.print(item4,0,39);

  myGLCD.update();
}

byte menu_hh;
byte menu_mi;
byte menu_dd;
byte menu_mm;
int menu_yyyy;
byte menu_dow;
byte menu_off;
byte menu_item_count;
int alertAdr;
byte curLoad;

byte prMin = 0;
//-----------------------------------------------------------------------------------
void drawIntMenu(String mName, int minVal, int maxVal, int Val){
  myGLCD.setFont(SmallFont);
  myGLCD.clrScr();
  
  myGLCD.print(mName,1,0);
//  myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0);
  myGLCD.drawLine(0,8,83,8);
  myGLCD.drawLine(0,9,83,9);

  myGLCD.setFont(BigNumbers);
  myGLCD.printNumI(Val,CENTER,11);

  myGLCD.drawRoundRect(0,38,83,47);
  
  int k = 80*(Val-minVal)/(maxVal - minVal);
  for(int i = 2; i < k+2; i++)
    myGLCD.drawLine(i,40,i,46);
  myGLCD.update();
}

boolean  new_hour = true;
byte secc = 0;
byte LED_sunrise = 0;
byte LED_cur_pos = 0;
byte udo_tim = 0;
byte bt;
//*****************************************************************************************
//*****************************************************************************************
void loop() {
currentTime = millis();
key = getPressedButton();
if((currentTime >= (loopTime + 250))||(key != prev_key)){ // проверяем каждые 5мс (20 Гц)

  if((prev_key != key)&&(key != 0)){
    idle_key = 0;
  }else{ 
    idle_key++;
  }
  prev_key = key;


  if (key == 0) // Измереяем температуру только в состоянии простоя
  {
    if(temp_cicle == 0){
      temp.reset();
      temp.select(temp_addr);
      temp.write(0x44, 1);        // start conversion, with parasite power on at the end
    }
    if(temp_cicle == 4){
      cur_temp = getTemp();
      // Управление нагревом и охлаждением ----------------------------------------------
      if(cur_temp < (float)aquaT){
        digitalWrite(EXT_HEATER_PIN, HIGH);   // включает нагреватель
      }else  
        digitalWrite(EXT_HEATER_PIN, LOW);   // выключает  нагреватель
        
      if (CoolingEnabled) {
        if(cur_temp > ((float)aquaT+0.1)){               // Разрешено ли охлаждение куллером
          int coll_cur = minCool+(((float)(maxCool - minCool))/100)*(((float)(cur_temp-aquaT))/0.5)*100;
          if (coll_cur > maxCool) { coll_cur = maxCool;}
          analogWrite(EXT_COOLING_PIN, coll_cur);   // включает куллер
        }else{  
          analogWrite(EXT_COOLING_PIN, minCool);   // включаем режим проветривания
        }
      }else{
        if (air||light1){
//        if (air||light1||light2){
          analogWrite(EXT_COOLING_PIN, minCool);   // включаем режим проветривания
        }else{  
          digitalWrite(EXT_COOLING_PIN, LOW);   // выключает  куллер
        }
      } 
    }
    if(temp_cicle > 51){
      temp_cicle = 0;
    }else{
      temp_cicle++;
    }
  }

// --------------------------------------------------------------------------------


  if(secc > 4){
    secc = 0;
  }else{
    secc++;
  }

  
  // Get data from the DS1307
  time = rtc.getTime();   
  // коррекция хода системных часов [Сек]  
  if (time.min == 0){
    new_hour = true;
  }
  if ((time.min == 30)&&(new_hour)){
    int corr_sec = time.sec + CorrTime;    // коррекция хода системных часов [Сек]  
    byte corr_min = time.min;
    if (corr_sec < 0){
      corr_sec = corr_sec + 60;
      corr_min--;
    }
    if (corr_sec > 59){
      corr_sec = corr_sec - 60;
      corr_min++;
    }
    
    rtc.setTime(time.hour, corr_min, corr_sec);     // Set the time to 12:00:00 (24hr format)
    new_hour = false;
  }
  //-----
  // Новая минута ----------------------------------------------
   if(prMin != time.min){
    prMin = time.min;

  // Время для кормления мин
    if(kormMin > 0){
      digitalWrite(EXT_FILTER_PIN, LOW);   // выключает Фильтр
      kormMin--;
    }else{
      digitalWrite(EXT_FILTER_PIN, HIGH);   // включает Фильтр
    }  
    // Восход / Закат
    if (LED_sunrise > 0){
      byte led_val = (LED_sunrise&B01111111);
      byte led_tmp = 0;
      if (LED_cur_pos > led_val){
        led_tmp = 255;
        LED_sunrise = 0;
      }else{  
        led_tmp = LED_cur_pos*255/led_val;
      } 
      if(LED_sunrise&B10000000){  // Восход
      }else{  // Закат
        led_tmp = 255 - led_tmp;
      }
      // Управляем блоком питания
      if (led_tmp == 0){
        digitalWrite(EXT_POWER_ON_PIN, LOW);
      }else{         
        digitalWrite(EXT_POWER_ON_PIN, HIGH);
      }  

      analogWrite(EXT_LIGHT_LED_PIN, led_tmp);   // LED
      LED_cur_pos++;
    } 
    
//-------ALARM------------------------------------------------------------------------- 
   for(int a = 100; a < 1001; a = a + 4){
     byte b1 = EEPROM.read(a);
//     if(((boolean)(b1&B10000000))&((boolean)(_BV(time.dow-1)&b1))){  // активная запись и день недели
     if(b1&B10000000){
      if((1<<(time.dow-1))&b1){  // активная запись и день недели
       byte b2 = EEPROM.read(a+1);
       if(time.hour == (byte)(b2&B00011111)){        // сравниваем часы
         byte b3 = EEPROM.read(a+2);
         if(time.min == (byte)(b3&B00111111)){        // сравниваем минути
           byte b4 = EEPROM.read(a+3);
           switch((byte)((b2>>5)&B00000111)){         // определяем нагрузку
             case 0:
               // Разрешено ли охлаждение куллером
               if (b4&B00000001){
                 CoolingEnabled = true;
                 analogWrite(EXT_COOLING_PIN, minCool);   // включаем режим проветривания
               }else{
                 CoolingEnabled = false;
                 digitalWrite(EXT_COOLING_PIN, LOW);
               }  
             break;
             case 1:  // Light1
               if (b4&B00000001){
                 digitalWrite(EXT_LIGHT_1_PIN, HIGH);
                 light1 = true;
               }else{
                 digitalWrite(EXT_LIGHT_1_PIN, LOW);
                 light1 = false;
               }  
             break;   
             case 2:  // Light2
               if (b4&B00000001){
                 digitalWrite(EXT_LIGHT_2_PIN, HIGH);
                 light2 = true;
               }else{
                 digitalWrite(EXT_LIGHT_2_PIN, LOW);
                 light2 = false;
               }  
             break;
             case 3:  // Air
               if (b4&B00000001){
                 digitalWrite(EXT_AIR_PIN, HIGH);
                 air = true;
               }else{
                 digitalWrite(EXT_AIR_PIN, LOW);
                 air = false;
               }  
             break;
             case 4:  // CO2
               if (b4&B00000001){
                 digitalWrite(EXT_CO2_PIN, HIGH);
                 CO2 = true;
               }else{
                 digitalWrite(EXT_CO2_PIN, LOW);
                 CO2 = false;
               }  
             break;
             case 5:  //LED
               // 8 бит 1 восход 0 закат остальные кол мин
               LED_sunrise = b4;
               LED_cur_pos = 0;
             break;
//             case 6:  // UDO
//               udo_tim = (byte)(b4&B00111111);
//               digitalWrite(EXT_POWER_ON_PIN, HIGH);
//               delay(100);  //Время на выход в режим БП
//               switch((byte)((b4>>6)&B00000011)){
//                 case 0:
//                   digitalWrite(EXT_UDO_MICRO_PIN, HIGH);
//                   delay(udo_tim*4.2);
//                   digitalWrite(EXT_UDO_MICRO_PIN, LOW);
//                 break;
//                 case 1:
//                   digitalWrite(EXT_UDO_MACRO_PIN, HIGH);
//                   delay(udo_tim*4.2);
//                   digitalWrite(EXT_UDO_MACRO_PIN, LOW);
//                 break;
//                 case 2:
//                   digitalWrite(EXT_UDO_Fe_PIN, HIGH);
//                   delay(udo_tim*4.2);
//                   digitalWrite(EXT_UDO_Fe_PIN, LOW);
//                 break;
//                 case 3:
//
//                 break;
//               }
//               digitalWrite(EXT_POWER_ON_PIN, LOW);
//             break;
             case 7:
           
             break;
           } 
         }
       }
     }
    } 
   }
  }  
//------------------------------------------------------------------------------------ 
  if((idle_key > max_idle_key)&&(cur_menu != 0)){
    cur_menu = 0;
    cur_item = 0;
    cur_item_edit = false;
  }  
    
  switch(cur_menu){
    case 0: // Time
    {
      analogWrite(LED_LIGHT_PIN,DispLight_min);
      myGLCD.setFont(BigNumbers);
      myGLCD.clrScr();
      myGLCD.printNumI(time.hour,7,2,2,'0');
      myGLCD.drawCircle(42,9,3);
      myGLCD.drawCircle(42,19,3);
      if(secc < 2){
        myGLCD.drawCircle(42,9,2);
        myGLCD.drawCircle(42,19,2);
        myGLCD.drawRect(41,8,43,10);
        myGLCD.drawRect(41,18,43,20);
        myGLCD.setPixel(42,9);
        myGLCD.setPixel(42,19);
      }
      myGLCD.printNumI(time.min,49,2,2,'0');
      
      myGLCD.setFont(SmallFont);
      if(cur_temp < 1){
        myGLCD.print("T: Error",3,38);
      }else{
        myGLCD.print("T:",3,38);
        myGLCD.printNumF(cur_temp,2,15,38);
      }
      myGLCD.update();
      if(key > 0)
        cur_menu = 1;      
        cur_item = 0;
        cur_item_edit = false;
        // Включаем подсветку LED
//        analogWrite(LED_LIGHT_PIN,ledLight);
      break;
    }
    case 1: // Main -----------------------------------------------------------------
    {
    analogWrite(LED_LIGHT_PIN,ledLight);
    String ll;
      if(light1||light2){
        ll = "On";
      }else
        ll ="Off";

      String aa;
      if(air){
        aa = "On";
      }else
        aa ="Off";

      if(cur_item_edit&&(cur_item == 1))
        ll = "["+ll+"]";

      if(cur_item_edit&&(cur_item == 2))
        aa = "["+aa+"]";
        
      String lk = "";
      if(kormMin > 0){
        lk = " ("+(String)kormMin+")";
      }  
      drawMenu("Main","Light "+ll,"Air "+aa,"Kormlenie"+lk,"Settings");
      naviKey(4);
      switch(key){
        case BUTTON_OK:
          switch(cur_item){
            case 1:
              light1 = !light1;
              light2 = light1;
              if(light1){
                digitalWrite(EXT_LIGHT_1_PIN, HIGH);  // включает LED
              }else
                digitalWrite(EXT_LIGHT_1_PIN, LOW);   // выключает LED
              if(light2){
                digitalWrite(EXT_LIGHT_2_PIN, HIGH); // включает lightTUBE
              }else
                digitalWrite(EXT_LIGHT_2_PIN, LOW);  // выключает lightTUBE
            break;
            case 2:
              air = !air;
              if(air){
                digitalWrite(EXT_AIR_PIN, HIGH);  // включает
              }else
                digitalWrite(EXT_AIR_PIN, LOW);   // выключает
            break;
            case 3:
              kormMin = 20;
              digitalWrite(EXT_FILTER_PIN, LOW);   // выключает Фильтр
            break;
            case 4:
              cur_menu = 13;      
              cur_item = 0;
            break;
          }
        break;
        case BUTTON_CANCEL:
          cur_item_edit = false;
          cur_menu = 0;
          cur_item = 0;
        break;
      }
      break;
    }
    case 13: // Settings -----------------------------------------------------------------
    {
      drawMenu("Settings", "System","Termostat","Tasker","Tasker");
      naviKey(4);
      switch(key){
        case BUTTON_OK:
          switch(cur_item){
            case 1:
              cur_menu = 131;      
              cur_item = 0;
            break;
            case 2:
              cur_menu = 132;      
              cur_item = 0;
            break;
            case 3:
              cur_menu = 130;      
              cur_item = 1;
            break;
            case 4:
              cur_menu = 130;      // 134 UDO
              cur_item = 0;
            break;
          }
        break;
        case BUTTON_CANCEL:
          cur_menu = 1;
          cur_item = 3;
        break;
      }
      break;
    }
//    case 134: // UDO -----------------------------------------------------------------
//    { String uu; 
//      if (CO2){
//        uu = "On";
//      }else{
//        uu = "Off";
//      }  
//      drawMenu("UDO", "CO2", "UDO","CO2 "+uu,"");
//      naviKey(3);
//      switch(key){
//        case BUTTON_OK:
//          switch(cur_item){
//            case 1:
//              cur_menu = 133;      
//              cur_item = 1;
//              menu_off = 1;
//              menu_item_count = 25;
//              curLoad = 4;
//            break;
//            case 2:
//              cur_menu = 133;      
//              cur_item = 1;
//              menu_off = 1;
//              menu_item_count = 25;
//              curLoad = 6;
//            break;
//            case 3:
//              CO2 = !CO2;
//              if (CO2){
//                digitalWrite(EXT_CO2_PIN, HIGH);
//              }else{
//                digitalWrite(EXT_CO2_PIN, LOW);
//              }  
//            break;
//            case 4:
////              cur_menu = 130;      
////              cur_item = 1;
//            break;
//          }
//        break;
//        case BUTTON_CANCEL:
//          cur_menu = 13;
//          cur_item = 4;
//        break;
//      }
//      break;
//    }
    case 130: // Tasker -----------------------------------------------------------------
    {
      drawMenu("Tasker","Light 1","Light 2","LED","Air");
      naviKey(4);
      switch(key){
        case BUTTON_OK:
          switch(cur_item){
            case 1:
              cur_menu = 133;      
              cur_item = 1;
              menu_off = 1;
              menu_item_count = 25;
              curLoad = 1;
            break;
            case 2:
              cur_menu = 133;      
              cur_item = 1;
              menu_off = 1;
              menu_item_count = 25;
              curLoad = 2;
            break;
            case 3:
              cur_menu = 133;      
              cur_item = 1;
              menu_off = 1;
              menu_item_count = 25;
              curLoad = 5;
            break;
            case 4:
              cur_menu = 133;      
              cur_item = 1;
              menu_off = 1;
              menu_item_count = 25;
              curLoad = 3;
            break;
        }
        break;
        case BUTTON_CANCEL:
          cur_menu = 13;
          cur_item = 3;
        break;
      }
      break;
    }
    case 133: // Tasker Menu List -----------------------------------------------------------------
    {
      myGLCD.setFont(SmallFont);
      myGLCD.clrScr();
      int offf;
      switch(curLoad){
        case 0:
          myGLCD.print("CoolTime",1,0);
          offf = 400;
        break;
        case 1:
          myGLCD.print("Light 1",1,0);
          offf = 100;
        break;
        case 2:
          myGLCD.print("Light 2",1,0);
          offf = 200;
        break;
        case 3:
          myGLCD.print("Air",1,0);
          offf = 300;
        break;
        case 4:
          myGLCD.print("CO2",1,0);
          offf = 500;
        break;
        case 5:
          myGLCD.print("LED",1,0);
          offf = 600;
        break;
        case 6:
          myGLCD.print("UDO",1,0);
          offf = 700;
        break;
      }

      myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0);
      myGLCD.drawLine(0,8,83,8);
      myGLCD.drawLine(0,9,83,9);
      
      String tt;
      byte vy;
      for(byte j = menu_off; j <= min(menu_off+3,menu_item_count); j++){
        vy = 3+9*(j-menu_off+1);
        
        alertAdr = offf+(j-1)*4;
        bt = EEPROM.read(alertAdr+1)&B00011111;
        tt = (String)(j) + " ";
        if(bt < 10){
          tt = tt + "0";
        }
        tt = tt + (String)bt + ":";
        
        bt = EEPROM.read(alertAdr+2)&B00111111;
        if(bt < 10){
          tt = tt + "0";
        }
        tt = tt + (String)bt + " ";

      byte bt = EEPROM.read(alertAdr+3);
      switch(curLoad){
        case 5: // "TimerLED"
          if (bt&B10000000){
            tt = tt + "On";
          }else{
            tt = tt + "Off";
          }  
        break;
        case 6:  //  "TimerUDO"
          switch((byte)((bt>>6)&B00000011)){
            case 0: // Micro
              tt = tt + "Micro";
            break;
            case 1: // Macro
              tt = tt + "Macro";
            break;
            case 2: // Fe+
              tt = tt + "Fe+";
            break;
            case 3: // Ka
              tt = tt + "Ka";
            break;
          }
        break;
        default:  
          if(bt > 0){
            tt = tt + "On";
          }else{
            tt = tt + "Off";
          }  
        break;
      }

//        tt = "Time "+(String)(j);
//        if(EEPROM.read(offf+(j-1)*4)&B10000000){
//          tt = tt+" Active";
//        }        
        if(cur_item == j){
          myGLCD.print(tt,3,vy);
          myGLCD.drawRoundRect(0,vy-1,83,vy+8);
        }else  
          myGLCD.print(tt,0,vy);

        // перечеркиваем не активные таймера
        if(!(EEPROM.read(offf+(j-1)*4)&B10000000)){
          myGLCD.drawLine(0,vy+5,83,vy+5);
        }        
          
      }

      switch(key){
        case BUTTON_UP:
          if(cur_item == 1){ 
            cur_item = menu_item_count;
            menu_off = menu_item_count - 3;
          }else{  
            cur_item--;
            if(cur_item < menu_off){
             menu_off = cur_item;
            }
          }  
        break;
        case BUTTON_DOWN:
          if(cur_item == menu_item_count){ 
            cur_item = 1;
            menu_off = 1;
          }else{  
            cur_item++;
            if(cur_item > menu_off+3){
             menu_off = cur_item-3;
            }
          }  
        break;
        case BUTTON_OK:
          alertAdr = offf+(cur_item-1)*4;
          cur_menu = 1330;
          cur_item = 1;
          cur_item_edit = false;
        break;
        case BUTTON_CANCEL:
          switch(curLoad){
           case 0:
             //"CoolTime"
             cur_menu = 132;
             cur_item = 2;
           break;
           case 1:
             //"Light1",
             cur_menu = 130;
             cur_item = 1;
           break;
           case 2:
             //"Light2"
             cur_menu = 130;
             cur_item = 2;
           break;
           case 3:
             //"Air"
             cur_menu = 130;
             cur_item = 4;
           break;
           case 4:
             //"CO2"
             cur_menu = 134;
             cur_item = 1;
           break;
           case 5:
             //"LED"
             cur_menu = 130;
             cur_item = 3;
           break;
           case 6:
             //"UDO"
             cur_menu = 134;
             cur_item = 2;
           break;
        }

          cur_item_edit = false;
        break;
      }
      myGLCD.update();
      break;
    }
    case 1330: // Tasker Menu -----------------------------------------------------------------
    {
      myGLCD.setFont(SmallFont);
      myGLCD.clrScr();
      
      switch(curLoad){
        case 0:
          myGLCD.print("CoolTime",1,0);
        break;
        case 1:
          myGLCD.print("Light1",1,0);
        break;
        case 2:
          myGLCD.print("Light2",1,0);
        break;
        case 3:
          myGLCD.print("Air",1,0);
        break;
        case 4:
          myGLCD.print("CO2",1,0);
        break;
        case 5:
          myGLCD.print("LED",1,0);
        break;
        case 6:
          myGLCD.print("UDO",1,0);
        break;
      }

      myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0);
      myGLCD.drawLine(0,8,83,8);
      myGLCD.drawLine(0,9,83,9);
      byte b1 = EEPROM.read(alertAdr);
      bt = b1;
      myGLCD.print("MoTuWeThFrSaSu",0,11);
      for(int j = 1; j < 8; j++){
//        if((cur_item == j)&cur_item_edit){
        if(cur_item == j){
          myGLCD.drawRect(j*12-10,20,j*12-2,28);
        }  
        myGLCD.drawCircle(j*12-6,24,3);
        if(bt&B00000001){
          myGLCD.drawCircle(j*12-6,24,2);
          myGLCD.drawCircle(j*12-6,24,1);
        }
        bt = bt >> 1;
      }
      String stat = "";
      if(cur_item == 8){
        stat = stat + "[";
      }
      if(EEPROM.read(alertAdr)&B10000000){
        stat = stat + "Act";
      }else
        stat = stat + "Pas";
      if(cur_item == 8){
        stat = stat + "]";
      }

      stat = stat + ".";
      if(cur_item == 9){
        stat = stat + "[";
      }
      byte tmpb = EEPROM.read(alertAdr+3);
      switch(curLoad){
        case 5: // "TimerLED"
          if (tmpb&B10000000){
            stat = stat + "On";
          }else{
            stat = stat + "Off";
          }  
          stat = stat + " " + (tmpb&B01111111)+"min";
        break;
        case 6:  //  "TimerUDO"
          switch((byte)((tmpb>>6)&B00000011)){
            case 0: // Micro
              stat = stat + "Micro";
            break;
            case 1: // Macro
              stat = stat + "Macro";
            break;
            case 2: // Fe+
              stat = stat + "Fe+";
            break;
            case 3: // Ka
              stat = stat + "Ka";
            break;
          }
          stat = stat + (tmpb&B00111111)+"mil";
        break;
        default:  
          if(tmpb > 0){
            stat = stat + "On";
          }else{
            stat = stat + "Off";
          }  
        break;
      }

      if(cur_item == 9){
        stat = stat + "]";
      }
      myGLCD.print(stat,0,29);
      
      stat = "Time: ";
      if(cur_item == 10){
        stat = stat + "[";
      }
      bt = EEPROM.read(alertAdr+1)&B00011111;
      if(bt < 10){
        stat = stat + "0";
      }
      stat = stat + (String)bt;
      if(cur_item == 10){
        stat = stat + "]";
      }

      stat = stat + ":";

      if(cur_item == 11){
        stat = stat + "[";
      }
      bt = EEPROM.read(alertAdr+2)&B00111111;
      if(bt < 10){
        stat = stat + "0";
      }
      stat = stat + (String)bt;
      if(cur_item == 11){
        stat = stat + "]";
      }
      myGLCD.print(stat,0,39);

      switch(key){
        case BUTTON_UP:
          if(cur_item_edit){
            if((cur_item == 9)&&(curLoad > 4)){
              bt = EEPROM.read(alertAdr+3);
              //if(bt == 255){
              //  bt = 0;
              //}else
                bt++;
              EEPROM.write(alertAdr+3,bt);
            }
            if(cur_item == 10){
              bt = (EEPROM.read(alertAdr+1)&B00011111);
              if(bt == 23){
                bt = 0;
              }else
                bt++;
              EEPROM.write(alertAdr+1,bt^(curLoad<<5));
            }
            if(cur_item == 11){
              bt = EEPROM.read(alertAdr+2)&B00111111;
              if(bt == 59){
                bt = 0;
              }else
                bt++;
              EEPROM.write(alertAdr+2,bt);
            }
          }else
            if(cur_item == 1){ 
              cur_item = 11;
            }else  
              cur_item--;
        break;
        case BUTTON_DOWN:
          if(cur_item_edit){
            if((cur_item == 9)&&(curLoad > 4)){
              bt = EEPROM.read(alertAdr+3);
              //if(bt == 0){
              //  bt = 255;
              //}else
                bt--;
              EEPROM.write(alertAdr+3,bt);
            }
            if(cur_item == 10){
              bt = EEPROM.read(alertAdr+1)&B00011111;
              if(bt == 0){
                bt = 23;
              }else
                bt--;
              EEPROM.write(alertAdr+1,bt^(curLoad<<5));
            }
            if(cur_item == 11){
              bt = EEPROM.read(alertAdr+2)&B00111111;
              if(bt == 0){
                bt = 59;
              }else
                bt--;
              EEPROM.write(alertAdr+2,bt);
            }
          }else
            if(cur_item == 11){ 
              cur_item = 1;
            }else  
              cur_item++;
        break;
        case BUTTON_OK:
          EEPROM.write(alertAdr+1,((EEPROM.read(alertAdr+1)&B00011111)^(curLoad<<5))); // сохраняем номер нагрузки 
          switch(cur_item){
            case 8:
              EEPROM.write(alertAdr,(EEPROM.read(alertAdr)^B10000000));
            break;
            case 9:
              if(curLoad < 5){
                //EEPROM.write(alertAdr+3,(EEPROM.read(alertAdr+3)^B00000001));
                EEPROM.write(alertAdr+3,((EEPROM.read(alertAdr+3)&B00000001)^B00000001));
              }else{
                cur_item_edit = !cur_item_edit;
              }  
            break;
            case 10:
              cur_item_edit = !cur_item_edit;
            break;
            case 11:
              cur_item_edit = !cur_item_edit;
            break;
            default:
              EEPROM.write(alertAdr,(EEPROM.read(alertAdr)^(1<<(cur_item-1))));
            break;
          }
        break;
         case BUTTON_CANCEL:
          switch(curLoad){
           case 0:
             //CoolTime
             cur_menu = 132;
             cur_item = 2;
           break;
           case 1:
             //"Light1",
             cur_menu = 130;
             cur_item = 1;
           break;
           case 2:
             //"Light2"
             cur_menu = 130;
             cur_item = 2;
           break;
           case 3:
             //"Air"
             cur_menu = 130;
             cur_item = 4;
           break;
           case 4:
             //"CO2"
             cur_menu = 134;
             cur_item = 1;
           break;
           case 5:
             //"LED"
             cur_menu = 130;
             cur_item = 3;
           break;
           case 6:
             //"UDO"
             cur_menu = 134;
             cur_item = 2;
           break;
         }
          cur_item_edit = false;
        break;
      }
      myGLCD.update();
      break;
    }
    case 132: // Termostat -----------------------------------------------------------------
    {
      drawMenu("Termostat", "Aqua T ["+(String)aquaT+"]","CoolTime","minCool","maxCool");
      naviKey(4);
      switch(key){
        case BUTTON_OK:
          switch(cur_item){
            case 1:
              cur_menu = 1321;      
              cur_item = 0;
            break;
            case 2:  //CoolTime
              cur_menu = 133;      
              cur_item = 1;
              menu_off = 1;
              menu_item_count = 8;
              curLoad = 0;
            break;
            case 3:  //minCool // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
              cur_menu = 1323;      
            break;
            case 4:  //maxCool // максимальные обороты для охлаждения воды
              cur_menu = 1324;      
            break;
          }
        break;
        case BUTTON_CANCEL:
          cur_menu = 13;
          cur_item = 2;
          cur_item_edit = false;
        break;
      }
      break;
    }
    case 1321: // Aqua Temperature -----------------------------------------------------------------
    {
      drawIntMenu("Aqua Temperat",18,35,aquaT);
      switch(key){
        case BUTTON_UP:
          aquaT++;
          aquaT = min(aquaT, 35);
        break;
        case BUTTON_DOWN:
          aquaT--;
          aquaT = max(aquaT, 18);
        break;
        case BUTTON_OK:
          EEPROM.write(2,aquaT);                   // Требуемая температура воды
          cur_menu = 132;
          cur_item = 1;
        break;
        case BUTTON_CANCEL:
          aquaT = EEPROM.read(2);                   // Требуемая температура воды
          cur_menu = 132;
          cur_item = 1;
        break;
      }
      break;
    }
    case 1323: // minCool // минимальные обороты кулера для вентиляции крышки и охлаждения ламп ------------------------------------------
    {
      drawIntMenu("minCool",0,maxCool,minCool);
      switch(key){
        case BUTTON_UP:
          minCool++;
          minCool = min(minCool, maxCool);
          analogWrite(EXT_COOLING_PIN, minCool);
        break;
        case BUTTON_DOWN:
          minCool--;
          minCool = max(minCool, 0);
          analogWrite(EXT_COOLING_PIN, minCool);
        break;
        case BUTTON_OK:
          EEPROM.write(3,minCool);                   // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
          cur_menu = 132;
          cur_item = 3;
        break;
        case BUTTON_CANCEL:
          minCool = EEPROM.read(3);                   // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
          cur_menu = 132;
          cur_item = 3;
        break;
      }
      break;
    }
    case 1324: // maxCool // максимальные обороты для охлаждения воды ------------------------------------------
    {
      drawIntMenu("maxCool",0,255,maxCool);
      switch(key){
        case BUTTON_UP:
          maxCool++;
          maxCool = min(maxCool, 255);
          analogWrite(EXT_COOLING_PIN, maxCool);
        break;
        case BUTTON_DOWN:
          maxCool--;
          maxCool = max(maxCool, minCool);
          analogWrite(EXT_COOLING_PIN, maxCool);
        break;
        case BUTTON_OK:
          EEPROM.write(4,maxCool);                   // максимальные обороты для охлаждения воды
          cur_menu = 132;
          cur_item = 4;
        break;
        case BUTTON_CANCEL:
          maxCool = EEPROM.read(4);                   // максимальные обороты для охлаждения воды
          cur_menu = 132;
          cur_item = 4;
        break;
      }
      break;
    }
    case 131: // System -----------------------------------------------------------------
    {
      drawMenu("System", "Time","Date","LED Contrast","LED Light");
      naviKey(4);
      switch(key){
        case BUTTON_OK:
          switch(cur_item){
            case 1:
              cur_menu = 1311;      
              cur_item = 0;
              menu_hh = time.hour;
              menu_mi = time.min;
            break;
            case 2:
              cur_menu = 1312;      
              cur_item = 0;
              menu_dd = time.date;
              menu_mm = time.mon;
              menu_yyyy = time.year;
              menu_dow = time.dow;
            break;
            case 3:
              cur_menu = 1313;      
              cur_item = 0;
            break;
            case 4:
              cur_menu = 1314;      
              cur_item = 0;
            break;
          }
        break;
        case BUTTON_CANCEL:
          cur_menu = 0;
          cur_item = 0;
        break;
      }
      break;
    }
    case 1311: // Time -----------------------------------------------------------------
    {
      myGLCD.setFont(SmallFont);
      myGLCD.clrScr();
  
      myGLCD.print("Time",1,0);
      myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0);
      myGLCD.drawLine(0,8,83,8);
      myGLCD.drawLine(0,9,83,9);
      if((cur_item == 1)&&cur_item_edit) 
        myGLCD.invertText(true);
      myGLCD.printNumI(menu_hh,26,20,2,'0');
      myGLCD.invertText(false);
      myGLCD.print(":",39,20);
      if((cur_item == 2)&&cur_item_edit) 
        myGLCD.invertText(true);
      myGLCD.printNumI(menu_mi,46,20,2,'0');
      myGLCD.invertText(false);

      if(cur_item == 1)
        myGLCD.drawRoundRect(25,18,39,28);
      if(cur_item == 2)
        myGLCD.drawRoundRect(45,18,59,28);

      switch(key){
        case BUTTON_UP:
          if(!cur_item_edit){ 
            cur_item--;
            if(cur_item < 1)
              cur_item = 2;
          }else{
            if(cur_item == 1){
              menu_hh++;
              if(menu_hh == 24)
                menu_hh = 0;
            }
            if(cur_item == 2){
              menu_mi++;
              if(menu_mi == 60)
                menu_mi = 0;
            }
          }
        break;
        case BUTTON_DOWN:
          if(!cur_item_edit){ 
            cur_item++;
            if(cur_item > 2)
              cur_item = 1;
          }else{
            if(cur_item == 1){
              if(menu_hh == 0)
                menu_hh = 23;
              else  
                menu_hh--;
            }
            if(cur_item == 2){
              if(menu_mi == 0)
                menu_mi = 59;
              else
                menu_mi--;
            }
          }
        break;
        case BUTTON_OK:
          if(cur_item_edit){ 
            switch(cur_item){
              case 1:
                rtc.setTime(menu_hh, time.min, 0);     // Set the time to 12:00:00 (24hr format)
              break;
              case 2:
                rtc.setTime(time.hour, menu_mi, 0);     // Set the time to 12:00:00 (24hr format)
              break;
            }
            cur_item_edit = false;
          }else 
            cur_item_edit = true;
        break;
        case BUTTON_CANCEL:
          cur_item_edit = false;
          cur_menu = 131;      
          cur_item = 1;
        break;
      }
      myGLCD.update();
      break;
    }
    case 1312: // Date -----------------------------------------------------------------
    {
      myGLCD.setFont(SmallFont);
      myGLCD.clrScr();
  
      myGLCD.print("Date",1,0);
      myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0);
      myGLCD.drawLine(0,8,83,8);
      myGLCD.drawLine(0,9,83,9);

      if((cur_item == 1)&&cur_item_edit) 
        myGLCD.invertText(true);
      myGLCD.printNumI(menu_dd,12,20,2,'0');
      myGLCD.invertText(false);

      myGLCD.print(".",24,20);

      if((cur_item == 2)&&cur_item_edit) 
        myGLCD.invertText(true);
      myGLCD.printNumI(menu_mm,30,20,2,'0');
      myGLCD.invertText(false);

      myGLCD.print(".",42,20);

      if((cur_item == 3)&&cur_item_edit) 
        myGLCD.invertText(true);
      myGLCD.printNumI(menu_yyyy,48,20,4,'0');
      myGLCD.invertText(false);

      myGLCD.print("Day of week",0,32);
      if((cur_item == 4)&&cur_item_edit) 
        myGLCD.invertText(true);
      myGLCD.printNumI(menu_dow,68,32);
      myGLCD.invertText(false);

      switch(cur_item){
        case 1:
          myGLCD.drawRoundRect(11,18,25,28);
        break;  
        case 2:
          myGLCD.drawRoundRect(29,18,44,28);
        break;  
        case 3:
          myGLCD.drawRoundRect(47,18,73,28);
        break;  
        case 4:
          myGLCD.drawRoundRect(67,30,75,40);
        break;  
      }  

      switch(key){
        case BUTTON_UP:
          if(!cur_item_edit){ 
            cur_item--;
            if(cur_item < 1)
              cur_item = 4;
          }else{
            if(cur_item == 1){
              menu_dd++;
              if(menu_dd > 31)
                menu_dd = 1;
            }
            if(cur_item == 2){
              menu_mm++;
              if(menu_mm > 12)
                menu_mm = 1;
            }
            if(cur_item == 3){
              menu_yyyy++;
            }
            if(cur_item == 4){
              menu_dow++;
              if(menu_dow > 7)
                menu_dow = 1;
            }
          }
        break;
        case BUTTON_DOWN:
          if(!cur_item_edit){ 
            cur_item++;
            if(cur_item > 4)
              cur_item = 1;
          }else{
            if(cur_item == 1){
                menu_dd--;
              if(menu_dd < 1)
                menu_dd = 31;
            }
            if(cur_item == 2){
                menu_mm--;
              if(menu_mm < 1)
                menu_mm = 12;
            }
            if(cur_item == 3){
                menu_yyyy--;
                menu_yyyy = max(menu_yyyy,2013);
            }
            if(cur_item == 4){
                menu_dow--;
              if(menu_dow < 1)
                menu_dow = 7;
            }
          }
        break;
        case BUTTON_OK:
          if(cur_item_edit){ 
            switch(cur_item){
              case 1:
                rtc.setDate(menu_dd, time.mon, time.year);   // Set the date
              break;
              case 2:
                rtc.setDate(time.date, menu_mm, time.year);   // Set the date
              break;
              case 3:
                rtc.setDate(time.date, time.mon, menu_yyyy);   // Set the date
              break;
              case 4:
                 rtc.setDOW(menu_dow);     // Set Day-of-Week 
              break;
            }
            cur_item_edit = false;
          }else 
            cur_item_edit = true;
        break;
        case BUTTON_CANCEL:
          cur_item_edit = false;
          cur_menu = 131;      
          cur_item = 2;
        break;
      }
      myGLCD.update();
      break;
    }
    case 1313: // LED Contrast -----------------------------------------------------------------
    {
      drawIntMenu("LED Contrast",45,80,ledContrast);
      switch(key){
        case BUTTON_UP:
          ledContrast++;
          ledContrast = min(ledContrast, 80);
        break;
        case BUTTON_DOWN:
          ledContrast--;
          ledContrast = max(ledContrast, 45);
        break;
        case BUTTON_OK:
          EEPROM.write(0,ledContrast);
          cur_menu = 131;
          cur_item = 3;
        break;
        case BUTTON_CANCEL:
          ledContrast = EEPROM.read(0);
          cur_menu = 131;
          cur_item = 3;
        break;
      }
      myGLCD.setContrast(ledContrast);  
      break;
    }
    case 1314: // LED Light -----------------------------------------------------------------
    {
      drawIntMenu("LED Light",0,255,ledLight);
      switch(key){
        case BUTTON_UP:
          ledLight++;
          ledLight = min(ledLight, 255);
        break;
        case BUTTON_DOWN:
          ledLight--;
          ledLight = max(ledLight, 0);
        break;
        case BUTTON_OK:
          EEPROM.write(1,ledLight);
          cur_menu = 131;
          cur_item = 4;
        break;
        case BUTTON_CANCEL:
          ledLight = EEPROM.read(1);
          cur_menu = 131;
          cur_item = 4;
        break;
      }
      analogWrite(LED_LIGHT_PIN,ledLight);
      break;
    }

    default:
      cur_menu = 0;
      cur_item = 0;
  }
 
loopTime = currentTime;   
}  
}

СОДЕРЖАНИЕ ►

  • Произошла ошибка при загрузке скетча в Ардуино
    • programmer is not responding
    • a function-definition is not allowed arduino ошибка
    • expected initializer before ‘}’ token arduino ошибка
    • ‘что-то’ was not declared in this scope arduino ошибка
    • No such file or directory arduino ошибка
  • Compilation error: Missing FQBN (Fully Qualified Board Name)

Ошибки компиляции Arduino IDE возникают при проверке или загрузке скетча в плату, если код программы содержит ошибки, компилятор не может найти библиотеки или переменные. На самом деле, сообщение об ошибке при загрузке скетча связано с невнимательностью самого программиста. Рассмотрим в этой статье все возможные ошибки компиляции для платы Ардуино UNO R3, NANO, MEGA и пути их решения.

Произошла ошибка при загрузке скетча Ардуино

Самые простые ошибки возникают у новичков, кто только начинает разбираться с языком программирования Ардуино и делает первые попытки загрузить скетч. Если вы не нашли решение своей проблемы в статье, то напишите свой вопрос в комментариях к этой записи и мы поможем решить вашу проблему с загрузкой (бесплатно!).

avrdude: stk500_recv(): programmer is not responding

Что делать в этом случае? Первым делом обратите внимание какую плату вы используете и к какому порту она подключена (смотри на скриншоте в правом нижнем углу). Необходимо сообщить Arduino IDE, какая плата используется и к какому порту она подключена. Если вы загружаете скетч в Ардуино Nano V3, но при этом в настройках указана плата Uno или Mega 2560, то вы увидите ошибку, как на скриншоте ниже.

Ошибка: programmer is not responding

Ошибка Ардуино: programmer is not responding

Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает (programmer is not responding). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».

a function-definition is not allowed here before ‘{‘ token

Это значит, что в скетче вы забыли где-то закрыть фигурную скобку. Синтаксические ошибки IDE тоже распространены и связаны они просто с невнимательностью. Такие проблемы легко решаются, так как Arduino IDE даст вам подсказку, стараясь отметить номер строки, где обнаружена ошибка. На скриншоте видно, что строка с ошибкой подсвечена, а в нижнем левом углу приложения указан номер строки.

Ошибка: a function-definition is not allowed

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

expected initializer before ‘}’ token   expected ‘;’ before ‘}’ token

Сообщение expected initializer before ‘}’ token говорит о том, что вы, наоборот где-то забыли открыть фигурную скобку. Arduino IDE даст вам подсказку, но если скетч довольно большой, то вам придется набраться терпения, чтобы найти неточность в коде. Ошибка при компиляции программы: expected ‘;’ before ‘}’ token говорит о том, что вы забыли поставить точку с запятой в конце командной строки.

‘что-то’ was not declared in this scope

Что за ошибка? Arduino IDE обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Например, вы забыли продекларировать переменную или задали переменную ‘DATA’, а затем по невнимательности используете ‘DAT’, которая не была продекларирована. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Ошибка Ардуино: was not declared in this scope

Ошибка Ардуино: was not declared in this scope

Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.

exit status 1 ошибка компиляции для платы Arduino

Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.

exit status 1 Ошибка компиляции для Arduino Nano

exit status 1 Ошибка компиляции для платы Arduino Nano

Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino uno /genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.

missing fqbn (fully qualified board name)

Ошибка возникает, если не была выбрана плата. Обратите внимание, что тип платы необходимо выбрать, даже если вы не загружаете, а, например, делаете компиляцию скетча. В Arduino IDE 2 вы можете использовать меню выбора:
— список плат, которые подключены и были идентифицированы Arduino IDE.
— или выбрать плату и порт вручную, без подключения микроконтроллера.


27.03.2023


0 комментариев

Недавно купил у вас плату Arduino nano для быстрой проверки различных модулей и датчиков, Но почему-то она не работает. На любой скетч, который пытаюсь загрузить, пишет-  Ошибка компиляции для платы Arduino Nano. Получается я не могу проверить не одного модуля. Почему вы продали мне бракованную плату или это я делаю что-то неправильно?

Вольтик.ру ответил на вопрос 27.03.2023

Вольтик.ру

Опубликовано 27.03.2023


0
Коментарии

Ошибка exit status 1 при компиляции для плат Arduino Uno, Mega и Nano может быть вызвана несколькими причинами. Вот несколько возможных причин и способы их устранения:

  1. Ошибка в коде: Проверьте свой код на наличие ошибок и опечаток. Попробуйте временно закомментировать или удалить некоторые части кода, чтобы выяснить, где находится проблема.
  2. Несоответствие выбранной плате: Убедитесь, что вы выбрали правильную плату в меню Инструменты > Плата. Если вы используете нестандартную плату, возможно, вам нужно добавить соответствующую поддержку в вашей среде разработки.
  3. Неправильно настроенные порты: Проверьте, что выбран правильный порт для вашей платы в меню Инструменты > Порт. Если ваша плата не обнаружена, убедитесь, что она правильно подключена к компьютеру и что драйвера установлены.
  4. Недостаточно памяти: Приложения для Arduino могут иметь ограничения по использованию памяти. Если ваш код использует слишком много памяти, вы можете получить ошибку exit status 1 при компиляции. Попробуйте уменьшить объем кода, удалив неиспользуемые функции или библиотеки.
  5. Несовместимость версий: Убедитесь, что вы используете совместимые версии библиотек и среды разработки Arduino. Если вы используете сторонние библиотеки, проверьте, что они совместимы с вашей версией Arduino.
  6. Проблемы с библиотеками: Проверьте, что все необходимые библиотеки правильно установлены. Если вы используете сторонние библиотеки, убедитесь, что они правильно настроены и установлены в вашей среде разработки.
  7. Проблемы с драйверами: Если у вас возникают проблемы с драйверами, попробуйте переустановить драйвера для вашей платы.

Если все это не поможет, позвоните в наш отдел продаж и назовите номер заказа, переключим на техподдержку и будем разбираться.

Вольтик.ру ответил на вопрос 27.03.2023

Содержание

  1. Синтаксические ошибки
  2. Ошибки компиляции плат Arduino uno
  3. Для чего нужна функция void setup()
  4. Ошибка exit status 1 при компиляции для плат uno, mega и nano
  5. Синтаксис void setup()
  6. Ошибки библиотек
  7. Ошибки компилятора Ардуино
  8. Примеры void setup()
  9. Основные ошибки
  10. Ошибка: «avrdude: stk500_recv(): programmer is not responding»
  11. Ошибка: «No such file or directory / exit status 1»

Синтаксические ошибки

Arduino — одна из самых удобных сред для начинающих инженеров, особенно программистов, потому что им не нужно проектировать свои системы управления и выполнять множество других действий.

Сразу после покупки они получают готовый набор библиотек на C99 и возможность при необходимости извлекать необходимые модули в открытых источниках.

Но и здесь не избежать многих проблем, которые знает каждый программист, и одна из самых неприятных — это ошибка компиляции платы Arduino nano, с которой вам придется столкнуться не один раз. Что означает эта линия, каковы причины ее появления, а главное, как быстро решить эту проблему?

Для начала стоит немного погрузиться в теорию, чтобы понять причину появления этой строчки с текстом и не грешить лишний раз, что Arduino uno не видит компьютер.

Как вы понимаете, компиляция означает преобразование кода C в машинный (двоичный) формат и преобразование нескольких функций в простые операции, чтобы их можно было выполнять через операнды встроенного процессора. Все это звучит достаточно просто, но сам процесс сборки намного сложнее, и поэтому во время этого процесса может возникнуть ошибка по десяткам причин.

Все мы привыкли, что код никогда не запускается с первого раза, и когда мы пытаемся запустить его в интерпретаторе, выскакивает десяток ошибок, которые нужно оперативно исправлять. Компилятор работает аналогично, за исключением того, что не всегда указываются причины ошибок. Поэтому рекомендуется сначала протестировать код в среде разработки, а уже потом начинать компилировать его в исполняемые файлы под Arduino.

Мы выяснили, к чему приводит этот процесс, давайте выясним, как это происходит:

  1. Первое, что делает компилятор, это загружает все включенные файлы, а также изменяет определенные определения на указанное для них значение. Следовательно, это необходимо, чтобы синтаксический синтаксический анализатор не проходил через один и тот же код несколько раз. Кроме того, в зависимости от среды компилятор может заменять функции вместо их объявления или делать это после передачи синтаксическим анализатором. В случае с C99 используется второй вариант реализации, но это не так важно.
  2. Затем проверьте основной синтаксис. Этот процесс выполняется в исходном скомпилированном файле, и какой-то парсер проверяет, были ли указанные функции описаны выше, подключены ли необходимые библиотеки и так далее. Он также проверяет, приводятся ли типы данных к определенным значениям для правильности. Не забывайте, что C99 использует строгую явную типизацию, и вы не можете помещать какие-либо буквальные значения в объявленную целочисленную строку. Если это замечено, сразу отобразится ошибка.
  3. В зависимости от среды разработки иногда можно протестировать код, который теперь будет скомпилирован в последний раз, запустив интерпретатор соответствующим образом.
  4. Последний представляет собой стек различных операций по преобразованию функций, базовых операндов и прочего в двоичный код, что может занять некоторое время. Кроме того, вся файловая структура переносится в исполняемый файл exe-шники и на этом компиляция завершается.

Как видите, процесс не так прост, как задумано, и в любой момент может возникнуть какая-то ошибка, которая прервет компиляцию. Проблема в том, что, в отличие от первых трех этапов, ошибки на последнем часто неявны, но все же не связаны с алгоритмом и логикой программы. В результате на их ремонт и очистку уходит гораздо больше времени.

Но синтаксические ошибки являются наиболее частой причиной возникновения ошибки компиляции платы Arduino nano в состоянии выхода 1. В этом случае процесс отладки часто бывает чрезвычайно простым.

Вам будет показана ошибка и строка, а также подсказка от оператора EXCEPTION, который не понравился синтаксическому анализатору. Будь то запятая или незамкнутые функциональные скобки, проблема загрузки в плату Arduino все равно возникнет.

Решение предельно простое и логичное: найти и исправить синтаксис, который не нравится машине. Часто эти сообщения появляются группами, как при тестировании, так и при компиляции, поэтому можно «заблокировать» разработку более одного раза.

Не бойтесь этого — это нормальный процесс. Все претензии отображаются на английском языке, например, часто можно увидеть следующее: не было заявлено в этой области. Что это за ошибка ардуино — на самом деле ответ уже скрыт в сообщении. Функция или переменная просто не были объявлены в области видимости.

Ошибки компиляции плат Arduino uno

Еще одна распространенная ошибка пользователей, которая вызывает вопросы, например, что делать, если Arduino не видит порт, заключается в том, что вы просто забываете настроить среду разработки. IDE Arduino была создана для всех типов плат, но, как мы указали, на каждый контроллер помещается только ограниченное количество библиотек, и их содержимое может быть разным.

Следовательно, если в меню среды вы выбрали компиляцию для неправильного MK, вероятно, вызываемая функция или метод просто не найдены в постоянной памяти, что возвращает ошибку. Как правило, в настройках указывается плата Arduino uno, поэтому не забывайте ее менять. И обратная ситуация может быть причиной проблемы с загрузкой на плату на Arduino.

Для чего нужна функция void setup()

Скачивая программу, Arduino дает возможность нашему коду участвовать в инициализации системы. Для этого нам нужно сообщить микроконтроллеру команды, которые он будет выполнять при запуске, а затем забыть о них (т.е эти команды будут выполняться только один раз при запуске системы). И для этой самой цели в нашей с вами программе нам нужно выбрать блок, в котором будут храниться эти команды void setup (), а точнее пространство внутри фигурных скобок этой функции, является таким местом внутри скетча Ардуино.

Ошибка exit status 1 при компиляции для плат uno, mega и nano

И наиболее частым сообщением для пользователей, которое появляется в среде разработки, является exit 1. И это наиболее неудобно для отладки приложения, потому что здесь нужно учитывать почти ядро ​​системы, чтобы понять, в чем заключается злополучное зрелище.

В документации указано, что это сообщение указывает на то, что Arduino ide не запускается в требуемой конфигурации, но на самом деле существует еще дюжина случаев, когда вы увидите это сообщение. Однако на самом деле не забудьте проверить системный бит, IDE и посмотреть, какие библиотеки доступны для справки в данный момент.

Синтаксис void setup()

В этом примере слово setup — это имя функции. Именно так и нужно писать именно в этом регистре. Слово перед именем описывает тип возвращаемых данных. В этом случае подпрограмма не возвращает никаких данных, поэтому нам нужно указать слово void. Все команды должны быть заключены в фигурные скобки {}.

Не забудьте поставить подтяжки! Потеря хотя бы одной круглой скобки сразу сделает всю программу непонятной для arduino. Но даже не ставьте лишние скобки — это тоже приведет к ошибке.

Ошибки библиотек

Если при компиляции скетча Arduino произошла ошибка, но ни одно из вышеперечисленных сообщений не отображалось, можно смело искать ошибку в библиотеках MK. Это самая неприятная задача для большинства программистов, ведь приходится залезать в чужой код, а без этого не обойтись.

Ведь банальная причина может заключаться в устаревшем синтаксисе загруженного плагина, а чтобы он заработал, его нужно переписывать практически с нуля. Это единственный выход из сложившейся ситуации. Но бывают и более приземленные ситуации, когда вы связали библиотеку, функции которой никогда не вызывались, или вы просто перепутали имя.

Ошибки компилятора Ардуино

Ранее последний стек действий упоминался при запуске кода через компилятор, а сейчас могут возникнуть самые страшные ошибки — ошибки в самой IDE. Здесь не может быть конкретного решения. Вам никто не запрещает зайти в самое сердце системы и самому там все проверить, но гораздо эффективнее будет вернуться к предыдущей версии программы или, наоборот, обновить.

Примеры void setup()

Чаще всего в пустой конфигурации указываются следующие инструкции:

  • pinMode с указанием номера и типа контакта. Эта инструкция определяет режим работы выводов ардуино.
  • Serial.begin с указанием скорости (чаще всего 9600). Эта инструкция инициализирует работу последовательного порта на указанной скорости.
  • Инструкция по подключению и инициализации различных объектов библиотек arduino. Например, servo.atach (6) сообщит библиотеке, что мы подключили сервопривод к выводу 9, и код библиотеки будет выполнять все последующие действия только с этим портом.
  • Инициализация глобальных переменных, если по какой-то причине это невозможно сделать при определении переменных в глобальной области видимости.
  • Задайте другие настройки и начальные значения для переменных и объектов.

Если говорить о переопределении ошибки конфигурации вакуума, то она возникает, если мы подключаем модуль или скетч, в котором уже есть эта функция. Вот что вызывает ошибку

Основные ошибки

Ошибка: «avrdude: stk500_recv(): programmer is not responding»

Посмотрим, что у нас за карта? Какой порт мы используем? Сообщите arduino о правильной карте и порте. Возможно, вы используете Nano, и указано Mega. Возможно, вы указали неправильный порт. Все это приводит к сообщению: «программист не отвечает».

Решение:

В Arduino IDE в меню «Сервис» выберите плату. В меню «Сервис → Последовательный порт» выберите порт.

Ошибка: «No such file or directory / exit status 1»

Включенной библиотеки нет в папке библиотек.

Решение:

Скачайте нужную библиотеку и скопируйте ее в папку с программой — например, C: Program Files Arduino libraries. Если есть библиотека, замените файлы в папке.

Возможно, вам также будет интересно:

  • Ошибка компиляции для платы generic stm32f103c series
  • Ошибка компиляции microsoft jscript 800a03f6
  • Ошибка компиляции для платы generic esp8266 module как исправить
  • Ошибка компиляции java это
  • Ошибка компиляции для платы esp32 wrover module

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии