Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



I2C CLOCK+ALARM

Сообщений 91 страница 120 из 120

91

Пётр
0.35Вт это мало для такого нагрева. как же оно будет кипеть на паспортных 1.5А?
или уж заменить на LD1117DT50C LDO-стабилизатор 5,0В/800мА , они вроде при прочих равных КПД повыше имеют?
и еще, если не замучал - попытался заместо динамика приколхозить "зуммер магнитоэлектрический". так он при выключенном будильнике пищит тихохонько, даже с резистором в 1 кОм последовательно. как его правильно включить?

0

92

IDok написал(а):

7805 греется

Такова природа линейных стабилизаторов. Все что лишнее, идет в нагрев.
Тут либо уменьшать входное напряжение, либо применять импульсный стабилизатор.
Если входное напряжение не уменьшить, то можно и так сделать - импульсный + 78**.

0

93

pavel1969
гм. ну он и щас от импульсника питается. и радиатор на него навесил (а то очень грелся). соседняя поделка на той же 7805 и с токами под 100мА холодная как айсберг. кондеры обвязки могут вредить? на входе 47мкф, на выходе 10мкф

0

94

IDok
В идеале, для линейного 78** входное напряжение должно быть больше всего на 2,5в чем напряжение стабилизации.
Для 7805 входное напряжение 7,5-8 в. А ты ему дал целых 12в. Вот он и не доволен... :)
Все что лишнее - идет в нагрев...  :yep:
Есть ситуации, где необходимы два напряжения питания  +5 и +12.
Тогда, импульсным можно снизить с 12 до 7,5-8в, и далее тем же 7805.

0

95

pavel1969
ок. попробую LDO воткнуть

pavel1969 написал(а):

Есть ситуации, где необходимы два напряжения питания  +5 и +12.

так и есть, нуна оба

0

96

IDok написал(а):

ок. попробую LDO воткнуть

С этим немного попроще...  Или посложнее...
У LDO падение напряжения всего 1,25в.
Лишнего может оказаться больше...  :D

0

97

pavel1969
в смыселе? ну вот эта шайтанская кегля к примеру: LD1117DT50C. входное до 15В, выходное 5В, ток выхода 800мА. схема включения собсна тоже простая (распиновка только идиотская). что с ним может пойти не так?

0

98

Давай посчитаем...
15в-5в итого 10в падения на этой шайтанской кегле, при токе 0,8А - итого это утюг на 8Вт
Падение для LDO 1,25в.
Или же... Идеальный вариант:
6,25в-5в=1,25 при токе 0,8А итого... блин не считается, щас эксел загружу... да,  около 1Вт
Как говорится в рекламе - почувствуй разницу... :)

0

99

pavel1969
не, ну не, входное все же 12В и ток выхода... ток выхода... по 12В 50мА, падение 7В при 0.05 = 0.35Вт, что для такого эпического нагрева явно маловато будет

0

100

Ты кого уговариваешь? Меня или Себя? ;)
Теория теорией, а практику никто не отменял...
Пробуй.
Но, лучше сделай импульсную понижалку на 34063 до 6,5в. Тогда точно ничего греться не будет.

0

101

IDok написал(а):

Но, лучше сделай импульсную понижалку на 34063 до 6,5в

