Подключение Max7219

W42
Offline
Зарегистрирован: 17.05.2020

Добрый день, подскажите по подключению драйвера Max7219cng.Схема подключения индикаторов, но нужно подключить отдельно 8 светодиодов, с анодами все понятно а как катоды подключать, есть какая-нибудь последовательность подключения? Например у SEG A катод DIG 0, SEG B катод DIG 1 , SEG C катод DIG 2 и т д, или можно сделать один общий катод на 8 светодиодов?

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Просто восемь диодов и все? Сажай катоды сразу на GND.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

BOOM пишет:

Просто восемь диодов и все? Сажай катоды сразу на GND.

Может все же лучше не "сразу на GND" а через токоограничивающий резистор ?
Не известно же что за диоды он там собрался использовать.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Kakmyc пишет:
[ Может все же лучше не "сразу на GND" а через токоограничивающий резистор ? Не известно же что за диоды он там собрался использовать.

Соглашусь - и главное не все на один резистор, а КАЖДЫЙ. Иначе будет меняться яркость свечения.

W42
Offline
Зарегистрирован: 17.05.2020

Kakmyc пишет:
BOOM пишет:

Просто восемь диодов и все? Сажай катоды сразу на GND.

Может все же лучше не "сразу на GND" а через токоограничивающий резистор ? Не известно же что за диоды он там собрался использовать.

 

Вот такие светодиоды

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Kakmyc пишет:
BOOM пишет:

Просто восемь диодов и все? Сажай катоды сразу на GND.

Может все же лучше не "сразу на GND" а через токоограничивающий резистор ?
Не известно же что за диоды он там собрался использовать.


Резисторы в аноды ставить нужно в этом случае.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

330 Ом и у Вас 10 диодов. На митьке как раз по 10 минимум и продают.

vk007
Offline
Зарегистрирован: 16.06.2015

Какие ещё резисторы? Нафиг они там нужны? Max7219 - это уже готовый led-драйвер.

Аноды - на SEGx. 8 катодов диодов - вместе и на DIG0. Если надо 10 диодов, то у оставшихся 2 диодов катоды тоже объединить - и на DIG1.

upd. Резистор там нужен один - порядка 10к между +5В и ISET м/с. Он задает ток для светодиодов.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

vk007 пишет:

Какие ещё резисторы? Нафиг они там нужны? Max7219 - это уже готовый led-драйвер.

Аноды - на SEGx. 8 катодов диодов - вместе и на DIG0. Если надо 10 диодов, то у оставшихся 2 диодов катоды тоже объединить - и на DIG1.

upd. Резистор там нужен один - порядка 10к между +5В и ISET м/с. Он задает ток для светодиодов.

Это готовый LED-драйвер для диодов на определенный ток. Это не значит , что цеплять туда можно абы какие.
Какие характеристики диодов ТС одному ему ведомо.

vk007
Offline
Зарегистрирован: 16.06.2015

Kakmyc пишет:
Это готовый LED-драйвер для диодов на определенный ток.

Ток задаётся резистором между +5В и ISET. По даташиту "The MAX7219/MAX7221’s maximum recommended segment current is 40mA". Кстати, я в предыдущем сообщении пропустил "минимум" - должно читаться "минимум порядка 10к". В даташите есть табличка, как выбрать этот резистор, в зависимости от диодов. Если просто, то ток через этот резистор должен течь в 100 раз меньше, чем через диод.

Kakmyc пишет:
Какие характеристики диодов ТС одному ему ведомо.

Ну так ТС дал картинку с его линейкой. Там точно не осветительные диоды, а "обычные" индикаторные. 40мА, что может отдать м/с, для них хватит выше крыши, даже лишнее.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Ну так вот в том то все и дело, что 40мА "может даже лишнее".
Или ты реально полагаешь, что ТС спрашивающий такую херь, будет подбирать резистор для режимов работы микросхемы ?

vk007
Offline
Зарегистрирован: 16.06.2015

Да кто же его знает, он об этом ещё не спрашивал )

А вот то, о чем он спрашивал

W42 пишет:
SEG A катод DIG 0, SEG B катод DIG 1 , SEG C катод DIG 2 и т д, или можно сделать один общий катод на 8 светодиодов

