Jump to content
Alex_Chpook

Проблема с светодиодной матрицей с драйвером max7219

Recommended Posts

Всем привет. Хочу сделать светодиодную матрица с драйвером max7219 на Atmega324P. 

При попытке смоделировать в Proteus вылазят ошибки:image.thumb.png.bbc38e7de2e6a41377c9d62ba3e2ba8a.png

Собирал вроде всё правильно, текст в EEPROM загружен, но на матрицах выводится непонятно что и на всех одно и тоже. Может я что-то напутал, когда собирал((

Подскажите пожалуйста кто знает))

Проект со схемой Proteus и прошивку прикрепляю.
И просто схема: 

 

image.png

Строка c MAX7219.rar

Share this post


Link to post
Share on other sites

У тебя матрицы подключены неправильно

1 матрица нижние выводы r1-r8

2 матрица нижние выводы r9-r16

3 матрица нижние выводы r17-r24

и MAXы также.

 

Share this post


Link to post
Share on other sites
1 час назад, skripach сказал:

У тебя матрицы подключены неправильно

1 матрица нижние выводы r1-r8

2 матрица нижние выводы r9-r16

3 матрица нижние выводы r17-r24

и MAXы также.

Спасибо))

Вот  блин)) Видимо не внимательно прочитал, сейчас разберусь)) Думал все строки подключаются вместе))

Ещё такой вопрос, если я правильно понял то к МАКСам в ПИН ISET (для управления яркостью) нужно ставить резистор на 10кОм и конденсатор как на этой схеме:MAX7219_shema.jpg

И что мне ещё нужно чтобы в реальности можно было собрать подобное устройство? Т.к. я новичок и много не знаю, то могу предположить, что нужен диодный мост и стабилизатор напряжения для подключения к Атмеге. Может быть что-то ещё?

Edited by Alex_Chpook

Share this post


Link to post
Share on other sites

Интеллектуальные ключи верхнего плеча семейства PROFET™+2 12V от Infineon

омпания Infineon представила новое семейство защищенных силовых ключей PROFET™+2 12V. Изделия объединяют в себе функции диагностики и различные защиты. Ключи PROFET™+2 12V имеют одно из самых низких в отрасли сопротивлений в открытом состоянии RDS(ON) (от 2,6 мОм) и выпускаются в миниатюрном корпусе TSDSO-14 с шагом выводов 0,65 мм. Благодаря функции ReverseON все семейство соответствует строгим требованиям по защите от обратной полярности питания, впервые реализованной в одном чипе.

Подробнее

48 минут назад, Alex_Chpook сказал:

нужно ставить резистор на 10кОм и конденсатор

 

48 минут назад, Alex_Chpook сказал:

стабилизатор напряжения для подключения к Атмеге

да нужно.

 

48 минут назад, Alex_Chpook сказал:

нужен диодный мост

смотря какой  будет блок питания

http://zelectro.cc/atmega_main

Edited by skripach
--

Share this post


Link to post
Share on other sites

Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

Подробнее

Вот что сейчас получилось.

Скрытый текст

image.thumb.png.a9ec69d84b5531f81ce76e4b6cfa3191.png

Вроде уже всё хорошо. Светят правда не ярко, я думал лучше будет. Может это как-то решить можно или это из-за Протеуса?
Вот только не понял почему матрицы пришлось переворачивать против часовой стрелки, вроде столбцы-строки как выходы:

Скрытый текст

image.png.aede649f504014dfd26d0a7a9dcb6629.png

Позже попробую сделать стабилизатор))
Ещё может кто подскажет, как матрицы мои можно в данном случае вместе соединить в Протеусе? Ведь мешают метки(соединения).:huh:

 

27 минут назад, skripach сказал:

 

да нужно.

 

смотря какой  будет блок питания

http://zelectro.cc/atmega_main

Спасибо за ссылку))

Edited by Alex_Chpook

Share this post


Link to post
Share on other sites

Изолированный помехоустойчивый трансивер RS-485 ADM2795E Analog Devices

Оборудование на промышленных предприятиях подвергается воздействию кондуктивных, излучаемых и магнитных помех, а также скачков напряжения, и должно соответствовать требованиям стандартов серии IEC 61000. ИС ADM2795E производства Analog Devices сертифицирована на устойчивость к ЭСР по стандарту IEC 61000-4-2, и подходит для эксплуатации в жестких условиях. Представляем результаты испытаний на устойчивость к кондуктивным и излучаемым радиопомехам, а также устойчивость к магнитному полю.

