Хм, имеется небольшая беда. Вроде и в программировании и в электронике понимаю, но как свзять между собой 7-сегментный индикатор и ПИК - не догоняю. В принципе, хотел сделать нечто вроде счетчика шариков для пейнтбольного ствола. Там надо будет 3 7-сегментника. Да и в целом, как их связывать надо? Один - ладно, там еще топором напрямую можно, для каждой цифры описать свои наборы High/Low пинов. А если больше? Вроде как где-то есть микрухи, типа через паралельный интерфейс поступает цифра и она выводит их на индикатор, но хз.
На сегменты можно завести через дешифратор из 2 в семисигментный или напрямум а на оющий просто напрямую с контролера кинуть или через транзисторы чтоб ярче светилоси и сделать динамическую индикацию ... выбираеш нужный разряд общим проводом и на дешифратор подоёш нужное значение.
внимание ! эта схема потенциально приводит к выходу из строя МК т.к. ток через катод, при зажигании всех сегментов, превосходит нагрузочный ток одной ноги контроллера! нужно применять транзистор, как и указано на схеме производителя http://www.atmel.com/dyn/resources/prod ... OC1231.PDF
В общем-то да. Но если увеличить сопротивления до ~ 1 ком все будет нормально. Только вот тускловато. А вообще с транзисторами схема конечно более правильная.
dx40 писал(а):В общем-то да. Но если увеличить сопротивления до ~ 1 ком все будет нормально. Только вот тускловато. А вообще с транзисторами схема конечно более правильная.
Ток при зажигании всех сегментов будет 21 мА, формально это на 1 мА больше рекомендованного, но вряд ли такое превышение тока приведет к каким-либо последствиям
Кстати, есть интересные двухразрядные 7-мегментные индикаторы, в которых динамическая индикация не требуется, вот тут http://ironfelix.ru/modules.php?name=Pages&pa=showpage&pid=136 можно почитать. И программа приложена, и все издевательства описаны.
dx40 писал(а):В общем-то да. Но если увеличить сопротивления до ~ 1 ком все будет нормально. Только вот тускловато. А вообще с транзисторами схема конечно более правильная.
Ток при зажигании всех сегментов будет 21 мА, формально это на 1 мА больше рекомендованного, но вряд ли такое превышение тока приведет к каким-либо последствиям
Кстати, есть интересные двухразрядные 7-мегментные индикаторы, в которых динамическая индикация не требуется, вот тут http://ironfelix.ru/modules.php?name=Pages&pa=showpage&pid=136 можно почитать. И программа приложена, и все издевательства описаны.
цитирую :
The majority of the time port B sinks the 9 mA of current, to directly drive the LED segments. Each digit is switched sequentially in 5 ms time slots, to multiplex the displays via the PNP transistors Q1-4. The common anodes of the LED display digits are driven via PNP transistors, since the maximum possible 72 mA (9mA - 8 segments) of current is outside the handling capabilities of the ports.
Если бы еще и на алгоритм раскошелились А если серьезно, как правильно реализовать програмную часть, чтобы отображал некую переменную? Как из этой переменной на PicBasic вычленять сотни, десятки и единицы?
С пеиками не работал ... а под атмел на бэйсике кнопки топтал. Вот пример кода термометра с динамической индикацией. Сегменты напрямую к мк подключены.
Config Adc = Single , Prescaler = Auto Start Adc
Config Portb = Output Config Portd = Output
Dim W(3) As Long Dim Simvol(4) As Byte Dim X As Byte Dim Q As Long Dim Y As Byte Do
If W(3) > 0 Then Simvol(1) = 255 If W(3) < 0 Then Simvol(1) = 191 W(3) = W(3) * -1
End If
'W(3) = 128 If W(3) < 1000 Then For X = 2 To 4
If X = 2 Then Q = W(3) / 100
If X = 3 Then Q = W(3) / 100 Q = Q * 100 Q = W(3) - Q Q = Q / 10 End If
If X = 4 Then Q = W(3) / 100 Q = Q * 100 W(3) = W(3) - Q Q = W(3) / 10 Q = Q * 10 Q = W(3) - Q End If
If Q = 0 Then Simvol(x) = 192 If Q = 1 Then Simvol(x) = 249 If Q = 2 Then Simvol(x) = 164 If Q = 3 Then Simvol(x) = 176 If Q = 4 Then Simvol(x) = 153 If Q = 5 Then Simvol(x) = 146 If Q = 6 Then Simvol(x) = 130 If Q = 7 Then Simvol(x) = 248 If Q = 8 Then Simvol(x) = 128 If Q = 9 Then Simvol(x) = 144
cahbtexhuk писал(а):Хм, имеется небольшая беда. Вроде и в программировании и в электронике понимаю, но как свзять между собой 7-сегментный индикатор и ПИК - не догоняю. В принципе, хотел сделать нечто вроде счетчика шариков для пейнтбольного ствола. Там надо будет 3 7-сегментника. Да и в целом, как их связывать надо? Один - ладно, там еще топором напрямую можно, для каждой цифры описать свои наборы High/Low пинов. А если больше? Вроде как где-то есть микрухи, типа через паралельный интерфейс поступает цифра и она выводит их на индикатор, но хз.
74HCТ595 .управляется по трем проводкам, выходной ток - как у портов МК