Обсуждаем контроллеры компании Atmel.
Ответить

Re: помогите переписать код ардуино пожалуйста

Ср мар 22, 2023 22:30:34

заменил в 7 строке слово RTC time; на RTC_DS1307 RTC


time это переменная типа RTC.
После замены вы получили переменную RTC типа RTC_DS1307

Re: помогите переписать код ардуино пожалуйста

Ср мар 22, 2023 22:31:46

заменил в 7 строке слово RTC time; на RTC_DS1307 RTC
А зачем???
теперь не нравится строчка 30
Совершенно правильно не нравится. Библиотеки нет. Ссылки на неё тоже нет. Так откуда же взяться модулю time?
что делать-то
Делать правильные шаги и не делать неправильные. Вот ведь человек указал на источник ошибки и даже сказал, как это исправить:
программа-компилятор просто не может найти подключаемый файл RTC.h
Убедитесь, что такой файл действительно существует в указанной папке.
А я добавлю: не просто убедитесь, а положите её туда. И пока не положите, последующих вопросов не задавайте. Делайте всё пошагово. Не бегите впереди паровоза.
есть тут кто может помочь?
Да, есть.
codenamehawk писал(а):Тогда уж попробуйте RTC_DS1307 time;
В многих библиотеках (возможно и в этой) есть примеры, начните с них.
Вот зачем советовать человеку, который в программировании ни в зуб ногой, другую библиотеку? И зачем ему советовать другие примеры, когда у него уже есть нужный ему пример, а он просто не может его запустить? Ему нужна библиотека RTC, а он не может её найти. Вот и надо её найти и положить в libraries, а не предлагать ему то, чего он не понимает.

Re: помогите переписать код ардуино пожалуйста

Ср мар 22, 2023 22:37:28

В 30 строчке вы обращайтесь к переменной time которой уже нет, собственно и ошибка об этом говорит

Добавлено after 5 minutes 17 seconds:
А вообще вам просто надо через менеджер библиотек установить баблиотеку RTC

Снимок.PNG
(61.71 KiB) Скачиваний: 36

Re: помогите переписать код ардуино пожалуйста

Ср мар 22, 2023 23:00:58

да в том то и дело, что у меня ни в библиотеке, ни слева в колонке нет баблиотеки RTC, а в инете находится только iarduino_RTC.h, я её вставил, а она не работает. Есть ещё RTCZero.h, но она тоже не работает. Куда деласьта библиотека, раньше же всё загружалось, а теперь её просто нигде нет.
Изображение

Re: помогите переписать код ардуино пожалуйста

Ср мар 22, 2023 23:05:53

Вы в поиск слева вверху вводили ее название?

Добавлено after 2 minutes 22 seconds:
Выбираете управление библиотеками, ищите ее по названию и загружаете.

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 00:05:21

Да, вот так нашёл, только он устанавливается как #include <I2C_RTC.h> а не #include <RTC.h> и тоже не работает.

Добавлено after 16 minutes 8 seconds:
может всё же не мучится с этой библиотекой, если её нет.
Попробовал загрузить другую, #include <iarduino_RTC.h>, изменил 4 строчку на RTC_DS1307 RTC; затем вот эту iarduino_RTC time(RTC_DS1307,5,7,6); и теперь я так понял осталось поменять только одну - сейчас она выглядит так dataFile.print(time.gettime("d-m-Y, H:i")); и вот она зараза даёт ошибку, что тут делать я уже не знаю, перепробовал кучу вариантов - не угодал.
пишет:
Compilation error: 'time' was not declared in this scope

вот целиком скетч
#include <iarduino_RTC.h>
#include <SPI.h>
#include <SD.h>
RTC_DS1307 RTC;

//Set by default for the SD card library
//MOSI = Pin 11
//MISO = Pin 12
//SCLK = PIN 13
//We always need to set the CS Pin
const int CS_PIN =10;
long datet;
//We set this high to provide power
const int POW_PIN =8;

int boiler = 14;
int light = 15;
int motion = 16;