места нет :(
проще уж кренкой сбить до 8, а там LDO или эту же 7805 оставить

0

102

IDok написал(а):

места нет

Под дополнительную кренку есть место, а под 34063 нет?  :D
В смд корпусе платку можно зафигачить ничуть не больше чем кренка.   
Посмотри в сети, примеров много-много-много....

0

103

pavel1969 написал(а):

Под дополнительную кренку есть место, а под 34063 нет?

так она не одна же ходит. дроссель, те же кондеры, реизсторы.... да и плата уже разведена и собрана

pavel1969 написал(а):

В смд

угу  :(

0

104

Глаза бояться - руки делают.
В уже готовой плате, я 7805 вынул (тоже сильно грелась), на ее место поставил платку с 34063 в дип корпусе.
Только конденсаторы от 7805 остались.
И места вполне хватило.
Три года уже работает без отключений.

Отредактировано pavel1969 (2017-07-08 21:41:07)

0

105

pavel1969
ну тогда доведите дело до конца - поделитесь схемой сразу на 5В :)
а то я дофига чего нашел, но все начинается со слов "... а дроссель надо мотать при полной луне в козероге... "

0

106

Вот моя шаманская кегля. Стандартная схема понижалки...
http://s7.uploads.ru/t/5DRBl.jpghttp://s0.uploads.ru/t/e5Xx3.jpg

0

107

pavel1969
а сама схемка есть?

0

108

IDok, поставь DC-DC и ничего греться не будет, они сейчас небольшие.

0

109

итог: рассчитал схему на 34063, собрал на макетке, собрал на текстолите, полюбовался и убрал в шкап. ибо переделал 12-вольтовую часть на 5 вольт и запитал все от нокловской юсбшной зарядки. но всем спасибо, узнал много нового. отдельное спасибо Петру за ссылку на закон сохранения энергии.  :D

0

110

Здравствуйте. И опять нужна помощь. Решил использовать контроллер подешевле Attiny88. Тоже 8 кБ памяти, на борту, вроде есть все, что нужно, но чего то не хватает. При компиляции Bascom 2.0.7.1 ругается на TIMER0:

Код:
Error : 202   Line :   68    .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B]
Error : 202   Line :   71    .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B]
Error : 202   Line :   122   .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B]
Error : 202   Line :   163   .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B]
Error : 202   Line :   222   .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B]
Error : 202   Line :   241   .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B] 
Error : 202   Line :   250   .EQU not found, probably using functions that are not supported by the selected chip [TCCR0B]

Конфигурация таймера проходит нормально, но на STOP TIMER0 / START TIMER0 выдает эти ошибки. Хотя .hex компилируется, но ни в Протеусе ни в железе не работает. Просто светится одна цифра и все. Получается, что запуск, остановка таймера не реализованы в этом камне. Можно это как то победить? Код ниже. Он работает в Mega8 и в Tiny2313.

Код:
$regfile = "attiny88.dat"                                   '  Atmega 8
$crystal = 8000000                                          '  8, 000 000 мегагерц
$lib "mcsbyte.lbx"                                          '       библиотеки
$lib "ds1307clock.lib"
 $hwstack = 40
$swstack = 16
$framesize = 32
 Config Sda = Portc.4 : Config Scl = Portc.5
Const Ds1307w = &HD0                                        ' пины для подключения Ds1307
Const Ds1307r = &HD1

Config Pind.0 = Input : Portd.0 = 1
Config Pind.1 = Input : Portd.1 = 1
Config Pind.2 = Input : Portd.2 = 1
Config Portb = Output : Portb.5 = 0
 Config Portd = Output                                      ' конфигурируем порты на выход к которым подключен семисегментник

 Config Debounce = 50
Dim W As Byte , Z As Byte , Y As Byte , I As Byte , X As Byte , Chislo(4) As Integer , Viv_peremennaya As Integer , Chasi As Byte , Minuti As Byte , Secundi As Byte , Chasi_alarm As Byte , Minuti_alarm As Byte , Weekday As Byte , Clock_flag As Bit , Dp_flag As Bit , Migalka As Integer , Den As Byte , Mesjac As Byte , God As Byte , Set_flag As Byte , Mode_flag As Byte
Dim Chasi_alarm_off As Byte , Minuti_alarm_off As Byte , Stop_alarm As Byte , Nosave_time As Byte       ' задаем переменные
 Dim T As Integer , T_t As Integer , N As Bit , Minus As Bit , P As Byte
 Dim _min As Byte
Dim _hour As Byte
Dim _sec As Byte
 Dim _day As Byte
Dim _month As Byte
Dim _year As Byte
Readeeprom Chasi_alarm , 10                                 'читаем  из еепрома во сколько часов должен сработать будильник
Readeeprom Minuti_alarm , 20                                'читаем  из еепрома во сколько минут должен сработать будильник
Readeeprom Chasi_alarm_off , 30                             '  минуты отключения будильника
Readeeprom Minuti_alarm_off , 40                            ' часы отключения будильника

A Alias Portb.0 : B Alias Portb.4 : C Alias Portb.7 : D Alias Portd.4 : E Alias Portd.3 : F Alias Portb.1 : G Alias Portd.5 : Dp Alias Portb.6       'Тут вписываем порты к которым подключены сегменты индикатора
Dig1 Alias Portd.6 : Dig2 Alias Portb.3 : Dig3 Alias Portb.2 : Dig4 Alias Portd.7       ' тут вписываем порты к которым подключены общие провода каждой цифр

For X = 1 To 4                                              ' присваиваем всем цифрам пустоту, чтоб в момент включения не высвечивались ноли
Chislo(x) = 11
Next
Config Timer0 = Timer , Prescale = 8 : On Timer0 Pulse :    ' конфигурируем таймер 0 и назначаем подпрограмму которая выполняется при переполнении таймера
Config Timer1 = Timer , Prescale = 8 : On Timer1 Bootons :  ' конфигурируем таймер 0 и назначаем подпрограмму которая выполняется при переполнении таймера
Enable Interrupts : Enable Timer0 : Enable Timer1           ' разрешаем прерывания и таймер 0

Do                                                          'Основной режим работы. Отображение времени
Times:
'*******************************************************************************
' Запрос по i2c времени и пересчет его в четырех значное число а также мигалка двух средних точек (22:03)
For X = 1 To 40
Set Clock_flag
Gosub Getdatetime
Migalka = Secundi Mod 2
'Migalka = Secundi And 1                                                                    можно так
If Migalka <> 0 Then
Dp_flag = 1
Else
Dp_flag = 0
End If

Waitms 80
Next
'*******************************************************************************
Loop
'*******************************************************************************

'*******************************************************************************
' Запрос текущего числа и месяца и установка точки посредине между числом и месяцем. Пересчет даты в четырех значное число (28.12)
Set Clock_flag
Stop Timer0
Viv_peremennaya = Den * 100
Viv_peremennaya = Viv_peremennaya + Mesjac
Start Timer0
Dp_flag = 0
Waitms 700

'*******************************************************************************
'работа с  ds1307
Getdatetime:
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' start address in 1307

  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307r                                          ' send address
  I2crbyte _sec , Ack
  I2crbyte _min , Ack                                       ' MINUTES
  I2crbyte _hour , Ack                                      ' Hours
  I2crbyte Weekday , Ack                                    ' Day of Week
  I2crbyte _day , Ack                                       ' Day of Month
  I2crbyte _month , Ack                                     ' Month of Year
  I2crbyte _year , Nack                                     ' Year
  I2cstop
Secundi = Makedec(_sec) : Minuti = Makedec(_min) : Chasi = Makedec(_hour)

   Den = Makedec(_day) : Mesjac = Makedec(_month) : God = Makedec(_year)
Return

Setdate:
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 4                                                ' starting address in 1307
  I2cwbyte _day                                             ' Send Data to SECONDS
  I2cwbyte _month                                           ' MINUTES
  I2cwbyte _year                                            ' Hours
  I2cstop
Return

Settime:
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' starting address in 1307
  I2cwbyte _sec                                             ' Send Data to SECONDS
  I2cwbyte _min                                             ' MINUTES
  I2cwbyte _hour                                            ' Hours
  I2cstop
Return
'*******************************************************************************

'*************************Вывод на индикатор************************************
Pulse:
Stop Timer0                                                 ' останавливаем таймер 0
 If Clock_flag = 1 Then
Chislo(4) = Chasi / 10
Chislo(3) = Chasi Mod 10
Chislo(2) = Minuti / 10
Chislo(1) = Minuti Mod 10

If Chasi < 10 Then Chislo(4) = 11
End If
Reset Dig1 : Reset Dig2 : Reset Dig3 : Reset Dig4
Incr W : If W > 4 Then W = 1                                ' выбираем какую цифру сейчас включать
Y = 0
Gosub Look : A = Z                                          ' переходим к подпрограмме Look, которая определяет нужно ли сейчас загорется сегменту А
Gosub Look : B = Z
Gosub Look : C = Z
Gosub Look : D = Z
Gosub Look : E = Z
Gosub Look : F = Z
Gosub Look : G = Z

Select Case W                                               ' включаем цифру которую выбрали (w). Подаем плюс на общий провод конкретной цифры
 Case 1 :
 Set Dig1
 Set Dp
 Case 2 :
  If Dp_flag = 1 Then Reset Dp Else Set Dp
 Set Dig2
 Case 3 :
 Set Dig3
   Set Dp
 Case 4 :
 Set Dp
 Set Dig4
End Select



If Chasi = Chasi_alarm And Minuti = Minuti_alarm Then
  If Stop_alarm = 1 Then Stop_alarm = 0
End If
If Stop_alarm = 0 And Pind.0 = 0 Then Stop_alarm = 1        ' было =2
Start Timer0                                                ' запускаем таймер0
Return                                                      ' возвращаемся к выполнению основной программы

