Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Заголовок сообщения: Re: Простые светодиодные часы на Atmega8A
Добавлено: Вс июн 14, 2015 18:16:57
Родился
Зарегистрирован: Чт мар 25, 2010 21:35:26 Сообщений: 5
Рейтинг сообщения:0
Вот исходник (взят с другого сайта)
' Исходник для индикатора с общим анодом (ОА) $regfile = "m8def.dat" ' Работаем С Atmega8 $crystal = 8000000 'работаем На Частоте 8 Мгц Config Portb = Output Config Portd = Output Config Portc = Input Set Portc.5 'Поддтягиваем вход Portc.5 и Portc.4 резисторами к Vcc Set Portc.4 Dim X As Byte , Y As Byte , Cifri(4) As Byte , Cifra As Byte , Tochka As Byte 'рабочие переменные
Config Clock = Soft 'Включаем софтовые часы _sec = 0 : _min = 0 : _hour = 0 'Вводим время с которого будет производиться отчёт времени Config Timer0 = Timer , Prescale = 8 'Включаем таймер0, применяем делитель на 8 Config Timer1 = Counter , Edge = Falling , Prescale = 1 'Включаем таймер1, назначаем его работу по спаду от кварца 32768 Гц, делитель на 1 On Timer0 Pulse 'При срабатывании таймера0, переходим на вклатку Pulse Enable Interrupts 'Разрешаем все прерывания Enable Timer0 'Разрешаем прерывания таймера0 Config Debounce = 20 'Ставим задержку при нажатии на кнопки в 20 м.Сек.
Do 'Основной цикл Debounce Pinc.4 , 0 , Minuti , Sub ' Debounce Pinc.5 , 0 , Chasi , Sub 'Проверяем на нажатие кнопок, если кнопка нажата переходим на соответствуюшую вкладку
If _hour = 24 Then _hour = 00 ' If _min = 60 Then _min = 00 'Проверяем переменные с временем, при переполнении обнуляем их
Tochka = _sec Mod 2 ' Loop 'Конец основного цикла
Pulse: Incr X 'Увеличиваем переменную Х на еденицу (была 0, стала 1)
Cifri(1) = _hour \ 10 'Разбиваем двузначное число часов на два однозначных (21 / 10 = 2) 'Cifri(2) = Cifri(1) * 10 ' < Обычные операторы деления и умножения здесь не нужны Cifri(2) = _hour Mod 10 ' Целочисленное деление рулит, у нас тут не пентиум
Cifri(3) = _min \ 10 'Проделываем тоже самое с минутами (56 / 10 = 5) 'Cifri(4) = Cifri(3) * 10 '5 * 10 = 50 Cifri(4) = _min Mod 10 '56 – 50 = 6
'Portd = &H00 Portd = &HFF 'Гасим индикатор If X = 1 Then 'Проверяем значение Х, если оно рано 1, выполняем дествие ниже 'Portb = &H77 Portb = &H8 Cifra = Cifri(1) End If 'Конец проверки If X = 2 Then 'Опять проверяем Х 'Portb = &H7B Portb = &H4 ' Cifra = Cifri(2) ' End If ' If X = 3 Then 'Portb = &H7D Portb = &H2 Cifra = Cifri(3) End If If X = 4 Then 'Portb = &H7E Portb = &H1 Cifra = Cifri(4) End If If X > 4 Then X = 0 'Последняя проверка, если Х больше 4, обнуляем его
'Select Case Cifra 'Case 0 : Y = &HEF 'Case 1 : Y = &H8C 'Case 2 : Y = &HB7 'Case 3 : Y = &HBE 'Case 4 : Y = &HDC 'Case 5 : Y = &H7E 'Case 6 : Y = &H7F 'Case 7 : Y = &HAC 'Case 8 : Y = &HFF 'Case 9 : Y = &HFE 'End Select
Select Case Cifra 'Начинаем выбор переменной Cifra Case 0 : Y = &H10 'Если Cifra = 0, Y равен &H10 (Dec 16 ; Bin 00010000) Case 1 : Y = &H73 ' Case 2 : Y = &H48 ' Case 3 : Y = &H41 ' Case 4 : Y = &H23 ' Case 5 : Y = &H81 ' Case 6 : Y = &H80 ' Case 7 : Y = &H53 ' Case 8 : Y = &H00 ' Case 9 : Y = &H1 ' End Select 'Конец выбора Portd = Y 'Приравниваем значение переменной Y к Portb 'If Portb.2 = 0 And Tochka = 0 Then Set Portd.2 Else Reset Portd.2 If Portb.2 = 1 And Tochka = 0 Then Reset Portd.2 Else Set Portd.2 'Прверяем условие, если совпало — зажигаем точку, если нет — гасим Return ' Возврашаемся
Minuti: 'При нажатии кнопки «минуты» обнуляем секунды и увеличиваем переменную _min на 1 Incr _min _sec = 00 If _min = 60 Then _min = 00 Return 'Возврашаемся
Chasi: 'Тоже, что с минутами Incr _hour _sec = 00 If _hour > 23 Then _hour = 00 Return
_________________ Кот Темофей, открытая душа коту Василию принес в зубах мыша. И так тихонько не шурша оставил сей девайс для РАДИОКОТА
Заголовок сообщения: Re: Простые светодиодные часы на Atmega8A
Добавлено: Ср июн 24, 2015 18:11:30
Родился
Зарегистрирован: Чт мар 25, 2010 21:35:26 Сообщений: 5
Рейтинг сообщения:0
Повторяю, коды взяты с других источников
$regfile = "m8def.dat" ' мега8 $crystal = 8000000 Config Portb = Output , Portd = Output , Config Pinc.3 = Input 'конфигурируем порты на выход Portc.5 = 1 Portc.4 = 1 Dim I As Byte , X As Byte , Y As Byte , Temp As Integer , Bn(10) As Byte , Cifri(5) As Integer 'задаем всякие переменные и масивы ' 'Dotx As Integer Restore Dta ' говорим из какой таблици нужно заносить данные в масив For I = 1 To 10 ' начало цикла Read Bn(i) ' поочериде заносим ячейки из таблици в масив Next ' конец цикла Config Clock = Soft ' конфигурируем совтовые часы _sec = 0 : _min = 0 : _hour = 0 ' задаем конкретные значения времени, с которого часы будут начинать считать при включении питания Config Timer0 = Timer , Prescale = 8 ' конфигурируем таймер 0 чтоб потом на него повесить алгоритм отображения цифр Config Timer1 = Counter , Edge = Falling , Prescale = 1 ' конфигурируем таймер 1 на подсчет импульсов на кварце, припаянного к Xtal1 Xtal2 на 32768 гц БЕЗ КОНДЕРОВ! On Timer0 Pulse ' назначаем подпрограмму, которая будет запускатся по переполнению 1го таймера Enable Interrupts 'разрешаем прерывания Enable Timer0 Config Debounce = 30 'разрешаем таймер0 ' начало основного цикла Do Debounce Pinc.4 , 0 , Minuti , Sub Debounce Pinc.5 , 0 , Chasi , Sub Temp = _hour * 100 ' "складываем" часы с минутами так чтобы получилось 4хзначное число тоесть 8часов+59мин = 859 Temp = Temp + _min For I = 1 To 4 ' цикл разбиения склеенных часов с минутами на цифры и занесения каждой в таблицу масива Cifri(i) = Temp Mod 10 ' берем последнюю цифру (9) If Cifri(i) = 0 Then ' Cifri(i) = 10 ' Goto T ' End If ' Temp = Temp - Cifri(i) ' вычитаем из часов/минут последнюю цифру 859-9=850 T: ' Temp = Temp / 10 ' отбрасываем последний ноль 859/10=85 Next 'возвращаемся к началу цикла и заносим следующюю цифру в масив ' Dotx = _sec Mod 2 Loop 'конец основного цикла End ' ' Pulse: ' подпрограмма прерываний таймера0 'If Pinc.3 = 0 Then 'Else Incr X ' увеличиваем х на единицу, для выбора нужных цифр из таблици Portb = &HFF ' гасим индикатор Portd = Bn(cifri(x)) Set Portd.2 'If Dotx = 0 Then Reset Portd.2 Else Set Portd.2 ' подаем на индикатор цифру из масива Bn с номером cifri(x) Y = X - 1 ' считаем какую конкретно цифру, из 4х нужно сейчас зажечь Reset Portb.y ' зажигаем нужную цифру под номером игрик If X = 4 Then X = 0 ' обнуляем х при достижении его величины 4 'End If Return ' возвращаемся на место откуда прервали программу Dta: ' таблица с данными о цифрах зажигает по порядку : 1234567890 Data &H88 , &HB3 , &HBA , &HD8 , &H7A , &H7B , &HA8 , &HFB , &HFA , &HEB '
Minuti: Incr _min If _min = 60 Then _min = 00 Incr _hour End If If _hour > 23 Then _hour = 00 _sec = 00 Return ' Chasi: Incr _hour If _hour > 23 Then _hour = 00 Return
_________________ Кот Темофей, открытая душа коту Василию принес в зубах мыша. И так тихонько не шурша оставил сей девайс для РАДИОКОТА
Последний раз редактировалось Vittas Ср июн 24, 2015 19:26:33, всего редактировалось 1 раз.
Заголовок сообщения: Re: Простые светодиодные часы на Atmega8A
Добавлено: Ср июн 24, 2015 18:13:58
Родился
Зарегистрирован: Чт мар 25, 2010 21:35:26 Сообщений: 5
Рейтинг сообщения:0
А вот новая прошивка (V2.0), где код значительно уменьшен. Изменения: Теперь при нажатии кнопки цифорки бегут сами, пока ее держишь. Не нужно клацать 50 раз чтоб установить 50 минут.
$regfile = "m8def.dat" ' мега8 $crystal = 8000000 Config Portb = Output , Portd = Output : Portc = &H30 Dim I As Byte , X As Byte , Cifri(4) As Byte 'задаем всякие переменные и масивы Config Clock = Soft 'конфигурируем софтовые часы Config Timer0 = Timer , Prescale = 8 : On Timer0 Pulse : Enable Timer0 'конфигурируем таймер 0 чтоб потом на него повесить алгоритм отображения цифр 'назначаем подпрограмму, которая будет запускатся по переполнению 1-го таймера Config Timer1 = Counter , Edge = Falling , Prescale = 1 : Enable Interrupts ' конфигурируем таймер 1 на подсчет импульсов на кварце, припаянного к Xtal1 Xtal2 на 32768 гц БЕЗ КОНДЕРОВ! Do 'начало основного цикла If Pinc.4 = 0 Then Do Incr _min : _sec = 00 If _min > 59 Then : _min = 00 : Incr _hour : End If If _hour > 23 Then _hour = 00 : Waitms 100 Loop Until Pinc.4 = 1 End If If Pinc.5 = 0 Then Do Incr _hour : If _hour > 23 Then _hour = 00 : Waitms 100 Loop Until Pinc.5 = 1 End If Loop 'конец основного цикла Pulse: ' подпрограмма прерываний таймера0 Cifri(1) = _min Mod 10 : Cifri(2) = _min / 10 : Cifri(3) = _hour Mod 10 : Cifri(4) = _hour / 10 Portb = &HFF Incr X : If X > 3 Then X = 0 Portd = Lookup(cifri(x + 1) , Dta) Reset Portb.x Return 'возвращаемся на место откуда прервали программу Dta: 'таблица с данными о цифрах зажигает по порядку : 0123456789 Data &HEF , &H8C , &HB7 , &HBE , &HDC , &H7E , &H7F , &HAC , &HFF , &HFE
_________________ Кот Темофей, открытая душа коту Василию принес в зубах мыша. И так тихонько не шурша оставил сей девайс для РАДИОКОТА
Последний раз редактировалось Vittas Ср июн 24, 2015 19:27:35, всего редактировалось 1 раз.
Вобщем собрал, прошил, цифры есть...кнопки их меняют но сами часы не ходят...кварц менял, .
Фьюзы как прошили? В этих часах должны стоять фьюзы для работы от ВНУТРЕННЕГО генератора 8 мГц, а от внешнего кварца тактируется только счётчик "тиков"
Подскажите пожалуйста, что озночает "автоотключение"?
Это- гашение индикатора часов- до нажатия любой кнопки кроме "сброс", если она есть.. У меня часы с "автоотключением" ходили полгода от сборки из 3-х NiMg аккумуляторов, после чего я заменил аккумулятор на литиевый от "электронной сигареты" типа "PONS"
По "предварительным расчётам" могут проработать больше 5-ти лет..
...прошивку и исходник для часов с гашением индикатора, написанный akl - можно найти вот тут:...
И тут мне стало все ясно Спасибо. Поясню для тех кто не в теме (таких как я, которые первый раз с этим столкнулись). Гашение индикатора происходит в состоянии покоя (кнопки не нажимаются) по истечении заданного времени, т.е. переход в энергосберегающий режим до повторного нажатия кнопки.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения