#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <sys/socket.h>
#include <sys/unistd.h>
#include <sys/types.h>
#include <sys/errno.h>
#include <netinet/in.h>
#include <signal.h>
#include <iostream>
#include <thread>
using namespace std;
#define BUFFSIZE 2048
#define DEFAULT_PORT 4001 //
#define MAXLINK 2048
void connecter()
{
printf("Listening...n");
while (true)
{
signal(SIGINT, stopServerRunning); //
//
connfd = accept(sockfd, NULL, NULL);
if (-1 == connfd)
{
printf("Accept error(%d): %sn", errno, strerror(errno));
return -1;
}
}
}
void listener()
{
while(true)
{
bzero(buff, BUFFSIZE);
//
recv(connfd, buff, BUFFSIZE - 1, 0);
//
printf("клиент: %sn", buff);
//
send(connfd, buff, strlen(buff), 0);
}
}
void sender()
{
while(true)
{
printf("Please input: ");
scanf("%s", buff);
send(connfd, buff, strlen(buff), 0);
bzero(buff, sizeof(buff));
recv(connfd, buff, BUFFSIZE - 1, 0);
printf("recv: %sn", buff);
}
}
int sockfd, connfd;
void stopServerRunning(int p)
{
close(sockfd);
printf("Close Servern");
exit(0);
}
int main()
{
struct sockaddr_in servaddr;
char buff[BUFFSIZE];
//
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (-1 == sockfd)
{
printf("Create socket error(%d): %sn", errno, strerror(errno));
return -1;
}
//
//
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(DEFAULT_PORT);
if (-1 == bind(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)))
{
printf("Bind error(%d): %sn", errno, strerror(errno));
return -1;
}
//
//
if (-1 == listen(sockfd, MAXLINK))
{
printf("Listen error(%d): %sn", errno, strerror(errno));
return -1;
}
while(true)
{
thread my_thread(connecter);
if(connfd == true)
break;
}
thread my_thread(connecter);
thread my_thread(listener);
thread my_thread(sender);
return 0;
}
}
это исходный код программы, хотел написать что-то вроде чата на сокетах. Я попытался скомпилировать код, но он мне выдал несколько ошибок «was not declared in this scope». Вот вывод компилятора:
server.cpp: In function ‘void connecter()’:
server.cpp:24:24: error: ‘stopServerRunning’ was not declared in this scope
24 | signal(SIGINT, stopServerRunning); // Это предложение используется для выключения сервера при вводе Ctrl + C
|
server.cpp:26:9: error: ‘connfd’ was not declared in this scope
26 | connfd = accept(sockfd, NULL, NULL);
| ^~~~~~
server.cpp:26:25: error: ‘sockfd’ was not declared in this scope; did you mean ‘socket’?
26 | connfd = accept(sockfd, NULL, NULL);
| ^~~~~~
| socket
server.cpp: In function ‘void listener()’:
server.cpp:39:15: error: ‘buff’ was not declared in this scope
39 | bzero(buff, BUFFSIZE);
| ^~~~
server.cpp:41:14: error: ‘connfd’ was not declared in this scope
41 | recv(connfd, buff, BUFFSIZE - 1, 0);
| ^~~~~~
server.cpp: In function ‘void sender()’:
server.cpp:54:21: error: ‘buff’ was not declared in this scope
54 | scanf("%s", buff);
| ^~~~
server.cpp:55:14: error: ‘connfd’ was not declared in this scope
55 | send(connfd, buff, strlen(buff), 0);
| ^~~~~~
я думаю, что все эти ошибки идут из одной проблемы, но не могу понять откуда
SergeyKagen 3 / 4 / 2 Регистрация: 02.04.2018 Сообщений: 315 |
||||
1 |
||||
19.04.2019, 22:16. Показов 132857. Ответов 14 Метки нет (Все метки)
Простой код, но Arduino IDE напрочь отказывается принимать переменные. Что за глюк или я что-то неправильно делаю?
ошибка при компиляции «‘count’ was not declared in this scope», что не так?
__________________
0 |
marat_miaki 499 / 393 / 186 Регистрация: 08.04.2013 Сообщений: 1,695 |
||||
19.04.2019, 23:26 |
2 |
|||
Сообщение было отмечено SergeyKagen как решение Решение
1 |
Lavad 0 / 0 / 0 Регистрация: 03.10.2015 Сообщений: 25 |
||||||||
14.09.2019, 22:33 |
3 |
|||||||
Доброго времени суток!
В loop() делаю вызов:
При компиляции выделяется этот вызов, с сообщением: ‘myDisplay’ was not declared in this scope Замучился искать инфу о декларации/обьявлении функции. Везде, что находил, понимал одно: если ты вызываешь функцию, это и есть обьявление функции P.S. Код, что использовал в качестве функции, работоспособен. Раньше находился в loop(). Скетч постепенно разрастается, много однотипных обращений к дисплею…
0 |
8385 / 6147 / 615 Регистрация: 10.12.2010 Сообщений: 28,683 Записей в блоге: 30 |
|
14.09.2019, 23:57 |
4 |
Создал функцию (за пределами setup и loop), Перевидите на нормальный язык. В другом файле что ли? Добавлено через 1 минуту
Замучился искать инфу о декларации/обьявлении функции. Везде, что находил, понимал одно: если ты вызываешь функцию, это и есть обьявление функции Читать учебники по С++ не пробовали? https://metanit.com/cpp/tutorial/3.1.php Специфика Arduino лишь отличается тем что пред объявления не всегда нужны. Добавлено через 7 минут
0 |
ValeryS Модератор 8760 / 6550 / 887 Регистрация: 14.02.2011 Сообщений: 22,979 |
||||
15.09.2019, 00:09 |
5 |
|||
Везде, что находил, понимал одно: если ты вызываешь функцию, это и есть обьявление функции это где ж такое написано?
а объявить уже в удобном месте
0 |
0 / 0 / 0 Регистрация: 03.10.2015 Сообщений: 25 |
|
15.09.2019, 00:48 |
6 |
Неделю назад ВПЕРВЫЕ включил Arduino Uno. Написал на том же языке, что и читал на всяких форумах и справочниках по Arduino :-). За пределами этих функций — значит не внутри них. Обе приведенных Вами ссылок просмотрел, проверил в скетче… В итоге вылезла другая ошибка: void myDisplay(byte x, byte y, char str) тоже пробовал. Та же ошибка. Что не так на этот раз?
0 |
Модератор 8760 / 6550 / 887 Регистрация: 14.02.2011 Сообщений: 22,979 |
|
15.09.2019, 01:26 |
7 |
В итоге вылезла другая ошибка: точку с запятой в конце поставил?
1 |
Lavad 0 / 0 / 0 Регистрация: 03.10.2015 Сообщений: 25 |
||||||||||||
15.09.2019, 08:46 |
8 |
|||||||||||
Вот скетч. Проще некуда.
Любое из трех так называемых «объявлений» (строки 7…9) выдает одну и ту же ошибку — я пытаюсь объявить функцию как переменную. Добавлено через 9 минут
Компилятор задумался (я успел обрадоваться), но, зараза :-), он снова поставил свой автограф undefined reference to `myDisplay(unsigned char, unsigned char, char, float) На этот раз он пожаловался на строку вызова функции. Добавлено через 34 минуты
Dispay вместо Display Добавлено через 8 минут
0 |
ValeryS Модератор 8760 / 6550 / 887 Регистрация: 14.02.2011 Сообщений: 22,979 |
||||||||
15.09.2019, 10:36 |
9 |
|||||||
void myDisplay(byte, byte, char, float) = 0; вот так не надо делать(приравнивать функцию к нулю) Добавлено через 5 минут
void myDispay(byte x, byte y, char str, float temp)
myDisplay(0, 0, «C», temp); просишь чтобы функция принимала символ
или проси передавать строку, например так
1 |
Avazart 8385 / 6147 / 615 Регистрация: 10.12.2010 Сообщений: 28,683 Записей в блоге: 30 |
||||
15.09.2019, 12:02 |
10 |
|||
Кроме того наверное лучше так:
Тогда можно будет вынести ф-цию в отдельный файл/модуль.
1 |
locm |
15.09.2019, 21:07
|
Не по теме:
Arduino Uno.
AVR (Basic, немного Assembler). Arduino Uno это AVR, для которого можете писать на бейсике или ассемблере.
0 |
Avazart |
15.09.2019, 21:21
|
Не по теме:
Arduino Uno это AVR, для которого можете писать на бейсике или ассемблере. Но лучше не надо …
0 |
Lavad 0 / 0 / 0 Регистрация: 03.10.2015 Сообщений: 25 |
||||
16.09.2019, 12:12 |
13 |
|||
это где ж такое написано? Оказалось, что я верно понял чтиво по справочникам:
вот так не надо делать(приравнивать функцию к нулю)… Методом проб и ошибок уже понял :-).
или передавай символ… Если передаю в одинарных кавычках более одного символа, а функция ждет как
или проси передавать строку, например так… Буквально вчера попалось это в справочнике, но как-то не дошло, что тоже мой вариант :-).
Кроме того наверное лучше так:
Тогда можно будет вынести ф-цию в отдельный файл/модуль. Благодарю за совет! Как-нибудь проверю…
0 |
8385 / 6147 / 615 Регистрация: 10.12.2010 Сообщений: 28,683 Записей в блоге: 30 |
|
16.09.2019, 12:54 |
14 |
Оказалось, что я верно понял чтиво по справочникам: если ты вызываешь функцию, это и есть обьявление функции Нафиг выкиньте эти справочники.
0 |
0 / 0 / 0 Регистрация: 03.10.2015 Сообщений: 25 |
|
16.09.2019, 13:00 |
15 |
Ссылки Ваши добавлены в закладки. Время от времени заглядываю.
0 |
-
#101
Да, микро библиотеки установлены, но к сожалению ошибка. Ошибка не в том, что их нет, а в том что повторное определение классе. Или я чего-то не понимаю
-
#102
может кто знает что это,
C:LightringsLightrings.ino:42:0: warning: «HIGH» redefined
#define HIGH 3
In file included from sketchLightrings.ino.cpp:1:0:
C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/Arduino.h:40:0: note: this is the location of the previous definition
#define HIGH 0x1
C:LightringsLightrings.ino:1366:0: warning: «FRAMES_PER_SECOND» redefined
#define FRAMES_PER_SECOND 40
C:LightringsLightrings.ino:216:0: note: this is the location of the previous definition
#define FRAMES_PER_SECOND 60
In file included from C:LightringsLightrings.ino:1:0:
C:Users����8881DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:LightringsLightrings.ino: In function ‘Twinkle()’:
C:LightringsLightrings.ino:1780:22: warning: iteration 124 invokes undefined behavior [-Waggressive-loop-optimizations]
if (redStates[l] > 1 || greenStates[l] > 1 || blueStates[l] > 1) {
~~~~~~~~~~~^
C:LightringsLightrings.ino:1779:28: note: within this loop
for(uint16_t l = 0; l < N_PIXELS_2; l++) {
Скетч использует 20218 байт (7%) памяти устройства. Всего доступно 253952 байт.
Глобальные переменные используют 1962 байт (23%) динамической памяти, оставляя 6230 байт для локальных переменных. Максимум: 8192 байт.
-
#103
#define HIGH 3 вот это кто писал ?
HIGH уже описано как высокий уровень сигнала для выводов, на ряду с LOW
переопределение его может отразиться на работе проектов
-
#104
#define HIGH 3 вот это кто писал ?
HIGH уже описано как высокий уровень сигнала для выводов, на ряду с LOW
переопределение его может отразиться на работе проектов
,взял с ютуба ,люстру делаю замаялся уже,светодиоды просто горят иногда чет помаргивает,
-
#105
Можно ссылку, что бы понятно было
-
#107
дак вот если бы разбирался я в скетчах,
-
#108
код у меня скомпилировался без предупреждений. для ардуион нано.
Но делать так крайне плохо.. даже в самом коде есть сторока
//digitalWrite(13, HIGH);
которая будет конфликтовать с определением
Исправить не сложно
#define HIGH 3
меняем на
#define M_HIGH 3
в тексте ищем «songmode» и в строках где есть HIGH меняем на M_HIGH
(строки 365, 1013)
-
#109
код у меня скомпилировался без предупреждений. для ардуион нано.
Но делать так крайне плохо.. даже в самом коде есть сторока
//digitalWrite(13, HIGH);
которая будет конфликтовать с определениемИсправить не сложно
#define HIGH 3
меняем на
#define M_HIGH 3в тексте ищем «songmode» и в строках где есть HIGH меняем на M_HIGH
(строки 365, 1013)
хорошо,пробую
-
#110
исправил,сейчас вот что пишет,
C:LightringsLightrings.ino:1366:0: warning: «FRAMES_PER_SECOND» redefined
#define FRAMES_PER_SECOND 40
C:LightringsLightrings.ino:216:0: note: this is the location of the previous definition
#define FRAMES_PER_SECOND 60
In file included from C:LightringsLightrings.ino:1:0:
C:Users����8881DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:LightringsLightrings.ino: In function ‘Twinkle()’:
C:LightringsLightrings.ino:1780:22: warning: iteration 124 invokes undefined behavior [-Waggressive-loop-optimizations]
if (redStates[l] > 1 || greenStates[l] > 1 || blueStates[l] > 1) {
~~~~~~~~~~~^
C:LightringsLightrings.ino:1779:28: note: within this loop
for(uint16_t l = 0; l < N_PIXELS_2; l++) {
-
#111
код у меня скомпилировался без предупреждений. для ардуион нано.
Но делать так крайне плохо.. даже в самом коде есть сторока
//digitalWrite(13, HIGH);
которая будет конфликтовать с определениемИсправить не сложно
#define HIGH 3
меняем на
#define M_HIGH 3в тексте ищем «songmode» и в строках где есть HIGH меняем на M_HIGH
(строки 365, 1013)
исправил,сейчас вот что пишет,
C:LightringsLightrings.ino:1366:0: warning: «FRAMES_PER_SECOND» redefined
#define FRAMES_PER_SECOND 40
C:LightringsLightrings.ino:216:0: note: this is the location of the previous definition
#define FRAMES_PER_SECOND 60
In file included from C:LightringsLightrings.ino:1:0:
C:Users����8881DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:LightringsLightrings.ino: In function ‘Twinkle()’:
C:LightringsLightrings.ino:1780:22: warning: iteration 124 invokes undefined behavior [-Waggressive-loop-optimizations]
if (redStates[l] > 1 || greenStates[l] > 1 || blueStates[l] > 1) {
~~~~~~~~~~~^
C:LightringsLightrings.ino:1779:28: note: within this loop
for(uint16_t l = 0; l < N_PIXELS_2; l++) {
-
#112
У тебя стоит в настройках видимо стоит вывод сообщений компилятора по умолчанию. Но при этом скетч должен компилироваться и загружаться. Это все предупреждения… даже с просто HIGH бед M_HIGH должно загружаться.
Электрику проверить не могу, схему собирать не буду, не интересно, да и нет у меня лед нужных.
-
#113
У тебя стоит в настройках видимо стоит вывод сообщений компилятора по умолчанию. Но при этом скетч должен компилироваться и загружаться. Это все предупреждения… даже с просто HIGH бед M_HIGH должно загружаться.
Электрику проверить не могу, схему собирать не буду, не интересно, да и нет у меня лед нужных.
это значит не ошибки,работать должно да,сейчас соберу попробую
-
#114
это предупреждение, тонкое место
-
#115
это предупреждение, тонкое место
подключил,непонятно че моргает,ни как на видео ,бред какой то только зря деньги потратил,ну ладно спасибо и на этом
-
#116
ну на видео тоже не фонтан как бы… я не в восторге был, Гуверовская лента намотанная на обруч будет приятнее имхо
-
#117
ну на видео тоже не фонтан как бы… я не в восторге был, Гуверовская лента намотанная на обруч будет приятнее имхо
да у меня идея была полноценную люстру сделать
-
#118
Доброго времени суток, при загрузке любого скейтча даже пустого пишет:
C:UsersDellAppDataLocalTempccP0TDiY.ltrans0.ltrans.o: In function `main’:
C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:43: undefined reference to `setup’
C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:46: undefined reference to `loop’
collect2.exe: error: ld returned 1 exit status
exit status 1
Ошибка компиляции для платы Arduino Nano.
-
#119
Привет. Классная идея и достойный проект, зацепило)) Думаю не одного меня зацепило когда увидел отзывы на сайте Али)) вот только сам не программист и для меня дело не легкое) Хотя казалось бы все легко когда подключил светодиод и заставил его мигать. Думал будет так же и с лентой. Но вот уже целый день сижу колупаюсь в библиотеках и скетчах которые были в исходниках и у меня выдает постоянно одну ошибку которая тянет на все остальные вкладки. Может это я как-то криво поставил библиотеку какую-то? Или где-то в скетче нужно, что-то поменять? Такая ошибка только у меня вылезла? Кто-нибудь с такой проблемой сталкивался? Если можете помочь?
Arduino: 1.8.8 (Windows 7), Плата:»Arduino Nano, ATmega328P»
GyverMatrixOS_v1.12:51:24: error: ‘CRGB’ does not name a type; did you mean ‘OCR0B’?
#define GLOBAL_COLOR_1 CRGB::Green // основной цвет №1 для игр
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:138:1: note: in expansion of macro ‘GLOBAL_COLOR_1’
utility:58:47: error: ‘CRGB’ has not been declared
void drawDigit3x5(byte digit, byte X, byte Y, CRGB color) {
utility:70:49: error: ‘CRGB’ has not been declared
void drawDigit3x5_s(byte digit, byte X, byte Y, CRGB COLOR) {
utility:82:47: error: ‘CRGB’ has not been declared
void drawDigit5x7(byte digit, byte X, byte Y, CRGB COLOR) {
utility:192:14: error: variable or field ‘fillAll’ declared void
void fillAll(CRGB color) {
utility:192:14: error: ‘CRGB’ was not declared in this scope
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12utility.ino:192:14: note: suggested alternative: ‘OCR0B’
void fillAll(CRGB color) {
OCR0B
utility:199:38: error: ‘CRGB’ has not been declared
void drawPixelXY(int8_t x, int8_t y, CRGB color)
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino: In function ‘void setup()’:
GyverMatrixOS_v1.12:208:3: error: ‘FastLED’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
GyverMatrixOS_v1.12:208:19: error: ‘WS2812’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:19: note: suggested alternative: ‘CS12’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
CS12
GyverMatrixOS_v1.12:26:21: error: ‘GRB’ was not declared in this scope
#define COLOR_ORDER GRB // РїРѕСЂСЏРґРѕРє цветов РЅР° ленте. Если цвет отображается некорректно — меняйте. Начать можно СЃ RGB
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:36: note: in expansion of macro ‘COLOR_ORDER’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:26:21: note: suggested alternative: ‘DDRB’
#define COLOR_ORDER GRB // РїРѕСЂСЏРґРѕРє цветов РЅР° ленте. Если цвет отображается некорректно — меняйте. Начать можно СЃ RGB
ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:36: note: in expansion of macro ‘COLOR_ORDER’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
GyverMatrixOS_v1.12:208:49: error: ‘leds’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:49: note: suggested alternative: ‘secs’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
secs
GyverMatrixOS_v1.12:208:80: error: ‘TypicalLEDStrip’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void customModes()’:
сustom:70:42: error: ‘CRGB’ has not been declared
case 0: fillString(«РљР АСНЫЙ», CRGB::Red);
duinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void nextModeHandler()’:
custom:194:3: error: ‘FastLED’ was not declared in this scope
FastLED.clear();
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void prevModeHandler()’:
custom:202:3: error: ‘FastLED’ was not declared in this scope
FastLED.clear();
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void modeFader()’:
custom:218:7: error: ‘FastLED’ was not declared in this scope
FastLED.setBrightness(fadeBrightness);
ustom:231:7: error: ‘FastLED’ was not declared in this scope
FastLED.setBrightness(fadeBrightness);
и тд…..
Спасибо заранее))
-
#120
Спасибо, что откликнулись!
Однако, это всё, что есть… см. скринА, что там еще должно быть?
Возможно, есть ошибки с правами на файл/директорию? Владелец/чтение/запись? Проверьте, чтобы у вашего пользователя были права.
Вообще, вам, наверное, будет полезнее обратиться на форум людей, которые работают под линуксом. Удачно скомпилировать любой проект, а потом браться за лампу. Здесь, похоже, все на винде. А из специфического: вам нужно установить все библиотеки проекта и поддержку платформы esp8266. Под windows это делается в Arduino IDE, как показывал Алекс в видео.
-
#121
Доброго времени суток, при загрузке любого скейтча даже пустого пишет:
C:UsersDellAppDataLocalTempccP0TDiY.ltrans0.ltrans.o: In function `main’:
C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:43: undefined reference to `setup’
C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:46: undefined reference to `loop’
collect2.exe: error: ld returned 1 exit status
exit status 1
Ошибка компиляции для платы Arduino Nano.
Потому что скетч не может быть пустым. Когда в Arduino IDE созадёшь новый скетч, он разве пустой?
-
#122
Добрый день, друзья!
Огромное спасибо Алексею за идею и реализацию проекта!
Собрал макет устройства на столе, пока без ящика, концевиков, помпы и светодиодов. Протестировал. Пришло в голову несколько идей как улучшить работу устройства, как устранить небольшие баги. Если Алексей не будет возражать, выкладываю доработанный скетч.
Я использую Arduino Leonardo, поэтому есть изменения в подключениях в отличии от родного скетча:
- Подключен экран LCD 1602 с I2C: SDA – 2 выход, SCL – 3 выход
- Помпа перенесена с выхода 2 на выход 16
Что изменено, добавлено:
- Адаптация под двух строчный (2стр*16 симв) дисплей lcd 1602 с I2C с драйверами с поддержкой русского языка.
- Устранен баг неправильной отработки наливатора в случае если в процессе разлива менять режим (с Р на А и наоборот).
- Устранен баг при котором если наливается уже вторая рюмка, то сняв налитую первую гусак резко отворачивается и проливает жидкость.
- Устранен баг с отрицательным значением объема при вращении ручки энкодера.
- Устранен баг, при котором таймер отключения устройства включался при наливе первой рюмки и при некоторых значениях мог приводить к внезапной парковке устройства в середине процесс разлива.
- Сделан экран приветствия. На нем вы можете установить какое то сообщение, а так же кратковременно увидеть статистику по количеству включений устройства, кол-во рюмок и грамм жидкости.
- Учитывается и выводится на экран количество рюмок и грам за сессию (с момента включения). Информация всегда на экране.
- Учитывается и выводится на экран количество включений устройства, количество рюмок и количество грамм тотально (т.е. с момента первого включения устройства) + две строки доп информации на ваше усмотрение. Эта информация отображается там, где раньше были отрицательные значения объема (крутим ручку энкодера), а так же при старте устройства.
- Записывает в постоянную память последнее установленное значение наливаемого объема. Т.е. если установить, например объем налива 35 гр, то после выключения и включения устройства начальный объем будет 35 гр.
- Несколько других мелких исправлений.
Если будет желание – тестируйте, высказывает замечания.
Если будут баги – то сначала залейте скетч Алексея и посмотрите, есть ли этот те же баг в оригинальной прошивке.
Добрый день, Levonti!
попробовал запустить ваш скетч, выхлодит следующая ошибка. Насколько я понимаю, не хватает одной из библиотек. Что думаете по этому поводу?
Использую плату Бузина Нано (аналог оригинальной платы)
Аналогичная проблема была при загрузке оригинального скетча от Alex_gyver, однако здесь ошибка: a4′ was not declared in this scope.
Текст ошибки вашего скетча:
несколько библиотек найдено для «GyverTM1637.h»
GyverDrink_v1.0_levonti_debug_1602:58:20: error: EEPROM.h: No such file or directory
#include <EEPROM.h>
^
compilation terminated.
Используется: C:Program
Несколько библиотек найдено для «ServoSmooth.h»
Используется: C:Program
Несколько библиотек найдено для «Servo.h»
Используется: C:Program
Не используется: C:Program
Несколько библиотек найдено для «microLED.h»
Используется: C:Program
Несколько библиотек найдено для «LCD_1602_RUS.h»
Используется: C:Program
Несколько библиотек найдено для «LiquidCrystal_I2C.h»
Используется: C:Program
Не используется: C:UsersrootAppDataLocalArduino15packagesdigistumphardwareavr1.6.7librariesDigisparkLCD
Не используется: C:Program
Несколько библиотек найдено для «Wire.h»
Используется: C:UsersrootAppDataLocalArduino15packagesdigistumphardwareavr1.6.7librariesWire
exit status 1
EEPROM.h: No such file or directory
-
#124
Попробуй определение функции Q перенести выше setup-а
-
#125
Хочу научится програмированию на ардуино.
Купил китайскую UNO установил IDE решил залить скетч блинк(мигание диода) в результате компиляции получил
C:UsersLenovoAppDataLocalArduino15packagesarduinohardwareavr1.8.1coresarduino/Arduino.h:257:10: fatal error: pins_arduino.h: No such file or directory
#include «pins_arduino.h»
^~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno
Как я понял нет библиотеки pins_arduino.h подскажите как с этим бороться.
Заранее благодарю.