3d_killer

Members
  • Публикации

    728
  • Зарегистрирован

  • Посещение

Репутация

4 Обычный

О 3d_killer

  • Звание
    Завсегдатай

Электроника

  • Стаж в электронике
    6-10 лет

Посетители профиля

1 584 просмотра профиля
  1. Проблема с модулем ds3231, постоянный сброс времени

    спасибо, попробую собрать, посмотреть что получится
  2. Проблема с модулем ds3231, постоянный сброс времени

    нашел причину данного поведения, понять почему так происходит я не смог, при питании от USB если по питанию стоят конденсаторы на 4000 мкф, происходит сброс, если кондеров нет, то и сброса нет, при питании через ИИП 5в данной платы сброса не происходит хоть с конденсаторами хоть без них
  3. Проблема с модулем ds3231, постоянный сброс времени

    Немного приблизился к истине, была платка еще у меня ардуино нано, подключил модуль к ней, записал туже прошивку и о чудо! все стало нормально работать, время не сбивается. А вот плата которая мне нужна имеет чип Atmega 128 что в ней может быть не так? куда копать?
  4. Проблема с модулем ds3231, постоянный сброс времени

    Заехал в чип и дип, купил оригиналы DS3231SN запаял один, работает точно так же...
  5. Проблема с модулем ds3231, постоянный сброс времени

    попробовал поменять библиотеку, первые раз 5 отключений время шло офф лайн потом начало сбрасываться опять, попробовал новую батарейку на ней 3.37 вольта, результат тот же это тестирую все на готовом модуле этих часов, всю схемотехнику проверил все четко, везде есть контакт и схема правильная, на сколько возможен такой вариант что 2 модуля попались глючные? кстати шли с батарейкой на которых по 2,27 вольта. Самоделка с микрой с радиорынка ведет себя так же. Я прям не знаю куда копать...
  6. Проблема с модулем ds3231, постоянный сброс времени

    Подтянул через резистор 10 ком, хотя в описании говорится что этого делать не нужно, ситуация не изменилась (кстати, если не подтягивать к + питания на донной лапе и так присутствует 5 вольт), хотел прочитать регистры статуса но не пойму как это сделать написал функцию в библиотеке #define REG_CON 0x0e uint8_t DS3231::readEOSC() { uint8_t reg = _readRegister(REG_CON); return reg; } она возвращает просто ноль, думал как то по статусу понять что с ней
  7. Проблема с модулем ds3231, постоянный сброс времени

    лог 1 это что?
  8. Проблема с модулем ds3231, постоянный сброс времени

    Вот цитаты из документации
  9. Проблема с модулем ds3231, постоянный сброс времени

    не кажется, он и висит, оригинал схемы вот, да и модуль у меня есть такой же китайский (прозванивал на нем эту лапу он и там не соединен), но этот модуль с такой же проблемой
  10. Собрал модуль по представленной ниже схеме, все что мне не нужно из оригинала я убрал, модуль заработал без проблем, проблема возникла при отключении питания (цепь заряда со схемы я так же убрал так как использую батарейки на 3 вольта а не аккумуляторы), проблема заключается в том что после отключения питания часы сбрасываются и опять начинают идти с нуля, кстати заметил что это происходит не всегда а в 90% случаев отключения питания, а то и чаще. Проверил питание от батареи, при выключении питания на ноге 14 присутствует +(от 2.8 до 3.27вольта так как пробовал разные батарейки), данные батарейки без проблем работают с модулем DS1307, в схеме ошибок нет, флюс отмыт, пробовал менять микросхему, но толку особо это не дало. Так же поиски подобной проблемы в интернете не увенчались успехом. Может кто сталкивался с подобным явлением?
  11. не работают аналоговые входы

    на сколько я пробовал аналоговые пины объявлять не нужно (по крайней мере в ардуино), без вот этого pinMode(A0, INPUT); должно работать, сталкивался с подобным, после объявления такая же ситуация была #define in A0 void setup() { Serial.begin(9600); } void loop() { int rawReading = analogRead(in); float volts = rawReading / 204.6; Serial.println(volts); delay(1000); }
  12. Модуль ic2 работа часов и внешней памяти EEPROM вместе

    Все заработало, проблема была в том что от часов я использовыход sqw с частотой 1гц для прерывания, в этом прерывании и производил попытку записи и чтения, когда сделал это в основной программе то все заработало
  13. Модуль ic2 работа часов и внешней памяти EEPROM вместе

    Библиотека eeprom маленькая там 4 функции всего, библиотека часов чуть побольше, но тоже ничего особого, задается адрес и Wire.beginTransmission(); и Wire.endTransmission(); могу сказать одно, что лучше я не напишу... да и я понимаю что лучше писать не на Arduino, но знаний пока не хватает, да и ветка вроде как ардуино, или я перепутал?
  14. Не могу заставить работать модуль, отдельно все работает, но если хочу и считывать внешнюю EEPROM и работать с часами, то часы стоят и показывают ерунду, вот скетч #include <Wire.h> #include <Eeprom24C32_64.h> #define EEPROM_ADDRESS 0x50 static Eeprom24C32_64 eeprom(EEPROM_ADDRESS); #include <DS1307.h> // Init the DS1307 DS1307 rtc(SDA, SCL); void setup() { // put your setup code here, to run once: // Initialize serial communication. Serial.begin(9600); // Initialize EEPROM library. eeprom.initialize(); const word address = 0; // Write a byte at address 0 in EEPROM memory. Serial.println("Write byte to EEPROM memory..."); eeprom.writeByte(address, 0xAA); // Write cycle time (tWR). See EEPROM memory datasheet for more details. delay(10); // Read a byte at address 0 in EEPROM memory. Serial.println("Read byte from EEPROM memory..."); byte data = eeprom.readByte(address); // Print read byte. Serial.print("Read byte = 0x"); Serial.print(data, HEX); Serial.println(""); //Запуск времени // Set the clock to run-mode rtc.halt(false); // Set SQW/Out rate to 1Hz, and enable SQW rtc.setSQWRate(SQW_RATE_1); rtc.enableSQW(true); } void loop() { // put your main code here, to run repeatedly: delay(1000); Serial.println(rtc.getTimeStr()); } IC2 сканер видит 2 устройства с разными адресами, может кто сталкивался? а вот тест часов #include <Wire.h> #include <Eeprom24C32_64.h> #define EEPROM_ADDRESS 0x50 static Eeprom24C32_64 eeprom(EEPROM_ADDRESS); #include <DS1307.h> // Init the DS1307 DS1307 rtc(SDA, SCL); void setup() { // put your setup code here, to run once: // Initialize serial communication. Serial.begin(9600); // Initialize EEPROM library. // eeprom.initialize(); // const word address = 0; // Write a byte at address 0 in EEPROM memory. Serial.println("Write byte to EEPROM memory..."); // eeprom.writeByte(address, 0xAA); // Write cycle time (tWR). See EEPROM memory datasheet for more details. delay(10); // Read a byte at address 0 in EEPROM memory. Serial.println("Read byte from EEPROM memory..."); // byte data = eeprom.readByte(address); // Print read byte. Serial.print("Read byte = 0x"); // Serial.print(data, HEX); Serial.println(""); //Запуск времени // Set the clock to run-mode rtc.halt(false); // Set SQW/Out rate to 1Hz, and enable SQW rtc.setSQWRate(SQW_RATE_1); rtc.enableSQW(true); } void loop() { // put your main code here, to run repeatedly: delay(1000); Serial.println(rtc.getTimeStr()); }
  15. Не могу разобраться, какие только библиотеки не пробовал, часы иногда при включении МК не стартуют, стоят и все, иногда стартуют (работа без батарейки), попробовал выставлять время перед запуском, тогда стартует постоянно, как принудительно их запустить. Документацию я читал но не пойму как эти биты переставлять.... Вот программа при которой часы стартуют всегда, но как мне их запускать всегда без выставления времени? #include <Wire.h> #include "RTClib.h" #include <avr/wdt.h> //Библиотека сторожевого таймера RTC_DS1307 RTC; void setup(void) { wdt_enable(WDTO_2S); Serial.begin(19200); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) {Serial.println("RTC is NOT running!");} // строка ниже используется для настройки даты и времени часов RTC.adjust(DateTime(__DATE__, __TIME__)); } void loop(){ delay(1000); wdt_reset(); //Главная Serial.print("page top"); Serial.write(0xff); Serial.write(0xff); Serial.write(0xff); //Получаем время DateTime now = RTC.now(); Serial.print("top.t0.txt="); Serial.print("\""); Serial.print(now.hour()); Serial.print("\""); Serial.write(0xff); Serial.write(0xff); Serial.write(0xff); Serial.print("top.t1.txt="); Serial.print("\""); Serial.print(now.minute()); Serial.print("\""); Serial.write(0xff); Serial.write(0xff); Serial.write(0xff); Serial.print("top.t2.txt="); Serial.print("\""); Serial.print(now.second()); Serial.print("\""); Serial.write(0xff); Serial.write(0xff); Serial.write(0xff); }