Перейти к содержимому

Зарядка-конструктор


Сообщений в теме: 46

#21
tough

    Новичок

  • Пользователи
  • 3 сообщений
Заказал печатку и сделал. Последняя схема на 10 банок заработала.
Только: без аккумулятора мигают по очереди 2 светодиода, красный и зеленый, перехода на dv/dt не заметил,никакого звука не было, но и аккумулятор ставил хорошозаряженный.
Можно еще измененную под 15 банок прошивку выложить? Хочу другу такую же собрать.
Это нужно резистор в делителе 20 кОм поставить?
и подскажите пожалуйста какие байты в HEX менять, сам даже на варианте в бейсике наверное не смогу, а еще и компилировтаь потом.

#22
tough

    Новичок

  • Пользователи
  • 3 сообщений
Вроде понял, резистор 25кОм должен быть, для делителя 1/5.
Счас разобраться как компилировать.

#23
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД
Я не знаю, как тут удалять сообщения, но после редактирования их стало два, :blink: поэтому читайте следующее :D

#24
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД
Привет всем!
Сначала хочу сказать спасибо автору. Нужная темка!
Теперь по теме.
Сразу оговорюсь, что с программированием у меня… совсем никак. Ну, не моё… Поэтому не пинайте ногами…
Но "немного" знаю английский :rolleyes:
Ну, а как говорил топикстартер

Файл с расширением .bas открывается блокнотом - небольшие знания английского и все становиться понятным

Вот и я кое что понял…
Теперь конкретно:
У меня шуруповёрт на 18V, т.е. 15 банок. Ещё, хотелось бы сделать разряд через один из портов. Не только для того, что бы разряжать недоразряженные, но и что бы в процессе заряда была, заодно, и тренировка. Это абсолютно не вредит, а даже продлевает их, и так, короткий век. Поправил я прошивку на бейсике от шуруповёрта на 10 банок.
Изменил:
1. Подогнал константы для 18V (15 банок).
2. После установки аккумулятора в зарядник, при напряжении более 1V на банку включается процесс разряда через порт GP1.
3. В процессе заряда после 1сек зарядного тока идет 0.3 сек разрядного.
4. Ток заряда у меня 1С, поэтому время заряда уменьшено до 1.5ч

Теперь, то, чего не смог сделать:
В строке
"TRISIO = %00011011 'gpio2 & gpio5 на выход - остальные вход"
не знаю как установить порт gpio1 на выход.
при переводе числа 00011011 из двоичной в десятичную систему, получаем 27 :blink: ??? Может есть какой нить переводчик, запутался совсем…
ПРОСЬБА!!!
Кто может проверить мой вариант прошивки, и подскажите как исправить вышеозначенную строку.

Заранее благодарен!!!

Прикрепленные файлы

  • Прикрепленный файл  charge_uni_18V_disch_1_1.zip   2.69К


#25
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений

Привет всем!
Сначала хочу сказать спасибо автору....
_______________________________________
Теперь, то, чего не смог сделать:
В строке
"TRISIO = %00011011 'gpio2 & gpio5 на выход - остальные вход"
не знаю как установить порт gpio1 на выход.
при переводе числа 00011011 из двоичной в десятичную систему, получаем 27 :blink: ??? Может есть какой нить переводчик, запутался совсем…
ПРОСЬБА!!!
Кто может проверить мой вариант прошивки, и подскажите как исправить вышеозначенную строку.

Заранее благодарен!!!


Добрый день!
Для начала - спасибо за "спасибо". :-)
Далее- "курим" вот это.
Ну а потом - можно и вопросы задавать.

Прикрепленные файлы

  • Прикрепленный файл  PIC12F629_675-RUS.pdf   1.87МБ


#26
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД

Добрый день!Для начала - спасибо за "спасибо". :-)Далее- "курим" вот это.Ну а потом - можно и вопросы задавать.

Ещё раз спасибо за русский datasheet! Вчера нашёл только английский, и, возможно, моих знаний технического английского не хватило на расшифровку. Или, мож, поздно было, спать сильно хотел…
Вкурил… смиялсо (шутка)!!!
Как я понял (не факт, что правильно :rolleyes: ) строка должна выглядеть следующим образом:
TRISIO = %00011001 'gpio1 & gpio2 & gpio5 на выход - остальные вход
Я прав?
Ну и как теперь прошивочка?
Ещё я изменил тайминги ускоренной зарядки; время заряда - 10сек. время разряда - 3 сек. Почему-то подумалось, что так правильнее. Как думаете? Напомню, ток заряда ~ 1.5A, разряда ~ 400mA.
Заранее благодарен!!!

