Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 17:37:05

Привет!

есть у меня 7 сегментный дисплей на 2 цифры. с общим анодом. всего 10 ножек. подключаю его к ардуине через tlc5940nt...
как с ним (дисплеем этим) работают вообще? т.е. как показать 2 цифры? нужно последовательно, быстро включать и выключать аноды? делаю так, но что-то видно моргание... :(

Re: работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 17:43:56

Быстрее переключайте. Вообще говоря, частота переключения должна быть не менее 50 Гц. В вашем случае на каждую цифру по 10 мсек.

Re: работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 18:25:53

void loop()
{
digitalWrite(firstDig, LOW); digitalWrite(secondDig, LOW);
TlcMux_clear();
if(currentDig == 1) digitalWrite(firstDig, HIGH); else digitalWrite(secondDig, HIGH); delay (1);

TlcMux_set(0, 1, 4095);
TlcMux_set(0, 3, 4095);
TlcMux_set(0, 4, 4095);
if(currentDig == 1) TlcMux_set(0, 5, 4095);
TlcMux_set(0, 6, 4095);
TlcMux_set(0, 7, 4095);
TlcMux_set(0, 8, 4095);

delay(4);

currentDig += 1; if(currentDig > 2) currentDig = 1;
}

моргало пока delay(1); не вставил

Re: работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 18:28:13

какой то код у вас мутный,непонятно ничего. приведите вессь исходник

Re: работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 19:31:04

Описалово сей микрухи : http://www.odduino.com/blog/primery_s_tlc5940nt/2011-07-25-2

А можно вопрос, цель использования сего монстра?
Если для экономии ног - можно было обойтись и простым регистром сдвига 74HC595.
Или все же планируется использование ШИМ в tlc5940nt ?
Или по причине "оно у меня валяется - надо бы пристроить"?

Re: работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 20:09:42

vovik15 писал(а):приведите вессь исходник


ну это практически весь исходник и есть. просто там еще библиотечка используется для использования tlc5940nt.

digitalWrite(firstDig, LOW); digitalWrite(secondDig, LOW); // аноды дисплея сбрасываются в ноль
TlcMux_clear(); коммутация всех выходов tlc5940nt сбрасывается.
if(currentDig == 1) digitalWrite(firstDig, HIGH); else digitalWrite(secondDig, HIGH); delay (1); подключение нужного анода - первая или вторая цифра дисплея

TlcMux_set(0, 1, 4095);
TlcMux_set(0, 3, 4095);
TlcMux_set(0, 4, 4095);
if(currentDig == 1) TlcMux_set(0, 5, 4095);
TlcMux_set(0, 6, 4095);
TlcMux_set(0, 7, 4095);
TlcMux_set(0, 8, 4095);

тут подключаются выходы tlc5940nt. если включен первый анод - будет цифра 8, если второй - 6.
потом задержка 4мс и смена цифры - попеременно чтоб одна и вторая включалась.


шим использовать не планируется, зачем он в дисплейчике этом? :) разве что яркость менять, но это уж баловство.
Вы правы - просто валяется, нужно пристроить :) 74HC595 тоже валяется, но там дисплей нужен с общим катодом ведь, а вот он у меня не валяется :(

Re: работа с семисегментным дисплеем на 2 цифры

Пт авг 31, 2012 21:20:30

Andrey04784 писал(а):но там дисплей нужен с общим катодом ведь(

Совсем не обязательно! Просто вместо 0 ставим 1 и наоборот - вот и будет с общим катодом. Для Arduino есть библиотека для работы с 74HC595 : "SPI.h". Просто ещё раз перечитайте про регистры : http://avrproject.ru/publ/kak_podkljuchit/bascom_avr_74hc595/2-1-0-44
Ответить