Несовместимость плат???

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

Здравствуйте, сразу к делу:

Есть готовый рабочий код на Arduino UNO R3. Суть: просто читает DS3231 (модуль часов реального времени) и выдаёт на 7-сегментный дисплей в формате часы-минуты-секунды-день недели.

Основная суть вопроса: на UNO R3 всё работает прекрасно с учётом подключения контактов SDA и SCL к соответствующим на самой уно, НО как только собираю и запускаю ту же схему и код на Nano- абсолютно отказывается работать модуль часов!

Скетч только для дисплея (бегущая строка, змейка символов и тд)- работает. Часы же одиночно- нет.

Я знаю что на Nano порты SDA и SCL используются как пины А4 и А5 (либо D4 и D5), но при подключении к ним- ноль реакции DS3231.

Могу грешить на код, что не хватает какой-либо библиотеки, оставлю его снизу для вашего изучения.

Отвечаю сразу на возможные вопросы:

1)плата нано полностью исправна, проверял с кучей шилдов, все супер

2)с джамперами (проводами) тоже всё ок, подключение исправно, контакт везде имеется

3)дни недели начинаются с 7-го, потому что в модуле часов залита американская прошивка, где неделя начинается с воскресенья. Исправил это так)

_________________________________________________________________________________

#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7] = {7, 1, 2, 3, 4, 5, 6};

#include "LedControl.h"
LedControl lc=LedControl(11,10,9,1);

void setup() {
       if (! rtc.begin()) {
       abort();
       }
  if (rtc.lostPower()) {
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));  //установка времени и даты компиляции кода
  }

  lc.shutdown(0,false);  // подъём дисплея
  lc.setIntensity(0,0);  // яроксть- второе число 0-15
  lc.clearDisplay(0);    // очистка дисплея при запуске
}

void loop() 
{
  DateTime now = rtc.now();
  lc.setDigit(0,7, now.hour() / 10,false);
  lc.setDigit(0,6, now.hour() % 10,false); 
  lc.setDigit(0,5, now.minute() / 10,false);
  lc.setDigit(0,4, now.minute() % 10,false);
  lc.setDigit(0,3, now.second() / 10,false);
  lc.setDigit(0,2, now.second() % 10,false);
  delay(600);
  lc.setDigit(0,6, now.hour() % 10,true);
  lc.setDigit(0,4, now.minute() % 10,true);   //три мигающие точки
  lc.setDigit(0,2, now.second() % 10,true);
  delay(400);
  lc.setRow(0,1,0x1);
  lc.setDigit(0,0, daysOfTheWeek[now.dayOfTheWeek()], false);
}

 

Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013

нано и уно на одном контроллере собраны, нет там разницы

используются как пины А4 и А5 (либо D4 и D5), никаких либо, только А4 и А5

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

Да, я тоже про это знаю, но повторюсь- на этих пинах и без изменений кода- ничего не работает (п.с. основная тема вопроса).

v258
Offline
Зарегистрирован: 25.05.2020

А запитываете часовой модуль от чего? Если от 3,3В, то запитайте от 5В

BOOM
BOOM аватар
Онлайн
Зарегистрирован: 14.11.2018

А что за нанка то? Где покупали?

Может клон какой херовенький (wavgat какой или ещё что)?

Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013

OwL_1703 пишет:

Да, я тоже про это знаю, но повторюсь- на этих пинах и без изменений кода- ничего не работает (п.с. основная тема вопроса).

значит у тебя не нано.

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

5В. пробовал и на 3.3, разницы нет

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

Кстати, только заметил, когда осматривал- чип wavgat-овский.

Это как-то портит малину?

дальше приписка просто идёт ATMega328P

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020
v258
Offline
Зарегистрирован: 25.05.2020

По ссылке - обычная нано. Вавгатовские нано лежат здесь. Если у вас такая же, то вам нужно скачать файлы поддержки платы. Там, на странице ниже есть адрес

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

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

Jeka_M
Jeka_M аватар
Онлайн
Зарегистрирован: 06.07.2014

OwL_1703 пишет:

Это как-то портит малину?

Да, Wavgat не производит оригинальные чипы ATmega. Они делает клоны, частично совместимые с ATmega.

v258
Offline
Зарегистрирован: 25.05.2020

OwL_1703 пишет:

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

Это не полный аналог атмеги. По ссылке, что я вам дал, есть замечание

Очень важный вопрос:


Многие клиенты сообщили, что скорость WAVGAT NANO была медленнее, чем у Arduino NANO. Реальная скорость была такой же.Причина, почему многие клиенты медленно в оценке продуктов, это то, что вы выбираете программное обеспечение Arduino NANO!

Пожалуйста, выберите WAVGAT NANO.

Скачать информацию: https://drive.google.com/open?id=10gwrG9uTDwaEO-7EudsmBkfgdcyrcABI

 

Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013

OwL_1703 пишет:

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

если я правельно помню, там библиотечка для и2с другая, вот и не работает.

BOOM
BOOM аватар
Онлайн
Зарегистрирован: 14.11.2018

Wavgat не на столько уж дешевле, чтобы потом гемороиться так сильно. Я беру в магазине Great Wall, ни разу пока не подводили.  

v258
Offline
Зарегистрирован: 25.05.2020

BOOM пишет:

Wavgat не на столько уж дешевле, чтобы потом гемороиться так сильно. Я беру в магазине Great Wall, ни разу пока не подводили.  

+100500. Тоже повелся на дешевизну, лежит теперь пара вавгатовских про мини - вот думаю, куда бы приколхозить. И всего-то рублей на двадцать дешевле ))

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

а можешь здесь поподробнее?

Я пытался использовать библиотеку Wire.h- но она даже не определяет подключение DS3231

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

Т.е. вы все грешите на дешевизну платы, и следовательно из-за этого там и не работает у меня I2C???

b707
Offline
Зарегистрирован: 26.05.2017

OwL_1703 - напишите четко, к каким пинам подключаете I2C? - К А4 А5 или D4 D5 ?

v258
Offline
Зарегистрирован: 25.05.2020

OwL_1703 пишет:

Т.е. вы все грешите на дешевизну платы, и следовательно из-за этого там и не работает у меня I2C???

Дешевизна платы - это следствие. Просто на ней стоит не Atmega328, а китайский микроконтроллер, который не полностью совместим с атмегой. Вы скачали файлы по ссылке выше? Там есть библиотеки, которые нужно использовать с этой платой, в том числе Wire. И в IDE нужно выбирать Wavgat Nano

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

Изначально подключал к А4 и А5, кучу раз перепроверив- ничего. После этого на каком-то забугорном форуме нашёл, что у кого-то получилось через подключение к D4 и D5- но как понимаете... та же фЫгня)

OwL_1703
OwL_1703 аватар
Offline
Зарегистрирован: 19.07.2020

Драйвера по ссылке установил, библиотеки тоже, попытался включить <Wire.h>- либо где в коде что-то не так, либо ОПЯТЬ ничего не работает(

(в устройстве выбрано WAVGAT Nano)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Чем делать бессмысленные телодвижения, напиши лучше, что на самом контроллере написано.