roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 04:02

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: 7-сегментники
СообщениеДобавлено: 17 май 2006, 22:30 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 май 2006, 23:05 
Не в сети

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

а там мы делали лабораторную такую, на логическихэлементах строили, смного получается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 май 2006, 00:46 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 май 2006, 10:58 
Не в сети
Site Admin
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 май 2006, 16:07 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 май 2006, 16:19 
Не в сети
Site Admin
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 май 2006, 18:34 
Не в сети
Мастер Самоделкин
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 май 2006, 18:37 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Альтеру... ты еще заказные микросхемы посоветуй.

все проще

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 май 2006, 20:57 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
dx40 писал(а):
Альтеру... ты еще заказные микросхемы посоветуй.

все проще

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

внимание ! эта схема потенциально приводит к выходу из строя МК т.к. ток через катод, при зажигании всех сегментов, превосходит нагрузочный ток одной ноги контроллера!
нужно применять транзистор, как и указано на схеме производителя
http://www.atmel.com/dyn/resources/prod ... OC1231.PDF


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 май 2006, 13:04 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 май 2006, 17:03 
Не в сети

Зарегистрирован: 23 янв 2006, 15:11
Сообщения: 37
dx40 писал(а):
В общем-то да. Но если увеличить сопротивления до ~ 1 ком все будет нормально. Только вот тускловато. А вообще с транзисторами схема конечно более правильная.


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 май 2006, 09:55 
Не в сети
Site Admin
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 май 2006, 13:57 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 май 2006, 20:26 
Не в сети

Зарегистрирован: 17 янв 2006, 10:16
Сообщения: 56
Откуда: Москва
С пеиками не работал ... а под атмел на бэйсике кнопки топтал. Вот пример кода термометра с динамической индикацией. Сегменты напрямую к мк подключены.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 7-сегментники
СообщениеДобавлено: 28 июн 2006, 14:00 
Не в сети

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

74HCТ595 .управляется по трем проводкам, выходной ток - как у портов МК


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO