Вроде все есть, но не работает, и код стал огромный по длинне. Помогите что за ошибка на этот раз exit status 1 lvalue required as left operand of assignment Код (C++): #include <Wire.h> // Подключаем библиотеку Wire для работы с I2C устройствами, в данном случае с платой #include "RTClib.h" // Подключаем библиотеку RTClib #include <SD.h> // Подключаем библиотеку SD для работы с платой расширения, оснащенной SD-слотом Запись #define CS_PIN 4 // Контакт выбора // Примечание: если вы используете Arduino Ethernet SD shiled // необходимо изменить номер контакта на 4. // Если ваша плата расширения использует другой контакт // вам необходимо его изменить на правильный. int refresh_rate = 5000; // Скорость опроса по умолчанию 5 сек. RTC_DS1307 RTC; // Объявляем RTC объект String year, month, day, hour, minute, second, time, date; // Объявляем строковые переменный для хранения даты и времени int yearEEPROM1,yearEEPROM2, yearREAD1, yearREAD2, year2, day2, hour2, minute2, second2; int f = 3; //пин, к которому подключена кнопка ответсвенная за наличие microSD int c = 0; //для логики int i = 0; //последний не записанный бит int b = 0; //поседний считанный бит int button = 2;// пин, к которому подключена кнопка. int kolbutton = 0; //счетчик кнопки int kolbuttonER; int kolbut; String dataString; void setup() { Serial.begin(9600); // Инициализация последовательного соединения на скорости 9600 бод Serial.println(F("Initializing Card")); // Распечатываем в мониторе последовательного порта "Initializing Card"("Инициализация карты") Wire.begin(); // Инициализация шины I2C RTC.begin(); // Инициализация библиотеки RTC pinMode(CS_PIN, OUTPUT); // Определяем CS(контакт выбора) контакт как выход // Если микросхема RTC не запущена, то записываем данные часов компьютера при компиляции в RTC if (! RTC.isrunning()) { Serial.println(F("RTC is NOT running!")); // Распечатываем в мониторе последовательного порта "RTC is NOT running!"("Микросхема RTC не запущена!") RTC.adjust(DateTime(__DATE__, __TIME__)); } // Инициализация SD-карты if (!SD.begin(CS_PIN)) { Serial.println(F("Card Failure")); // Распечатываем в мониторе последовательного порта "Card Failure"("Сбой подключения к SD-карте") return; // Останавливаем выполнение программы } Serial.println(F("Card Ready")); // Распечатываем в мониторе последовательного порта "Card Ready"("Карта готова к работе") File commandFile = SD.open("speed.txt"); if (commandFile) { Serial.println(F("Reading Command File")); // Распечатываем в мониторе последовательного порта "Reading Command File"("Чтение конфигурационного файла") while(commandFile.available()) { refresh_rate = commandFile.parseInt(); } Serial.print(F("Refresh Rate = ")); // Распечатываем в мониторе последовательного порта "Refresh Rate = " ("Частота обновления = ") Serial.print(F(refresh_rate)); // Распечатываем в мониторе последовательного порта значение переменной refresh_rate Serial.println(F("ms")); // Распечатываем в мониторе последовательного порта "ms"("мс.") commandFile.close(); // Закрываем файл } else { Serial.println(F("Could not read command file.")); // Распечатываем в мониторе последовательного порта "Could not read command file."("Не удалось прочитать конфигурационный файл") return; // Останавливаем выполнение программы } // Открываем файл и создаем заголовки File dataFile = SD.open("log.csv", FILE_WRITE); if (dataFile) { dataFile.println(F("\nNew Log Started!")); dataFile.println(F("Date,Time,Phrase")); dataFile.close(); // Внимание! Данные не будут записаны, пока вы не закроете соединение! // Распечатываем в мониторе последовательного порта те же данные для отладки Serial.println(F("\nNew Log Started!")); // Распечатываем в мониторе последовательного порта "\nNew Log Started!"("Новый лог начат") Serial.println(F("Date,Time,Phrase")); // Распечатываем в мониторе последовательного порта "Date,Time,Phrase" } else { Serial.println(F("Couldn't open log file")); // Распечатываем в мониторе последовательного порта "Couldn't open log file"("Не удалось открыть файл журнала") } } void loop() { // Получаем текущую дату и время и сохраняем в строковых переменных DateTime now = RTC.now(); year = int(now.year(), DEC); day = int(now.day(), DEC); hour = int(now.hour(), DEC); minute = int(now.minute(), DEC); second = int(now.second(), DEC); if (digitalRead(button) = 1) { kolbutton = kolbutton + 1; } if(c==2) { c = 0; } if(digitalRead(f)==1) { c = c+1; } if(c==1 & hour==23 & minute == 59 & second == 59){ yearEEPROM1 = year/10; yearEEPROM2 = year - (yearEEPROM1*10); EEPROM.write(i, yearEEPROM1); i = i+1; EEPROM.write(i, yearEEPROM2); i=i+1; EEPROM.write(i, day); i=i+1; EEPROM.write(i, hour); i=i+1; EEPROM.write(i, minute); i=i+1; EEPROM.write(i, second); i=i+1; EEPROM.write(i, kolbutton); i=i+1; k=k+1; } if(c==0){ while (b >= 0){ b = i; yearREAD1 =EEPROM.read(b-6); yearREAD2 =EEPROM.read(b+1); year2 = yearREAD1*10 + yearREAD2; day2 = EEPROM.read(b+1); hour2 = EEPROM.read(b+1); minute2 = EEPROM.read(b+1); second2 = EEPROM.read(b+1); kolbuttonER = EEPROM.read(b+1); b = b-13; year = String(year2, DEC); day = String(day2, DEC); hour = String(hour2, DEC); minute = String(minute2, DEC); second = String(second2, DEC); kolbut = String(kolbutton, DEC); date = year + "/" + month + "/" + day; time = hour + ":" + minute + ":" + second; dataString = "Hello World!"; File dataFile = SD.open("log.csv", FILE_WRITE); if (dataFile) { dataFile.print(date); dataFile.print(F(",")); dataFile.print(time); dataFile.print(F(",")); dataFile.println(dataString); dataFile.println(kolbut); dataFile.close(); // Внимание! Данные не будут записаны, пока вы не закроете соединение! // Распечатываем в мониторе последовательного порта те же данные для отладки Serial.print(date); Serial.print(F(",")); Serial.print(time); Serial.print(F(",")); Serial.println(dataString); } else { Serial.println(F("Couldn't open log file")); // Распечатываем в мониторе последовательного порта "Couldn't open log file"("Не удалось открыть файл журнала") } delay(refresh_rate); // Задержка длительностью refresh_rate } //доп начало c=0; // доп конец } //Функция обновления дисплея //Вывод значения счетчика на дисплей void DispUpdate(void) { int intValue = Counter; int divValue; for(int i = 3; i >= 0; i --) { divValue = intValue % 10; intValue = intValue / 10; CountDisp[i] = divValue; } tm1637.display(CountDisp); }
У ВАС ОШИБОК ЦЕЛАЯ ПРОСТЫНЯ. скобки нет библиотеки для дисплея и куча других. начните с простых примеров потом усложняйте
Просто я как работодатель, сталкиваюсь с таким отношением впервые. Мы же отписались, если сможете подцепить код для связи "семисегментным экраном", то мы готовы работать. Вы не смогли, смог другой. Сейчас какой то код отправляете, куча писем от вас. Предоплата конечно же нужна, обязательно! . Пусть даже 500 руб, а после : по факту работы 40 000 и больше.
Вы сказали про любой дисплей, мы подцепили жк lcd1602, после этого от вас ни одного сообщения. А тот человек который вам прогает, ничего не знает о программировании, судя по его коду. А мы потратили время, отладили - вам ни о чем не надо больше думать кроме как загрузить сктеч. P.S.: я не думаю, что вы работодатель(серьезный по крайней мере), если так себя ведете: не предупреждаете, что вам больше не нужна наша помощь, а потом берете наш скетч и не платите за него. Не имею привычки придираться к образованию, стараюсь понимать о чем говорит человек. В вашем случае, я вообще не понимаю что вы пытаетесь сказать