Прикрепленные файлы

  • Прикрепленный файл  charge_uni_18V_disch_1_2.zip   2.69К


#27
Gipsy

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 626 сообщений
  • ГородСтаниславів

Как я понял (не факт, что правильно :rolleyes: ) строка должна выглядеть следующим образом:
TRISIO = %00011001 'gpio1 & gpio2 & gpio5 на выход - остальные вход
Я прав?


Правы.
Сами Микрочиповцы рекомендуют запоминать как настраивать ТРИС-регистры следующим образом
если бит 1 - 1nput (вход), если бит 0 - то 0utput (выход).

#28
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД
А вот и схемка. Рисовал, правда на скорую руку, если есть касяки, укажите, исправлю. Или если сам найду, тоже исправлю. Номиналы приблизительные, считал навскидку в уме!

P.S. Пробовал что либо сделать в picsimulatoride, увы, пробел знаний основ программирования не позволяет как либо осмысленно работать с этой прогой, поэтому, если кого не затруднит, проверьте мою прошивку и, если всё good скомпилируйте в *.hex. Как я понял, это не занимает много времени!
Заранее, премного благодарен!!!!!!!!!!!!!!!!!!!!!!!!
P.P.S. И ещё вопрос:
Для какой цели служит резистор R11 по моей схеме. Я его тупо перенёс из схемы-оригинала, но так и не понял назначения… И в прошивке, вроде, не упоминается порт GP3? Или проглядел???

Прикрепленные файлы

  • Прикрепленный файл  Charge12F675.zip   82.89К


#29
VRTP

    Новичок

  • Пользователи
  • 3 сообщений

TRISIO = %00011001 'gpio1 & gpio2 & gpio5 на выход - остальные вход
Я прав?

На верное нет.У вас gpio0,gpio3,gpio4-выход.000543210 может понятно так будет.

#30
Gipsy

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 626 сообщений
  • ГородСтаниславів

На верное нет.У вас gpio0,gpio3,gpio4-выход.000543210 может понятно так будет.


И вот зачем путать зря человека?
Бит 1 - означает вход, бит 0 - выход.
Соответственно все он правильно расставил.


Из родного даташита:
GPIO is an 6-bit wide, bidirectional port. The
corresponding data direction register is TRISIO.
Setting a TRISIO bit (= 1) will make the corresponding
GPIO pin an input (i.e., put the corresponding output
driver in a High-Impedance mode). Clearing a TRISIO
bit (= 0) will make the corresponding GPIO pin an
output

#31
Gipsy

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 626 сообщений
  • ГородСтаниславів

P.P.S. И ещё вопрос:
Для какой цели служит резистор R11 по моей схеме. Я его тупо перенёс из схемы-оригинала, но так и не понял назначения… И в прошивке, вроде, не упоминается порт GP3? Или проглядел???

А это взаимосвязано, порт GPIO.3 (вывод 4) видать отключен в конфигурации контроллера. А раз он отключен, то этот вывод работает как вывод сброса (MCLR), и для нормальной работы контроллера должен быть подтянут к +Vdd (в вашем случае R11).

#32
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений
Хорошая трава :-)

Ну, а как говорил топикстартер :
"Файл с расширением .bas открывается блокнотом - небольшие знания английского и все становиться понятным."

А еще топикстартер настоятельно рекомендовал:

Еще лучше открывать файл .bas в PIC Simulator IDE (http://www.oshonsoft…/downloads.html)
- подсветка синтаксиса все расставит по полочкам.
Вкурить - вкурили, а теперь
1. качаем http://www.oshonsoft…/downloads.html
2. пьем таблетку(см. файлы)

Далее - запускаем IDE.
жмем OPTIONS->SELEKT MIKROKONTROLLER (выбираем МК)
далее TOOLS-> BASIC COMPILER
затем FILE->OPEN и указываем на файл с расширением .BAS
наслаждаемся..... :-)
далее TOOLS->COMPILE & ASSEMBLE
.... и начинаем исправлять ошибки.
если ошибок нет - получите и .asm и .hex

Прикрепленные файлы

  • Прикрепленный файл  PIC Simulator IDE 6.71 CRC.rar   481.14К


#33
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений
Уф… вроде все правильно написал.
А теперь часть #2.
Читаем внимательно
post #14.
"too select :
Неплохо было бы ввести разряд т. к. никель-кадмиевые аккумуляторы сильно подвержены
"эффекту памяти".