по правде говоря ведь можно и так и так подключать: каждый анод на свой SEG повесить, а катоды - можно все восемь в один пучок и на один DIG, а можно и каждый катод на свой отдельный DIG. Никто же не запрещает )

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Какой смысл на digX катоды сажать? Чтобы что?

vk007
Offline
Зарегистрирован: 16.06.2015

BOOM пишет:
Какой смысл на digX катоды сажать? Чтобы что?

Хотя бы для того, чтобы соблюдать культуру в схемотехнике. Если в даташите написано, что на DIG, значит на DIG. Недокументированное подключение, это конечно остроумно и оригинально, но какой смысл в таком выпендреже при стандартной задаче?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Документация - это конечно же хорошо. Но и голову на плечах иметь нужно. Какой смысл одинарные диоды и по катоду и по аноду рвать? Я понимаю для чего это нужно при подключении семисегментников,но обычные диоды? Серьезно???

vk007
Offline
Зарегистрирован: 16.06.2015

BOOM пишет:
Какой смысл одинарные диоды и по катоду и по аноду рвать? Я понимаю для чего это нужно при подключении семисегментников,но обычные диоды? Серьезно???

Если это касательно "можно и так и так подключать", то, конечно, смысла никакого. Я упомянул только о _возможности_ такого подключения, но никак не о руководстве к действию.

SLKH
Offline
Зарегистрирован: 17.08.2015

vk007 пишет:

Какие ещё резисторы? Нафиг они там нужны? Max7219 - это уже готовый led-драйвер.

Аноды - на SEGx. 8 катодов диодов - вместе и на DIG0. Если надо 10 диодов, то у оставшихся 2 диодов катоды тоже объединить - и на DIG1.

upd. Резистор там нужен один - порядка 10к 

или больше.

см. http://arduino.ru/forum/apparatnye-voprosy/max7219-i-tok-cherez-segmenty

vk007
Offline
Зарегистрирован: 16.06.2015

SLKH пишет:
или больше

Да, я в своем следующем сообщении написал, что пропустил "минимум". Сообщение уже было процитировано и я не смог исправить.

W42
Offline
Зарегистрирован: 17.05.2020

Вот такая схема получилась, нашел библиотеку led control, нашел в них примеры на матрицы и на семисегментники, пробовал через setRow что используется на матрицах, и setDigit для семисегментников, ни заработало ничего, так и не разобрался как обойтись без использования setRow и setDigit

 


#include "LedControl.h"


LedControl LC = LedControl(13, 11, 10, 1); 

void setup() 
{
  LC.shutdown(0, false);
  LC.setIntensity(0, 8);
  LC.clearDisplay(0);
}

void loop() 
{
  LC.setRow(0, 1, B10110000);
}
/////////////////////////////////
#include "LedControl.h"
LedControl LC = LedControl(13, 11, 10, 1); 

void setup() 
{
  LC.shutdown(0, false);
  LC.setIntensity(0, 8);
  LC.clearDisplay(0);
}

void loop() 
{
  LC.setDigit(0, 5, 6, false);
}

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

подключи так:
 

 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 

ЗЫ у тебя как минимум 13 с 11 попутаны

W42
Offline
Зарегистрирован: 17.05.2020

ua6em пишет:

подключи так:
 

 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 

ЗЫ у тебя как минимум 13 с 11 попутаны

Все исправил и все равно не загораются, я думаю проблема в скетче, перекопал весь интернет но не нашел как подключать к max7219 и управлять отдельно светодиодами без матриц и индикаторов.

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

W42 пишет:

не нашел как подключать к max7219 и управлять отдельно светодиодами без матриц и индикаторов.

а есть какая-то разница - с матрицами или без них?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

W42 пишет:

ua6em пишет:

подключи так:
 

 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 

ЗЫ у тебя как минимум 13 с 11 попутаны

Все исправил и все равно не загораются, я думаю проблема в скетче, перекопал весь интернет но не нашел как подключать к max7219 и управлять отдельно светодиодами без матриц и индикаторов.

попробуй пример, хоть что-то должно загораться
 

//We always have to include the library
#include "LedControl.h"

/*
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(12,11,10,1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=250;

void setup() {
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
}


/*
 This method will display the characters for the
 word "Arduino" one after the other on digit 0. 
 */
