• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Запрос библиотек/драйверов для Sming

Кто может поделиться библиотекой для работы с max7219? Большое спасибо! И где можно почитать, посмотреть как работать с SPI?
С SPI все просто -
MISO == GPIO12
MOSI == GPIO13
CLK == GPIO14

+ какой-то GPIO для chip select по выбору и вперед.

[HASHTAG]#include[/HASHTAG] <SPI.h>
uint8_t read_from_spi, write_to_spi;

SPI.begin();
read_from_spi = SPI.transfer(write_to_spi);

и собственно все...Тут вот пример для общения со сдвиговыми регистрами 74hc165 + 74hc595 https://github.com/avr39-ripe/HeatControl/blob/thermostat/app/spi_loop.cpp
а тут - как читать из Serial. в качестве источника - ардуинка :) https://github.com/avr39-ripe/ValveControl/blob/master/app/application.cpp#L52
 

vasp1976

New member
В общем такая просьба, есть у меня часы, с большими 15 см цифрами, очень нравятся, но настраивать время можно только с IR пульта, кторый уже несколько лет как кудато ушёл :(
В часах RTC чип, DS1307, а в нём довльно быстро уплывает время, сейчас приходится периодически вытаскивать модуль с RTC чипом и настраивать его через ардуину с компа. Но както надоело.
Думаю поставить esp8266 синхронизировать её по NTP и отдавать данные часам по I2C как это делают оригинальные чиы DS. Часы глупые - время постоянно тянут с RTC, в своем контроллере вообще ничего кроме отображения не делают, так что должно сработать. Нашел готовый эмулятор https://github.com/thexeno/Firmwares/tree/master/projects/ds1307emulator но он под PIC контроллер, у меня знаний не хватает это дело портировать. Может у кого получится, врядли там очень сложно, I2C на esp есть, slave-ом оно работать может.
 

tretyakov_sa

Moderator
Команда форума
В общем такая просьба, есть у меня часы, с большими 15 см цифрами, очень нравятся, но настраивать время можно только с IR пульта, кторый уже несколько лет как кудато ушёл :(
В часах RTC чип, DS1307, а в нём довльно быстро уплывает время, сейчас приходится периодически вытаскивать модуль с RTC чипом и настраивать его через ардуину с компа. Но както надоело.
Думаю поставить esp8266 синхронизировать её по NTP и отдавать данные часам по I2C как это делают оригинальные чиы DS. Часы глупые - время постоянно тянут с RTC, в своем контроллере вообще ничего кроме отображения не делают, так что должно сработать. Нашел готовый эмулятор https://github.com/thexeno/Firmwares/tree/master/projects/ds1307emulator но он под PIC контроллер, у меня знаний не хватает это дело портировать. Может у кого получится, врядли там очень сложно, I2C на esp есть, slave-ом оно работать может.
Может просто пульт на ESP сделать?
 

vasp1976

New member
Может просто пульт на ESP сделать?
так а нету пульта, его бы я и без esp сделал :), вообще часы изначально достались мне без пульта, год выпуска у них чтото около 2002. но реально самое то на кухне, и ночью светло от них :), на atmel контроллере какомто древнем. производитель, наш, Российский, списывался с ними - просят за новый пульт 2 тыс руб. меня жаба задавит столько им отдавать за такое старьё. а узнать сейчас что он там должен слать - даже не представляю как без оригинального.
 

vasp1976

New member
ну пока праздники идут, углубился в тему, а espшка то slave-ом и не умеет на I2C висеть как я понял, так что видимо никто тут не поможет, в SDK во всех примерах оно только как мастер девайс, в инете только вопрсы подобные моему :( Жаль, хотел малой кровью обойтись, но видно придется еще и ардуину втыкать между часами и esp :(. Это будет в разы проще, на AVRку уже нашел эмулятор, даже не DS1307 а DS1374, так что в дуину двестирублевую это дело закатаю, а время по UART с espшки буду брать.
 
Последнее редактирование:

vasp1976

New member
Да сделал уже на выходных все. Пашут часики, по инету синхронизируются.
Для ардуины написал в её IDE, для espшки - в эклипсе.
По сути весь код дуины - пара строк
основное это вот:

в setup:

Wire.begin(0x68); // join i2c bus with address #68 (RTC chip)
Wire.onRequest(requestEvent); // register event
Wire.onReceive(receiveEvent);

void receiveEvent(int numbytes)
{
while(Wire.available())
{
number = Wire.read();
}
}

ну и собственно тут отвечаем на запросы часов и минут, там правда еще дофига всяческих регистров, но мне этого не нужно было
от слова совсем :)

void requestEvent()
{
Wire.write(byte(0x00));
if(number==1) Wire.write(decToBcd(iminute));//minutes
if(number==2) Wire.write(decToBcd(ihour)); //hours
}
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val)
{
return ( (val / 10 * 16) + (val % 10) );
}
 
Сверху Снизу