void setup()
{
pinMode(boiler, INPUT_PULLUP);
pinMode(light, INPUT_PULLUP);
pinMode(motion, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);

iarduino_RTC time(RTC_DS1307,5,7,6);

time.settime(0, 44, 15, 22, 03, 23); // секунды, минуты, часы, дата, месяц, год // вводить

//CS pin is an output
pinMode(CS_PIN, OUTPUT);

//Card will draw power from pin 8, so set it high
pinMode(POW_PIN, OUTPUT);
digitalWrite(POW_PIN, HIGH);

if (!SD.begin(CS_PIN))
{
return;
}
}

void loop()
{
int boiler_status = 0;
int light_status = 0;
int motion_status = 0;

boiler_status = digitalRead(boiler);
light_status = digitalRead(light);
motion_status = digitalRead(motion);

//Open a file and write to it.
File dataFile = SD.open("log.csv", FILE_WRITE);
if (dataFile)
{
dataFile.print(time.gettime("d-m-Y, H:i")); ВОТ ЭТА СВОЛОЧ НЕ ПРАВИЛЬНО
dataFile.print("| ");

if(!boiler_status){
dataFile.print("Печь включена | ");
}else {
dataFile.print("Печь выключена | ");
}


if(!light_status){
dataFile.print("Свет включен | ");
}else {
dataFile.print("Свет выключен | ");
}

if(!motion_status){
dataFile.print("Движение");
}else {
dataFile.print("Нет движения");
}

dataFile.println("");
dataFile.close();
}

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(200); // wait for a second

delay(600000); //10 минут в миллисекундах
}
Последний раз редактировалось java Чт мар 23, 2023 00:10:27, всего редактировалось 1 раз.

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 00:12:58

А если эта?
https://github.com/lstoll/arduino-libra ... /RTC/RTC.h

Добавлено after 4 minutes 49 seconds:
Compilation error: 'time' was not declared in this scope

#include <iarduino_RTC.h>
#include <SPI.h>
#include <SD.h>
RTC_DS1307 RTC;

//Set by default for the SD card library
//MOSI = Pin 11
//MISO = Pin 12
//SCLK = PIN 13
//We always need to set the CS Pin
const int CS_PIN =10;
long datet;
//We set this high to provide power
const int POW_PIN =8;

int boiler = 14;
int light = 15;
int motion = 16;

void setup()
{
pinMode(boiler, INPUT_PULLUP);
pinMode(light, INPUT_PULLUP);
pinMode(motion, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);

iarduino_RTC time(RTC_DS1307,5,7,6);

time.settime(0, 44, 15, 22, 03, 23); // секунды, минуты, часы, дата, месяц, год // вводить

//CS pin is an output
pinMode(CS_PIN, OUTPUT);

//Card will draw power from pin 8, so set it high
pinMode(POW_PIN, OUTPUT);
digitalWrite(POW_PIN, HIGH);

if (!SD.begin(CS_PIN))
{
return;
}
}