Look:                                                       ' подпрограмма которая определяет нужно ли сейчас гореть сегменту, который вызвал эту подпрограмму
Z = Chislo(w) * 7 : Z = Y + Z                               ' определяем порядковый номер числа из таблици DATA. W - это цифра которую будем выводить 0..1..2..3.......9, Y это номер сегмента (A=0 B=1 C=2...G=7)
Z = Lookup(z , Cifri)                                       ' выбираем из таблици включить или выключить нужный сегмент
Incr Y                                                      'Y это номер сегмента (A=0 B=1 C=2...)

Return                                                      'возвращаемся на место откуда сюда прислали

Cifri:
' таблица сегментом для семисегментников с общим плюсом      |Chislo(i)| Символ |
Data 0 , 0 , 0 , 0 , 0 , 0 , 1                              '0
Data 1 , 0 , 0 , 1 , 1 , 1 , 1                              '1
Data 0 , 0 , 1 , 0 , 0 , 1 , 0                              '2
Data 0 , 0 , 0 , 0 , 1 , 1 , 0                              '3
Data 1 , 0 , 0 , 1 , 1 , 0 , 0                              '4
Data 0 , 1 , 0 , 0 , 1 , 0 , 0                              '5
Data 0 , 1 , 0 , 0 , 0 , 0 , 0                              '6
Data 0 , 0 , 0 , 1 , 1 , 1 , 1                              '7
Data 0 , 0 , 0 , 0 , 0 , 0 , 0                              '8
Data 0 , 0 , 0 , 0 , 1 , 0 , 0                              '9
Data 1 , 1 , 1 , 1 , 1 , 1 , 0                              '10           "-"
Data 1 , 1 , 1 , 1 , 1 , 1 , 1                              '11           ""
Data 0 , 1 , 1 , 0 , 0 , 0 , 1                              '12           "C"
Data 1 , 1 , 1 , 1 , 0 , 1 , 0                              '13           "r"
Data 0 , 1 , 1 , 0 , 0 , 0 , 0                              '14           "E"
'( ' для индикатора с общим минусом
Data 1 , 1 , 1 , 1 , 1 , 1 , 0                              '0
Data 0 , 1 , 1 , 0 , 0 , 0 , 0                              '1
Data 1 , 1 , 0 , 1 , 1 , 0 , 1                              '2
Data 1 , 1 , 1 , 1 , 0 , 0 , 1                              '3
Data 0 , 1 , 1 , 0 , 0 , 1 , 1                              '4
Data 1 , 0 , 1 , 1 , 0 , 1 , 1                              '5
Data 1 , 0 , 1 , 1 , 1 , 1 , 1                              '6
Data 1 , 1 , 1 , 0 , 0 , 0 , 0                              '7
Data 1 , 1 , 1 , 1 , 1 , 1 , 1                              '8
Data 1 , 1 , 1 , 1 , 0 , 1 , 1                              '9
Data 0 , 0 , 0 , 0 , 0 , 0 , 1                              '10           "-"
Data 0 , 0 , 0 , 0 , 0 , 0 , 0                              '11           "" пусто
Data 1 , 0 , 0 , 1 , 1 , 1 , 0                              '12           "C"
Data 1 , 1 , 0 , 0 , 1 , 1 , 1                              '13           "P"
Data 0 , 0 , 0 , 1 , 1 , 1 , 1                              '14           "t"
')

'*****************************Работа с кнопками и будильником*******************
Bootons:

Stop Timer1

If Pind.0 = 0 Then Gosub Alarm
If Pind.1 = 0 Then Gosub Set_booton


Bitwait Pind.1 , Set                                        'ждем пока не отпустят кнопку

If Stop_alarm = 0 Then
If Chasi = Chasi_alarm And Minuti = Minuti_alarm Then       ' проверяем надо ли играть мелодию будильника

Enable Interrupts : Enable Timer0 : Start Timer0 : Stop Timer1
  Set Portb.5                                               'пищим
 End If
End If
   If Chasi = 19 And Minuti = 0 And Secundi = 30 Then       'коррекция хода часов
_hour = Chasi
_min = Minuti
 _sec = Secundi + 2
Gosub Settime:
End If
 If Chasi = Chasi_alarm_off And Minuti = Minuti_alarm_off Then
 Reset Portb.5