void writeArduinoOn7Segment() {
  lc.setChar(0,0,'a',false);
  delay(delaytime);
  lc.setRow(0,0,0x05);
  delay(delaytime);
  lc.setChar(0,0,'d',false);
  delay(delaytime);
  lc.setRow(0,0,0x1c);
  delay(delaytime);
  lc.setRow(0,0,B00010000);
  delay(delaytime);
  lc.setRow(0,0,0x15);
  delay(delaytime);
  lc.setRow(0,0,0x1D);
  delay(delaytime);
  lc.clearDisplay(0);
  delay(delaytime);
} 

/*
  This method will scroll all the hexa-decimal
 numbers and letters on the display. You will need at least
 four 7-Segment digits. otherwise it won't really look that good.
 */
void scrollDigits() {
  for(int i=0;i<13;i++) {
    lc.setDigit(0,3,i,false);
    lc.setDigit(0,2,i+1,false);
    lc.setDigit(0,1,i+2,false);
    lc.setDigit(0,0,i+3,false);
    delay(delaytime);
  }
  lc.clearDisplay(0);
  delay(delaytime);
}

void loop() { 
  writeArduinoOn7Segment();
  scrollDigits();
}

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Замерь ток светодиодов (каждого). Может их драйвер не тянет просто.

kalapanga
Offline
Зарегистрирован: 23.10.2016

W42 пишет:

Все исправил и все равно не загораются, я думаю проблема в скетче, перекопал весь интернет но не нашел как подключать к max7219 и управлять отдельно светодиодами без матриц и индикаторов.

1) "Все исправил" - Раз исправили схему, то приведите исправленную, которую нужно обсуждать.

2) Раз используете в скетче какую-то библиотеку, указывайте ссылку на неё. 

3) "я думаю проблема в скетче" - В каком? Не приводите кучу скетчей. Только один.

4) "все равно не загораются" - Обязательно описывайте, что Вы ожидали от Вашего скетча, и что именно Вы получили - вообще и никогда не горит ни один светодиод; горят, но не все; горят, но не те...

5) А Вы вообще, этот свой индикатор проверили хоть как-то? Он работает? Аноды-катоды не перепутали?

 

W42
Offline
Зарегистрирован: 17.05.2020

b707 пишет:

W42 пишет:

не нашел как подключать к max7219 и управлять отдельно светодиодами без матриц и индикаторов.

а есть какая-то разница - с матрицами или без них?

На матрицах нужно указывать ряд и столбец в которой должен загореться светодиод, нашел как отдельно включать светодиод и все равно не загорается.

#include "LedControl.h"
LedControl LC = LedControl(12, 11, 10, 1); 

void setup() 
{
 LC.shutdown(0, false);
 LC.setIntensity(0, 8);
 LC.clearDisplay(0);
 LC.setLed(0, 1, 1, true);
}
void loop() 
{
}

Может проблема в контактах? я не припаиваюсь к самому драйверу а вставляю его в гнездо на 24 пина

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018
/* Include the LedControl library */ 
#include "LedControl.h"

/* Create a new LedControl variable.
 * We use pins 12,11 and 10 on the Arduino for the SPI interface
 * Pin 12 is connected to the DATA IN-pin of the first MAX7221
 * Pin 11 is connected to the CLK-pin of the first MAX7221
 * Pin 10 is connected to the LOAD(/CS)-pin of the first MAX7221
 * There will only be a single MAX7221 attached to the arduino 
 */  
LedControl lc1=LedControl(12,11,10,1); 

На вашей картинке совсем не так !

W42
Offline
Зарегистрирован: 17.05.2020

BOOM пишет:

Замерь ток светодиодов (каждого). Может их драйвер не тянет просто.

Уже думал и теперь включаю только 1 светодиод а не 8 все сразу

Рабочий ток: 20мА 

vk007
Offline
Зарегистрирован: 16.06.2015

Судя по схеме, катоды светодиодов соединены вместе и подключены ко всем DIGx одновременно??? Зачем??? Они должны быть объединены вместе и подключены только в ОДНОМУ какому-то DIG, например, к DIG0!

И резистор на 10к для этого ледбара - это мало, ток будет течь около 40мА, что для зеленых обычных светодиодов много. Если учесть падение напряжение для зеленых светодиодов ориентировочно где-то около 3В и ток 10-20мА, то, согласно дш, резистор должен быть порядка 24-55кОм.

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

W42 пишет:

На матрицах нужно указывать ряд и столбец в которой должен загореться светодиод,

ну так указывайте, раз надо! неужели это сложно? Подключите один выход светодиода к seg0, другой к dig0 - и зажигайте его как позицию матрицы 0,0

че ж так тупить-то

W42
Offline
Зарегистрирован: 17.05.2020

вот исправленная схема

Komandir пишет:

/* Include the LedControl library */ 
#include "LedControl.h"

/* Create a new LedControl variable.
 * We use pins 12,11 and 10 on the Arduino for the SPI interface
 * Pin 12 is connected to the DATA IN-pin of the first MAX7221
 * Pin 11 is connected to the CLK-pin of the first MAX7221
 * Pin 10 is connected to the LOAD(/CS)-pin of the first MAX7221
 * There will only be a single MAX7221 attached to the arduino 
 */  
LedControl lc1=LedControl(12,11,10,1); 

На вашей картинке совсем не так !

W42
Offline
Зарегистрирован: 17.05.2020

b707 пишет:

W42 пишет:

На матрицах нужно указывать ряд и столбец в которой должен загореться светодиод,

ну так указывайте, раз надо! неужели это сложно? Подключите один выход светодиода к seg0, другой к dig0 - и зажигайте его как позицию матрицы 0,0

че ж так тупить-то

Я в первую очередь пробовал так сделать, когда же оно не заработало подумал что это только на матрице сработает. Может драйвер не тот что нужно, на нем написано MAX7219CNG и под этим написано +1912

W42
Offline
Зарегистрирован: 17.05.2020

vk007 пишет:

Судя по схеме, катоды светодиодов соединены вместе и подключены ко всем DIGx одновременно??? Зачем??? Они должны быть объединены вместе и подключены только в ОДНОМУ какому-то DIG, например, к DIG0!

И резистор на 10к для этого ледбара - это мало, ток будет течь около 40мА, что для зеленых обычных светодиодов много. Если учесть падение напряжение для зеленых светодиодов ориентировочно где-то около 3В и ток 10-20мА, то, согласно дш, резистор должен быть порядка 24-55кОм.

поставил резистор 47К и разорвал между собой все Dig подключив все катоды к Dig 0, и опять не заработало

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

W42 пишет:

Я в первую очередь пробовал так сделать, когда же оно не заработало подумал что это только на матрице сработает.

судя по топику, у вас тогда схема была абсолютно неверной. Теперь, когда схему поправили - есть смысл попробовать еще раз

Хотя вполне возможно, что вы уже что-то сожгли - светодиоды, мах7219 или ардуину...

 

Так, для определенности - ваш драйвер должен работать так, как описано. Если не работает - причина исклютиьно в кривых руках

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

W42 - я вообще не понимаю, зачем эта тема. Все, что вам нужно было сделать - это внимательно повторить схему и код из примеров к библиотеке.

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

https://wokwi.com/projects/328019128121033299

Набросал по быстрому ...

Отпишитесь - видно проект или нет ?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Komandir пишет:

Отпишитесь - видно проект или нет ?

Видно и даже запускается )))

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Как по мне - не нужны никакие DIG{X} в этой задаче.... Зачем? Чтобы что? Чушь....

ЗЫ: Видимо свободных 8 пинов на дуне не осталось, раз такие пляски с "максом"?

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

BOOM пишет:

Как по мне - не нужны никакие DIG{X} в этой задаче.... Зачем? Чтобы что? Чушь....

ты уверен, что при подключении напрямую к GND вместо DIG0 токовый сенсор внутри мах7219 будет работать?

Я вот точно не знаю, надо блок-схему драйвера смотреть

W42
Offline
Зарегистрирован: 17.05.2020

BOOM пишет:

Как по мне - не нужны никакие DIG{X} в этой задаче.... Зачем? Чтобы что? Чушь....

ЗЫ: Видимо свободных 8 пинов на дуне не осталось, раз такие пляски с "максом"?

Вообще мертвое все, ардуино новую спецом купил так как уже не первый день пытаюсь запустить, драйверов я 16 штук купил уже почти все перепробовал, лед бар рабочий проверял от батарейки 3в, вместо него повесил обычный один светодиод и все равно ничего не горит, не могут же драйвера все не рабочими быть, ардуино проверял с другими скетчами - не сгорела. ХЗ что я за рукожоп...

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

Я вот точно не знаю, надо блок-схему драйвера смотреть

Сомнение посеял. Это хорошо. Надо глянуть...

Хотя, что глядеть - когда он семисегментниками управляет - ничего он не измеряет, просто на GND прижимает эти DIG{X} и все. Значит для этой задачи - нафиг не нужно.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

W42 пишет:

Вообще мертвое все, ардуино новую спецом купил так как уже не первый день пытаюсь запустить

Так может рановато на драйвера замахиваться, если даже просто на пине зажечь не получается?

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

W42 пишет:

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

вообще-то могут, если все у одного продавца куплены.

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

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

вообще-то могут, если все у одного продавца куплены.

Да какие драйвера, если просто на лапе не может зажечь (как я понял).

W42
Offline
Зарегистрирован: 17.05.2020

BOOM пишет:

b707 пишет:

вообще-то могут, если все у одного продавца куплены.

Да какие драйвера, если просто на лапе не может зажечь (как я понял).


не правильно понял, мне на меге пинов мало + она слишком громоздкая, хочу сделать компактно

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

W42 - чудес не бывает. Схема у вас теперь рабочая, библиотека тоже.

Если не работает - значит или подключено не по схеме, или с железом проблемы.

 

вы где территориально? Найдите рядом с собой человека, который точно разбирается - и пусть он проверит ваши драйверы.

 

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

BOOM пишет:

Сомнение посеял. Это хорошо. Надо глянуть...

Хотя, что глядеть - когда он семисегментниками управляет - ничего он не измеряет, просто на GND прижимает эти DIG{X} и все. Значит для этой задачи - нафиг не нужно.

посмотрел, на 7219 пины DIGx переключаются между GND и VCC при включении и выключении цифр.

Цитата из даташита:

The MAX7219 pulls the digit outputs DIGx to V+ when turned off.

Так что ты прав, если число диодов не превышает 8 - можно кинуть все катоды прямо на GND.

А вот обьединять все DIGx на одну линию, как сделал ТС - не стоит, можно пожечь микросхему.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

Так что ты прав, если число диодов не превышает 8 - можно кинуть все катоды прямо на GND.

Дык да. А с учетом, что ты в даташите выяснил - то можно не только на SEG{x}, но и на DEG{X} подкинуть. И сколько там всего получается то? Шишнаццать? Только управлять без библиотек ужо (наверное)...

W42
Offline
Зарегистрирован: 17.05.2020

b707 пишет:

W42 - чудес не бывает. Схема у вас теперь рабочая, библиотека тоже.

Если не работает - значит или подключено не по схеме, или с железом проблемы.

 

вы где территориально? Найдите рядом с собой человека, который точно разбирается - и пусть он проверит ваши драйверы.

 

Я пока хз как быть, я вчера целый день пытался подключить , и 12 и 13 пин использовал, все делал по примерам и ничего не заработало, ардуино проверил после всего этого - работает нормально, драйвер каждый раз другой ставил, схема нарисована точь в точь как спаяно, лед бар рабочий, как можно проверить драйвер? может все таки с ними проблема, я когда их покупал не думал что будет такой гемор подключить их

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

W42 пишет:

как можно проверить драйвер? может все таки с ними проблема

Запусти скетч с примером семисегментника и пройдись мультиметром по пинам. Может что покажет мультиметр. Но мне кажется только осциллографом можно увидеть....

W42
Offline
Зарегистрирован: 17.05.2020

BOOM пишет:

W42 пишет:

как можно проверить драйвер? может все таки с ними проблема

Запусти скетч с примером семисегментника и пройдись мультиметром по пинам. Может что покажет мультиметр. Но мне кажется только осциллографом можно увидеть....

Запустил, на всех SEGах 0.25в, когда замыкаешь ISET и рядом с ним SEG G - светодиод горит, если замкнуть V+ и рядом SEG C - тоже горит