void loop()
{
int boiler_status = 0;
int light_status = 0;
int motion_status = 0;

boiler_status = digitalRead(boiler);
light_status = digitalRead(light);
motion_status = digitalRead(motion);

//Open a file and write to it.
File dataFile = SD.open("log.csv", FILE_WRITE);
if (dataFile)
{
dataFile.print(time.gettime("d-m-Y, H:i")); ВОТ ЭТА СВОЛОЧ НЕ ПРАВИЛЬНО
dataFile.print("| ");

if(!boiler_status){
dataFile.print("Печь включена | ");
}else {
dataFile.print("Печь выключена | ");
}


Красным выделена не правильная строка, из-за нее ошибка. Здесь должно быть объявление time как в первоначальном варианте. Попробуйте скачать библиотеку та что по ссылке.

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 17:12:05

У меня компилируется....


Библиотека iarduino_RTC 2.0 Скачивал отсюда

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 17:52:32

iarduino_RTC time(RTC_DS1307);


Это больше похоже на правду чем у автора :)

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 18:19:38


я не могу это скачать. я не нашёл кнопки, чтобв скачать, тупо нажимая на всё подряд результатов не дало :shock:

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 18:27:31

кнопка Raw
можно кликнуть и потом сохранить. можно вызвать контекстное меню на ней и выбрать "Сохранить ссылку как..."

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 19:28:38

У меня компилируется....


LEVV2006 О да! Огромное вам спасибо, это и у меня скомпелировалось, залилось в плату и отлично всё работает! Не знаю что вы там сделали, но вы волшебник! Ещё раз благодарю!!!

Добавлено after 5 minutes 28 seconds:
кнопка Raw

нажимая кнопку Raw появляется просто чистая страница и на ней скетч. Его копировать надо?
Изображение

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 19:31:12

нажимая кнопку Raw появляется просто чистая страница и на ней скетч. Его копировать надо?


Правой кнопкой мыши нажимаете и выбираете "Сохранить как..."

Re: помогите переписать код ардуино пожалуйста

Чт мар 23, 2023 19:47:08

Правой кнопкой мыши

вот же блин! Кто мог подумать :)) Спасибо большое за подсказку, я нифига не догадался. Всё получилось!

Re: помогите переписать код ардуино пожалуйста

Вс апр 02, 2023 16:14:14

Здравствуйте. в процессе эксплуатации нарисовалась новая проблема, которой раньше не было. Если вытащить карту, чтобы посмотреть что на ней записано, а потом опять вставить, то на неё перестаёт писать показатели. Если нажать кнопку на плате адруинки, то писать начинает, но дату и время устанавливает ту, которая была записана при програмировании. Как это можно исправмть?

Re: помогите переписать код ардуино пожалуйста

Вс апр 02, 2023 16:28:15

java писал(а):Как это можно исправмть?

выше писали как...
выкинуть все библиотеки ардуины...
А лучше вместе с ардуиной ))
и написать всё самому...
microSD.c
(12.04 KiB) Скачиваний: 29

у меня ничего не глючит)) потому что у меня нет ни библиотеки для ардуины, ни самой ардуины))
:))

Re: помогите переписать код ардуино пожалуйста

Вс апр 02, 2023 18:55:15

и написать всё самому...

Вот бы люди, задающие вопросы по готовым библиотекам, запросто писали свои :))

Re: помогите переписать код ардуино пожалуйста

Вс апр 02, 2023 21:51:37

и написать всё самому...

Открыл в CodeVision AVR, я так понял вы для меня написали програмку на меге 128! Огромное вас спасибо! Обязательно соберу и посмотрю что у меня получится.
А сейчас насчёт косяка - ларчик просто открвывлся. когда заливаешь в адруину программу, перед этим выставляешь время и дату, но нужно выставить на пару минут вперёд, и с этой датой залить программу в адруинку, потом сразу же перед строкоё время дата ставить нужно две косые полоскт // и сразу же залить ещё раз. Теперь после того, как вытащил карту, посмотрел что там написано, опять её вставляешь и нажимаешь кнопку сброса на адруинке, данные продолжают записыватся и время тикает дальше, как пололжено. сли кнопку не нажать, писать не будет.
Вот такая хитрость!

Re: помогите переписать код ардуино пожалуйста

Пн апр 03, 2023 16:21:51

java писал(а):я так понял вы для меня написали програмку на меге 128! Огромное вас спасибо!

меге 128 ?
а какая разница ?
у них производители разные ?
:)))
ну если не нравится мега 128... перепишем под других производителей))
:)))
переписал программу под ардуино mini...
Ардуино_mini_microSD.c
(12.03 KiB) Скачиваний: 25

переписал программу под ардуино UNO...
Ардуино_UNO_microSD.c
(12.04 KiB) Скачиваний: 19

и т.д.

это пипец какой-то...))
:)))

Re: помогите переписать код ардуино пожалуйста

Пн апр 03, 2023 16:41:26

А мини от Уно чем отличается?
Ответить