End If
Start Timer1

Return

Alarm:

Enable Interrupts : Enable Timer0 : Start Timer0 : Stop Timer1
Bitwait Pind.0 , Set
Toggle Portb.5
Start Timer1
Return


'*****************************вывод меню настройки******************************
Set_booton:
Enable Interrupts : Enable Timer0 : Start Timer0 : Stop Timer1
Set_flag = 1

Reset Clock_flag

Bitwait Pind.1 , Set                                        ' ждем пока не отпустим кнопку настроек
  Do                                                        ' цикл настройки часов
                                         ' включаем первые две цифры на которых показаны текущие часы суток, второй кнопкой их можно прибавлять
    Chislo(1) = 11
    Chislo(2) = 11
    Chislo(3) = Chasi Mod 10
    Chislo(4) = Chasi / 10
    Set Dp_flag
    Waitms 100
    If Pind.2 = 0 Then : Incr Chasi : Set Nosave_time : End If
    If Chasi >= 24 Then Chasi = 0
  Loop Until Pind.1 = 0
Bitwait Pind.1 , Set                                        ' ждем пока не отпустят кнопку настроек

  Do                                                        ' цикл настройки минут
                                         ' включаем вторые две цифры с минутами -||-
    Chislo(1) = Minuti Mod 10
    Chislo(2) = Minuti / 10
    Chislo(3) = 11
    Chislo(4) = 11
    Set Dp_flag
    Waitms 100
    If Pind.2 = 0 Then : Incr Minuti : _sec = 0 : Set Nosave_time : End If
    If Minuti >= 60 Then Minuti = 0
  Loop Until Pind.1 = 0
Bitwait Pind.1 , Set

  If Nosave_time = 1 Then                                   ' смотрим было ли изменение времени, если да то записываем установленное время по i2c
  _hour = Chasi
  _min = Minuti
  Gosub Settime                                             ' устанавливаем по i2c текущее время
  Else
  Reset Nosave_time
  End If

  Do                                                        ' цикл настройки номера месяца
                                          ' включаем первые две цифры с днем месяца -||-
    Chislo(1) = 11
    Chislo(2) = 11
    Chislo(3) = Den Mod 10
    Chislo(4) = Den / 10
    Set Dp_flag
    Waitms 100
    If Pind.2 = 0 Then : Incr Den : Set Nosave_time : End If
    If Den >= 32 Then Den = 1
  Loop Until Pind.1 = 0
Bitwait Pind.1 , Set

  Do                                                        ' цикл настройки дня месяца  ' включаем вторые две цифры с номером месяца -||-

    Chislo(1) = Mesjac Mod 10
    Chislo(2) = Mesjac / 10
    Chislo(3) = 11
    Chislo(4) = 11
    Set Dp_flag
    Waitms 100
    If Pind.2 = 0 Then : Incr Mesjac : Set Nosave_time : End If
    If Mesjac >= 13 Then Mesjac = 1
  Loop Until Pind.1 = 0
Bitwait Pind.1 , Set

  Do                                                        ' включаем первые две цифры с номером года 20 и вторые две, которые можно изменять 10. все изменяется от 2010 до 2099

    Chislo(1) = God Mod 10
    Chislo(2) = God / 10
    Chislo(3) = 0
    Chislo(4) = 2
    Reset Dp_flag
    Waitms 100
    If Pind.2 = 0 Then : Incr God : Set Nosave_time : End If
    If God >= 100 Then God = 10
  Loop Until Pind.1 = 0
Bitwait Pind.1 , Set

 If Nosave_time = 1 Then
_day = Den
_month = Mesjac
_year = God
Gosub Setdate                                               ' устанавливаем по i2c текущую дату не зависимо меняли ее или нет
Else
  Reset Nosave_time
End If


  Do                                                        ' часы будильника
    If Chasi_alarm > 23 Then Chasi_alarm = 0
    Chislo(1) = 11
    Chislo(2) = 11
    Chislo(3) = Chasi_alarm Mod 10
    Chislo(4) = Chasi_alarm / 10
    Set Dp_flag
    If Pind.2 = 0 Then : Incr Chasi_alarm : Set Nosave_time : End If
     If Chasi_alarm > 23 Then Chasi_alarm = 0
    Waitms 100
  Loop Until Pind.1 = 0
