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

WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 20:43:08

Привет из Болгарии.
Пожалуйста помогите мне решить эту проблему зеркальное изображение https://www.youtube.com/watch?v=--MSv4j ... e=youtu.be
Скетч здесь https://cloud.mail.ru/public/3FV8/npCXv7hyE
Последний раз редактировалось mitre Пт мар 16, 2018 19:51:04, всего редактировалось 1 раз.

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 21:23:22

Привет! А сами сегменты правильно установлены?

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 21:26:31

так в скетч
#define MAX_DEVICES 4
#define CLK_PIN D5 // or SCK
#define DATA_PIN D7 // or MOSI
#define CS_PIN D6 // or SS

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 22:16:56

:dont_know: Просто кто- то считает сегменты слева- направо, а кто- то справа- налево.. Вы в каком направлении считали?

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 22:34:33

:dont_know: Просто кто- то считает сегменты слева- направо, а кто- то справа- налево.. Вы в каком направлении считали?


Не имеет значения, как сделано

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 22:48:03

Как это "не имеет значения"?
Если вы сначала выводите на индикацию первый разяд, и в это время у индикатора "подключён" последний- то оно так и будет "задом наперёд" выводиться..

я так один раз при разводке платы ошибся- и у меня первый разряд оказался последним.. :dont_know:

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Чт мар 15, 2018 22:56:52

Я не понимаю программирования и не знаю, как это должно быть

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Пт мар 16, 2018 08:59:56

А скетч у вас нормально собирается?

Если да то попробуйте следующее:
В файле max7219.h есть функция такого рода
Код:
shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, i == addr ? cmd : 0);
Таких функций shiftOut(..........) в этом файле max7219.h 10 штук.

Там сгруппировано, к примеру
Код:
void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}
смотрите внимательно, сначала передается адрес shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd); потом дата(информация) shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);.
Последовательность вывода бит MSBFIRST — слева или LSBFIRST — справа.
Поиграйтесь с комбинацией.
К примеру:
Спойлер
Код:
void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, MSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}

void sendCmdAll(byte cmd, byte data) {
  digitalWrite(CS_PIN, LOW);
  for(int i = NUM_MAX - 1; i >= 0; i--){
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, cmd);
    shiftOut(DIN_PIN, CLK_PIN, LSBFIRST, data);
  }
  digitalWrite(CS_PIN, HIGH);
}
В файле max7219.h таких групп всего 5 штук, менять надо сразу во всех группах.

Re: WIFI часы на ESP8266 и MAX7219 зеркальное изображение

Пт мар 16, 2018 20:13:40

Я сделал все правильно, и он отлично работает.
Большое спасибо Dimon456 за вашу помощь :beer:
Ответить