GLUHOY:
Про "эффект памяти" согласен, но по опыту эксплуатации дрели знаю - обычно из банок
"высасывается" весь заряд, поэтому даже у навароченных фирменных функции разряда
не замечал.
Но если сильно хочется - я специально оставил две ноги МК свободными - написать пару
строчек на Бейсике не проблема - конструируйте ! "


Если Вас это не остановило - тогда едем далее:

too BobLoran:
P.P.S. И ещё вопрос:
Для какой цели служит резистор R11 по моей схеме. Я его тупо перенёс из схемы-оригинала,
но так и не понял назначения…
И в прошивке, вроде, не упоминается порт GP3? Или проглядел???

Зрим
post#1 file READMEE!!!.txt
Являясь автором и владельцем данной разработки
Разрешаю:
1. Для "домашних" поделок делать ВСЕ что Вам придет в голову :-).

При выкладывании в сеть -
Запрещаю:
1. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP5 --- 0 - ЗАРЯД, 1 - ЗАРЯД ОТКЛЮЧЕН.
2. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP4 --- НА НЕМ ВСЕГДА АЦП.
3. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP3 --- ВСЕГДА ВЫБОР КОЛ-ВА БАНОК.
4. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP2 --- ВСЕГДА С/Д.
Это не мне нужно - Это для совместимости по железу.


Ну погорячился я немного.
ОТНЫНЕ пункт №3 читать так:
3. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP3 --- ВСЕГДА КНОПКА НА ЧТОЛИБО
На сегодня "курева" хватит - дерзайте !!!

#34
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений
Дал URL а не работает :-(
Тогда качаем здесь.

(Да не упрекнет меня модератор в генерации постов :-) )

Прикрепленные файлы

  • Прикрепленный файл  picsimulatoridesetup.rar   1.39МБ


#35
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД

Зрим post#1 file READMEE!!!.txtЯвляясь автором и владельцем данной разработки Разрешаю:1. Для "домашних" поделок делать ВСЕ что Вам придет в голову :-).При выкладывании в сеть - Запрещаю:1. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP5 --- 0 - ЗАРЯД, 1 - ЗАРЯД ОТКЛЮЧЕН.2. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP4 --- НА НЕМ ВСЕГДА АЦП.3. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP3 --- ВСЕГДА ВЫБОР КОЛ-ВА БАНОК.4. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP2 --- ВСЕГДА С/Д.Это не мне нужно - Это для совместимости по железу.Ну погорячился я немного.ОТНЫНЕ пункт №3 читать так:3. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP3 --- ВСЕГДА КНОПКА НА ЧТОЛИБОНа сегодня "курева" хватит - дерзайте !!!

Ну, я, как бы и не менял ничего из вышеОписанного…
Да и Gipsy, вроде, понятно всё объяснил насчёт GP3…
А совместимость по железу - вещь весьма условная :-) Мне, например, намного проще рассчитать, и совместить железо, чем писАть, или править прошивку :-)
Кста, вопрос автору (правда ещё не понял, смогу или нет):
Разрешено ли проинвертировать работу порта GP1 в прошивке, при условии что я выложу к ней схему железа? Это несколько бы упростило реализацию разрядки в железе.

#36
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений
Кста, вопрос автору (правда ещё не понял, смогу или нет):
Разрешено ли проинвертировать работу порта GP1 в прошивке, при условии что я выложу к ней схему железа? Это несколько бы упростило реализацию разрядки в железе.

Порт GP1 Вы вольны использовать по своему усмотрению
"см. посты выше "

#37
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД
C позволения автора я поправил прошивку, и проинвертировал в прошивке выход не разрядку. Теперь "железо" выглядит так:


Что поменялось:
Сразу оговорюсь, лоханулся от невнимательности, думая что у пика выходы с ОК. Оказалось что выходы комплементарны, т.е. когда "0" там земля, когда "1" там +5В. Пришлось колхозить сдвиг уровня заряжающему полевику, иначе он бы не закрывался. Сдвиг сделал стабилитроном, что имеет несколько недостатков, в частности, подбор резистора R4 для установки рекомендуемого тока стабилизации (указан в даташите на стаб.) и стабилизации питания, т.к. в противном случае будет плавать напруга на затворе, и полевик может работать нестабильно. Можно, как в оригинале использовать 2 транзистора для инверсии и раскачки силового, но помойму это значительное усложнение схемы. Но, если кому надо, пишите, выложу и такой вариант.
Так же пересчитаны все номиналы, разрядка переделана под уровень "1" и правильно подключен сд "charge".
Я себе сделаю по другому, проинвертировав выход GP5 в прошивке, и добавлю транзистор с ОК. Примерно так:

ЭТУ СХЕМУ НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ С ВЫЛОЖЕННЫМИ ТУТ ПРОШИВКАМИ!!!
Прошивку к этой схеме я не буду выкладывать ввиду запрета автора!!!

Теперь про пляски с бубном.
Я, всё таки, не рождён быть программистом!!!
Строка:

wait_bat:
'---------------------------------------------------------------------
'ждем установки аккумуляторов
WaitMs 500
led_ok = 1 'весело мигнули светодиодом
WaitMs 1000 'подождали секунду ( а куда спешить ? )
led_ok = 0 'потушили светодиод
Adcin 3, volt_temp 'прочитали АЦП. получили 0-1023 единиц
If volt_temp < volt_min Then Goto precharge 'если недозaряжен - то подзаряжаем, иначе
Goto error_v
'======================================================================

pre_discarge

'----------------------------------------------------------------------
discharge = dis_on 'включили разряд
WaitMs 10000 '10 секунд разряжаем
discharge = Not dis_on 'отключили разряд
Adcin 3, volt_temp 'прочитали АЦП. получили 0-1023 единиц
WaitMs 50
If volt_temp > volt_min Then Goto pre_discharge 'если не нормa - то заново, иначе
Goto pre_charge
'======================================================================

precharge

'----------------------------------------------------------------------
charge = ch_on 'включили заряд
'проверяем …
WaitMs 500 'пол секунды кочегарим банки (если они есть )
charge = Not ch_on 'отключили заряд
WaitMs 1000
Adcin 3, volt_temp 'прочитали АЦП. получили 0-1023 единиц
If volt_temp < volt_min Then Goto precharge 'если не нормa - то заново, иначе
Gosub beep 'радостно пищим один раз
WaitMs 500 'подождали
Adcin 3, volt_temp 'прочитали АЦП. получили 0-1023 едениц
volt_temp_max = volt_temp
timer_flag = 0
timer = 0
delta = 0 'приготовились к зарядке …



error_v
'---------------------------------------------------------------------------
Gosub beep 'грустно пищим один раз
Gosub beep_dis 'радостнее - второй раз
Goto pre_discharge 'и, на разрядку



beep_dis:
FreqOut led_ok, 2000, 100 'пищим портом GPIO_2 с частотой 2000 Гц в течении 100 миллисекунд
WaitMs 200 'пауза 200 миллисекунд

Кто мне скажет, что ему не нравится в выделенной строке? Я 2 часа голову ломал, так ни к чему и не пришёл. Пробовал так:
If volt_temp > volt_min Then Goto error_v 'если недоразряжен - то разряжаем, иначе
Goto pre_charge

всё равно пишет ошибку: "incorrect line label name" типа, неправильное имя метки??? Дальше, ессна, никак. Помогите неучу, плиз, отстроить прогу…
Вся прошивка на Бейсике в аттаче.

Прикрепленные файлы

  • Прикрепленный файл  111.zip   2.71К


#38
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений

Adcin 3, volt_temp 'прочитали АЦП. получили 0-1023 единиц
If volt_temp < volt_min Then Goto precharge 'если недозaряжен - то подзаряжаем, иначе
Goto error_v
'======================================================================

pre_discarge

'----------------------------------------------------------------------

Adcin 3, volt_temp 'прочитали АЦП. получили 0-1023 единиц
WaitMs 50
If volt_temp > volt_min Then Goto pre_discharge 'если не нормa - то заново, иначе
Goto pre_charge
'======================================================================

precharge

'----------------------------------------------------------------------


1. Метка должна быть с двоеточием.
precharge:
2.Разве pre_charge = precharge ?

#39
BobLoran

    Пользователь

  • Пользователи
  • 12 сообщений
  • ГородРнД

1. Метка должна быть с двоеточием.
precharge:
2.Разве pre_charge = precharge ?


1. Млин, я реально туплю, MANY THANKS!!!
2. Сам, потом, нашёл… Это от невнимательности, поздно было, сонный был… sorry!

#40
GLUHOY

    Продвинутый пользователь

  • Проверенные
  • 31 сообщений

1. Млин, я реально туплю, MANY THANKS!!!
2. Сам, потом, нашёл… Это от невнимательности, поздно было, сонный был… sorry!

В папке с IDE есть файл "Basic Compiler Reference Manual" - почитай его.