Подробнее

4 минуты назад, Alex_Chpook сказал:

Светят правда не ярко,

в протеусе яркость матриц не регулируеться

 

6 минут назад, Alex_Chpook сказал:

почему матрицы пришлось переворачивать против часовой стрелки

они так нарисованы

Share this post


Link to post
Share on other sites
29 минут назад, Alex_Chpook сказал:

Ведь мешают метки(соединения).:huh:

забей!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • только с экраном и по земляному в т.ч. Сходи к аудиокиллеру, там всё просто разжевал давно.
    • А ты далее этой строчки читал?    Далее написано же...  
    • Ну так хоть схемку приложи.Не срабатывает силовое реле.А чего несрабатывает,так нет питания дежурки.По схемке смотреть...
    • На входе у него сколько?   
    • Кстати, по поводу экранировки сигнальных проводов. Я вот что подумал. У меня же они все уложены по углам. Если эти углы накрыть какой-нибудь полоской стали, тогда и никакой экран для сигнального кабеля не нужен. Есть только одна проблема. У меня нет болгарки. А пилить ножовкой 30 сантиметров даже миллимитровки - тот ещё онанизм
    • Не хочу обидеть, однако имею два принципиальных замечания: 1) опыты, в результате которых мир получил великие открытия, имели в своем корне вполне объективную логику, позволившую с n--й попытки выявить и обосновать неведомую ранее закономерность материального мира, а не бессмысленный и бессистемный многофакторный перебор совокупности условий и параметров в надежде получить истинный результат. (Сравните, например, эффективность взлома пароля с использованием математических алгоритмов и методом простого перебора); 2) в отличие от фундаментальных открытий, совершавшихся принципиально впервые, т.е. описывающих неизвестные ранее закономерности, методика диагностики и ремонта бытовой РЭА хорошо известна и общедоступна, поэтому случайный успех вопреки ее гордому игнорированию претендует на маленькое открытие исключительно в рамках субъективного восприятия реальности конкретным индивидуумом. Никто не отменяет ни творчество, ни процесс познания. Речь идет о рациональном подходе, имеющем в своей основе формирование устойчивых знаний универсального характера и выработку правильных методов и навыков, являющихся по-настоящему полезными и обладающих практически значимой ценностью для дальнейшего развития личности.
    • Есть два вида транзисторов 2n5401, различаются цоколёвкой и наличием буквы Y после цифр. С 2n5551 наверное такая же история. Я когда собрал свой первый усилитель долго не мог понять что не так) Но к данному случаю это отношения не имеет.
  • Similar Content

    • By dima040891
      Приветсвую!
      Кто ни будь работал с микросхемой STLED316S?  Это драйвер семисегментонго индикатора.
      Можете привести минимальный кусок кода который выводит любую цифру на дисплей. Из документации не пойму как с ней работать...
      На форумах инфы почти нет. Из того что есть тоже толку мало. Буду рад любой инфе по этой микросхеме.

      Ещё правильно же понимаю биты по SPI передаются младшим вперёд, а такты нужно передавать инверсные?

      В качестве МК применяю STM32.
    • By Teo74
      Есть проект состоящий из Atmega 8, Uart, и lcd Nokia 5110.Проблема лишь в том что дисплей 5110 очень маленький, так как показания нужно читать с расстояния 3-6 метров. В интернете нашёл 7 дюймовый TFT дисплей  но не понимаю как его использовать в моём проекте. В протеус его нет, библиотек для него тоже не нашёл. Если я правильно понял, у этого дисплея есть свой контролер STM32, но как совместить с Atmega 8? Как симулировать в протеус?
    • By Teo74
      Здравствуйте помогите пожалуйста разобраться. Скачал готовый проект в интернете для приёма и отображения данных на дисплее через ком-порт по протоколу NMEA. И вот пытаюсь просимулировать его в протеусе, но увы не получается, а точнее не принимает ком-порт скорее всего. Прилагаю проект и то что я набросал для протеуса. Спасибо!
      GPS.rar
    • By sunjob
      добрый день
      проект v-usb
      выкус из спецификации/инета/форумов:
      - реализация не полностью соответствует стандарту
      - работа на 100% не гарантируется
      - питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...)  :))
      у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.



      как следствие стабильно может работать только при "определенных условиях"
      в планах поработать с библиотекой.
      для начало решил "набросать" альтернативный вариант. (так сказать, попытаться закрыть все возможные дыры в подключении)


       
      достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)
      tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx
      NO atmega32u4, NO arduino pro micro etc...

    • By Ivarrr
      Помогите понять где ошибка... не получается реализовать попеременный опрос 2ух каналов АЦП. Данные с одного канала должны передаваться на первый индикатор как напряжение, а со второго, соответственно на второй индикатор как сила тока.
       
      #define F_CPU 8000000U
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <stdlib.h>
      #include <util/delay.h>
      #define INDICATOR PORTD
      #define RANK PORTB
      unsigned int UR1=0, UR2=0, UR3=0, UR4=0; //переменные для деления на разряды значения напряжения
      unsigned int IR1=0, IR2=0, IR3=0, IR4=0; //переменные для деления на разряды значения силы тока
      int GainControl=1;
      int current_ch=0;
      float I, U;
      unsigned char voltage, current;
      unsigned int NUMS [10] = {0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000}; // от 0 до 9
      int main(void)
      {
          DDRB=0xFF; PORTB=0x00; //ножки порта B для разряда
          DDRC=0x00; PORTC=0x00; //ножки порта C для АЦП
          DDRD=0xFF; PORTD=0xFF; //ножки порта D для индикаторов
          
          TCCR0 |= (1<<CS01); TCCR0 &= ~((1<<CS00) | (1<<CS02)); //настройка частоты таймера f/8
          TIMSK |= (1<<TOIE0); //разрешение прерываний по переполнению таймера
          TCNT0=0; // обнуление счетчика
          
          ADCSRA |= ((1<<ADEN) | (1<<ADSC) | (1<<ADPS2)); // запуск АЦП, запуск преобразования, предделитель 16
          ADCSRA &= ~((1<<ADFR) | (1<<ADIF) | (1<<ADPS1) | (1<<ADPS0)); // режим преобразвания прерывестый, флаг перобразования опущен, предделитель 16
          ADMUX |= ((1<<REFS0) | (1<<REFS1)); //источник опорного напряжения 2.56В
          ADMUX &= ~((1<<ADLAR) | (1<<MUX0) | (1<<MUX1) | (1<< MUX2) | (1<<MUX3)); // направление записи, измерительная ножка ADC0;
          
          sei(); // вкл прерывания
          while (1) 
          {
              if (ADCSRA & (1<<ADIF))
              {
                          U_Convert((U*5.00/1024)*100);
                          I_convert((I*5.00/1024)*100);
              }
          }
      }
      void U_Convert (unsigned int U_num)  //деление на разряды напряжения
      {
          UR1=U_num/100;
          UR2=U_num%100/10;
          UR3=U_num%10;
      }
      void I_convert (unsigned int I_num) //деление на разряды тока
      {    IR1=I_num/100;
          IR2=I_num%100/10;
          IR3=I_num%10;
      }
      ISR (TIMER0_OVF_vect)
      {        
          if (GainControl == 1) {INDICATOR = 0b11111110; RANK = NUMS[UR1];} //отображение 1ого разряда напряжения
          if (GainControl == 2) {INDICATOR = 0b11111101; RANK = NUMS[UR2];} //отображение 2ого разряда напряжения
          if (GainControl == 3) {INDICATOR = 0b11111011; RANK = NUMS[UR3];} //отображение 3ого разряда напряжения    
          if (GainControl == 4) {INDICATOR = 0b11110111; RANK = NUMS[IR1];} //отображение 1ого разряды силы тока
          if (GainControl == 5) {INDICATOR = 0b11101111; RANK = NUMS[IR2];} //отображение 2ого разряды силы тока
          if (GainControl == 6) {INDICATOR = 0b11011111; RANK = NUMS[IR3];} //отображение 3ого разряды силы тока
          GainControl++;
          if (GainControl > 6) GainControl=0; //  мониторинг переменной для управления затворами    
      }
      ISR (ADC_vect) 
      {
          if (current_ch == 0)
            {
                U = ADC;
                voltage = (U*2.56/1024)*100;
                ADMUX |= (1<<MUX0);
                current_ch = 1;
                ADCSRA |= (1<<ADSC);
            }
            else
            {
                I = ADC;
                current = (I*2.56/1024)*100;
                ADMUX &= ~(1<<MUX0);
                current_ch = 0;
                ADCSRA |= (1<<ADSC);
            }
      }
×
×
  • Create New...