Bitwait Pind.1 , Set

  Do
                                              ' минуты будильника
    If Minuti_alarm > 59 Then Minuti_alarm = 0
    Chislo(1) = Minuti_alarm Mod 10
    Chislo(2) = Minuti_alarm / 10
    Chislo(3) = 11
    Chislo(4) = 11
    Set Dp_flag
    If Pind.2 = 0 Then : Incr Minuti_alarm : Set Nosave_time : End If       ' записываем в eeprom вкл/откл будильник : End If
     If Minuti_alarm > 59 Then Minuti_alarm = 0
    Waitms 100
  Loop Until Pind.1 = 0
  Bitwait Pind.1 , Set
  Do                                                        ' часы  отключения будильника
    If Chasi_alarm_off > 23 Then Chasi_alarm_off = 0
    Chislo(1) = 11
    Chislo(2) = 11
    Chislo(3) = Chasi_alarm_off Mod 10
    Chislo(4) = Chasi_alarm_off / 10
    Set Dp_flag
    If Pind.2 = 0 Then : Incr Chasi_alarm_off : Set Nosave_time : End If
     If Chasi_alarm_off > 23 Then Chasi_alarm_off = 0
    Waitms 100
  Loop Until Pind.1 = 0
 Bitwait Pind.1 , Set

  Do
                                              ' минуты отключения  будильника
    If Minuti_alarm_off > 59 Then Minuti_alarm_off = 0
    Chislo(1) = Minuti_alarm_off Mod 10
    Chislo(2) = Minuti_alarm_off / 10
    Chislo(3) = 11
    Chislo(4) = 11
    Set Dp_flag
    If Pind.2 = 0 Then : Incr Minuti_alarm_off : Set Nosave_time : End If       ' записываем в eeprom вкл/откл будильник : End If
     If Minuti_alarm_off > 59 Then Minuti_alarm_off = 0
    Waitms 100
  Loop Until Pind.1 = 0
 If Nosave_time = 1 Then : Writeeeprom Chasi_alarm , 10 : Writeeeprom Minuti_alarm , 20 : Writeeeprom Chasi_alarm_off , 30 : Writeeeprom Minuti_alarm_off , 40 : Reset Nosave_time : End If       ' сохраняем в eeprom часы и минуты будильника
Set_flag = 0                                                ' флаг окончания настройки
Bitwait Pind.1 , Set
Start Timer1
Goto Times:                                                 ' переход к отображению времени

Return

0

111

Andrusha, пробуй другую версию баскома. В 2.0.7.8 компилится нормально.

0

112

Все получилось. Огромное спасибо. Три дня убил на изучение даташита.

0

113

коллеги, а такой вот вопрос: если я в данной схеме захочу поставить второй индикатор (температуру с датой отделить от времени), ну с анодами понятно - еще 4 ключа. а с разрядами как - тоже ключи ставить? индикаторы 4.2В и с токами по 25мА на сегмент каждый. что посоветуете?

0

114

Вот что говорит Datacheet по этому поводу:
Absolute Maximum Ratings*
DC Current per I/O Pin ............................................... 40.0 mA
DC Current VCC and GND Pins................................ 200.0 mA
А дальше, как в песне: Думайте сами, решайте сами... Я думаю, лучше поставить.

0

115

даташит я читал и цифры видел, но это именно что максимальные значения. хотя при динамической индикации оно и попроще будет. а что лучше поставить - просто транзюки или ULN какую-нить?

0

116

А я не знаю, что лучше. Самые большие индикаторы, которые я применял 0,8 дюйма в этих часах и в спидометре в машину. Там только ключи в анодах. Вообще, для меня, что дешевле, то и лучше. Я даже эти часы переделал на Attiny 88, потому что она дешевле.

0

117

ну у меня есть пригоршня КТшек, попробую... динамическая иникация и так яркостью не блещет, а уж ограничивать ее по току...
вощем, спасибо, мысль уловил

0

118

IDok написал(а):

динамическая иникация и так яркостью не блещет, а уж ограничивать ее по току...


Современные семисегментники очень яркие (особенно изумрудного цвета), приходится ставить ограничительные резисторы большего номинала (на изумрудные ставлю 8х1к, иначе глаза выедает).

0

119

А я на индикатор наклеиваю пленку, для тонирования стекол авто. Потухших сегментов не видно, и яркость меньше. Смотрится очень красиво.

Отредактировано Andrusha (Вчера 14:59:59)

0

120

Andrusha
и я так делаю

0