7-сегментники

Обсуждаем рождающиеся мысли и результаты экспериментов.

7-сегментники

Сообщение cahbtexhuk » 17 май 2006, 22:30

Хм, имеется небольшая беда. Вроде и в программировании и в электронике понимаю, но как свзять между собой 7-сегментный индикатор и ПИК - не догоняю. В принципе, хотел сделать нечто вроде счетчика шариков для пейнтбольного ствола. Там надо будет 3 7-сегментника. Да и в целом, как их связывать надо? Один - ладно, там еще топором напрямую можно, для каждой цифры описать свои наборы High/Low пинов. А если больше? Вроде как где-то есть микрухи, типа через паралельный интерфейс поступает цифра и она выводит их на индикатор, но хз.
Аватара пользователя
cahbtexhuk
 
Сообщения: 112
Зарегистрирован: 02 окт 2005, 18:30
Откуда: Рига, Латвия

Сообщение libricon » 17 май 2006, 23:05

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

а там мы делали лабораторную такую, на логическихэлементах строили, смного получается
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение gosu » 18 май 2006, 00:46

На сегменты можно завести через дешифратор из 2 в семисигментный или напрямум а на оющий просто напрямую с контролера кинуть или через транзисторы чтоб ярче светилоси и сделать динамическую индикацию ... выбираеш нужный разряд общим проводом и на дешифратор подоёш нужное значение.
gosu
 
Сообщения: 56
Зарегистрирован: 17 янв 2006, 10:16
Откуда: Москва

Сообщение setar » 18 май 2006, 10:58

вот очень подробное и полное описание как это делается
http://www.atmel.com/dyn/resources/prod ... OC1231.PDF
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение cahbtexhuk » 18 май 2006, 16:07

Слова непонятные :D Можно, плз, обьяснить по конкретней, что такое дешифратор? Я же сволочь, в основном по готовым примерам творю :D
Аватара пользователя
cahbtexhuk
 
Сообщения: 112
Зарегистрирован: 02 окт 2005, 18:30
Откуда: Рига, Латвия

Сообщение setar » 18 май 2006, 16:19

по указанному выше мною примеру дешифратор не нужен
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение -= Александр =- » 18 май 2006, 18:34

Если цифер много - имеет смысл юзать Альтеру...  :roll:  Кстати вполне возможно такие проекты в сети уже есть.  :wink:
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение dx40 » 19 май 2006, 18:37

Альтеру... ты еще заказные микросхемы посоветуй.

все проще

http://www.radiokot.ru/start/mcu_fpga/avr/15/
Аватара пользователя
dx40
 
Сообщения: 201
Зарегистрирован: 27 янв 2005, 11:49
Откуда: Мск

Сообщение setar » 19 май 2006, 20:57

dx40 писал(а):Альтеру... ты еще заказные микросхемы посоветуй.

все проще

http://www.radiokot.ru/start/mcu_fpga/avr/15/

внимание ! эта схема потенциально приводит к выходу из строя МК т.к. ток через катод, при зажигании всех сегментов, превосходит нагрузочный ток одной ноги контроллера!
нужно применять транзистор, как и указано на схеме производителя
http://www.atmel.com/dyn/resources/prod ... OC1231.PDF
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение dx40 » 20 май 2006, 13:04

В общем-то да. Но если увеличить сопротивления до ~ 1 ком все будет нормально. Только вот тускловато. А вообще с транзисторами схема конечно более правильная.
Аватара пользователя
dx40
 
Сообщения: 201
Зарегистрирован: 27 янв 2005, 11:49
Откуда: Мск

Сообщение NightCity » 21 май 2006, 17:03

dx40 писал(а):В общем-то да. Но если увеличить сопротивления до ~ 1 ком все будет нормально. Только вот тускловато. А вообще с транзисторами схема конечно более правильная.


Ток при  зажигании всех сегментов будет 21 мА, формально это на 1 мА больше рекомендованного, но вряд ли такое превышение тока приведет к каким-либо последствиям :)

Кстати, есть интересные двухразрядные 7-мегментные индикаторы, в которых динамическая индикация не требуется, вот тут http://ironfelix.ru/modules.php?name=Pages&pa=showpage&pid=136 можно почитать. И программа приложена, и все издевательства описаны.
NightCity
 
Сообщения: 37
Зарегистрирован: 23 янв 2006, 15:11

Сообщение setar » 23 май 2006, 09:55

NightCity писал(а):
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.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение cahbtexhuk » 23 май 2006, 13:57

Если бы еще и на алгоритм раскошелились :D А если серьезно, как правильно реализовать програмную часть, чтобы отображал некую переменную? Как из этой переменной на PicBasic вычленять сотни, десятки и единицы?
Аватара пользователя
cahbtexhuk
 
Сообщения: 112
Зарегистрирован: 02 окт 2005, 18:30
Откуда: Рига, Латвия

Сообщение gosu » 23 май 2006, 20:26

С пеиками не работал ... а под атмел на бэйсике кнопки топтал. Вот пример кода термометра с динамической индикацией. Сегменты напрямую к мк подключены.

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

 W(1) = Getadc(5 [ , 2])
 W(2) = Getadc(4)

 W(3) = W(2) - W(1)

 'W(3) = W(1)
 W(3) = W(3) * 3

 Gosub Rashet
 For Y = 0 To 8
 Gosub Print
 Next Y

Loop



Print:
Portb = 0
Portd = 1

Portb.2 = 1
Portd = Simvol(1)
Waitms 3
Portb.2 = 0
Waitus 1

Portb.3 = 1
Portd = Simvol(2)
Waitms 3
Portb.3 = 0
Waitus 1

Portb.4 = 1
Portd = Simvol(3)
Waitms 3
Portb.4 = 0
Waitus 1

Portb.5 = 1
Portd = Simvol(4)
Waitms 3
Portb.5 = 0
Waitus 1







Return


Rashet:


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

'Simvol(1) = 249
'Simvol(2) = 164
'Simvol(3) = 176
'Simvol(4) = 153



End If

If W(3) > 999 Then

Simvol(1) = 182
Simvol(2) = 137
Simvol(3) = 249
Simvol(4) = 182

End If



Next X
Return
gosu
 
Сообщения: 56
Зарегистрирован: 17 янв 2006, 10:16
Откуда: Москва

Re: 7-сегментники

Сообщение Vladex » 28 июн 2006, 14:00

cahbtexhuk писал(а):Хм, имеется небольшая беда. Вроде и в программировании и в электронике понимаю, но как свзять между собой 7-сегментный индикатор и ПИК - не догоняю. В принципе, хотел сделать нечто вроде счетчика шариков для пейнтбольного ствола. Там надо будет 3 7-сегментника. Да и в целом, как их связывать надо? Один - ладно, там еще топором напрямую можно, для каждой цифры описать свои наборы High/Low пинов. А если больше? Вроде как где-то есть микрухи, типа через паралельный интерфейс поступает цифра и она выводит их на индикатор, но хз.

74HCТ595 .управляется по трем проводкам, выходной ток - как у портов МК
Vladex
 
Сообщения: 37
Зарегистрирован: 24 янв 2006, 21:13
Откуда: Ярославль

След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6