Зарядка-конструктор
#21
Отправлено 11 авг 2011 - 19:42
Только: без аккумулятора мигают по очереди 2 светодиода, красный и зеленый, перехода на dv/dt не заметил,никакого звука не было, но и аккумулятор ставил хорошозаряженный.
Можно еще измененную под 15 банок прошивку выложить? Хочу другу такую же собрать.
Это нужно резистор в делителе 20 кОм поставить?
и подскажите пожалуйста какие байты в HEX менять, сам даже на варианте в бейсике наверное не смогу, а еще и компилировтаь потом.
#22
Отправлено 11 авг 2011 - 20:33
Счас разобраться как компилировать.
#23
Отправлено 09 окт 2011 - 23:24
#24
Отправлено 09 окт 2011 - 23:33
Сначала хочу сказать спасибо автору. Нужная темка!
Теперь по теме.
Сразу оговорюсь, что с программированием у меня… совсем никак. Ну, не моё… Поэтому не пинайте ногами…
Но "немного" знаю английский
Ну, а как говорил топикстартер
Вот и я кое что понял…Файл с расширением .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 ??? Может есть какой нить переводчик, запутался совсем…
ПРОСЬБА!!!
Кто может проверить мой вариант прошивки, и подскажите как исправить вышеозначенную строку.
Заранее благодарен!!!
Прикрепленные файлы
#25
Отправлено 10 окт 2011 - 12:14
Привет всем!
Сначала хочу сказать спасибо автору....
_______________________________________
Теперь, то, чего не смог сделать:
В строке
"TRISIO = %00011011 'gpio2 & gpio5 на выход - остальные вход"
не знаю как установить порт gpio1 на выход.
при переводе числа 00011011 из двоичной в десятичную систему, получаем 27 ??? Может есть какой нить переводчик, запутался совсем…
ПРОСЬБА!!!
Кто может проверить мой вариант прошивки, и подскажите как исправить вышеозначенную строку.
Заранее благодарен!!!
Добрый день!
Для начала - спасибо за "спасибо". :-)
Далее- "курим" вот это.
Ну а потом - можно и вопросы задавать.
Прикрепленные файлы
#26
Отправлено 10 окт 2011 - 14:21
Ещё раз спасибо за русский datasheet! Вчера нашёл только английский, и, возможно, моих знаний технического английского не хватило на расшифровку. Или, мож, поздно было, спать сильно хотел…Добрый день!Для начала - спасибо за "спасибо". :-)Далее- "курим" вот это.Ну а потом - можно и вопросы задавать.
Вкурил… смиялсо (шутка)!!!
Как я понял (не факт, что правильно ) строка должна выглядеть следующим образом:
TRISIO = %00011001 'gpio1 & gpio2 & gpio5 на выход - остальные вход
Я прав?
Ну и как теперь прошивочка?
Ещё я изменил тайминги ускоренной зарядки; время заряда - 10сек. время разряда - 3 сек. Почему-то подумалось, что так правильнее. Как думаете? Напомню, ток заряда ~ 1.5A, разряда ~ 400mA.
Заранее благодарен!!!
Прикрепленные файлы
#27
Отправлено 10 окт 2011 - 19:36
Как я понял (не факт, что правильно ) строка должна выглядеть следующим образом:
TRISIO = %00011001 'gpio1 & gpio2 & gpio5 на выход - остальные вход
Я прав?
Правы.
Сами Микрочиповцы рекомендуют запоминать как настраивать ТРИС-регистры следующим образом
если бит 1 - 1nput (вход), если бит 0 - то 0utput (выход).
#28
Отправлено 10 окт 2011 - 21:31
P.S. Пробовал что либо сделать в picsimulatoride, увы, пробел знаний основ программирования не позволяет как либо осмысленно работать с этой прогой, поэтому, если кого не затруднит, проверьте мою прошивку и, если всё good скомпилируйте в *.hex. Как я понял, это не занимает много времени!
Заранее, премного благодарен!!!!!!!!!!!!!!!!!!!!!!!!
P.P.S. И ещё вопрос:
Для какой цели служит резистор R11 по моей схеме. Я его тупо перенёс из схемы-оригинала, но так и не понял назначения… И в прошивке, вроде, не упоминается порт GP3? Или проглядел???
Прикрепленные файлы
#29
Отправлено 11 окт 2011 - 01:07
На верное нет.У вас gpio0,gpio3,gpio4-выход.000543210 может понятно так будет.TRISIO = %00011001 'gpio1 & gpio2 & gpio5 на выход - остальные вход
Я прав?
#30
Отправлено 11 окт 2011 - 02:24
На верное нет.У вас 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
Отправлено 11 окт 2011 - 02:28
А это взаимосвязано, порт GPIO.3 (вывод 4) видать отключен в конфигурации контроллера. А раз он отключен, то этот вывод работает как вывод сброса (MCLR), и для нормальной работы контроллера должен быть подтянут к +Vdd (в вашем случае R11).P.P.S. И ещё вопрос:
Для какой цели служит резистор R11 по моей схеме. Я его тупо перенёс из схемы-оригинала, но так и не понял назначения… И в прошивке, вроде, не упоминается порт GP3? Или проглядел???
#32
Отправлено 11 окт 2011 - 04:52
А еще топикстартер настоятельно рекомендовал:Ну, а как говорил топикстартер :
"Файл с расширением .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
Прикрепленные файлы
#33
Отправлено 11 окт 2011 - 05:04
А теперь часть #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
Отправлено 11 окт 2011 - 05:11
Тогда качаем здесь.
(Да не упрекнет меня модератор в генерации постов :-) )
Прикрепленные файлы
#35
Отправлено 11 окт 2011 - 14:44
Ну, я, как бы и не менял ничего из вышеОписанного…Зрим post#1 file READMEE!!!.txtЯвляясь автором и владельцем данной разработки Разрешаю:1. Для "домашних" поделок делать ВСЕ что Вам придет в голову :-).При выкладывании в сеть - Запрещаю:1. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP5 --- 0 - ЗАРЯД, 1 - ЗАРЯД ОТКЛЮЧЕН.2. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP4 --- НА НЕМ ВСЕГДА АЦП.3. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP3 --- ВСЕГДА ВЫБОР КОЛ-ВА БАНОК.4. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP2 --- ВСЕГДА С/Д.Это не мне нужно - Это для совместимости по железу.Ну погорячился я немного.ОТНЫНЕ пункт №3 читать так:3. ИЗМЕНЯТЬ АЛГОРИТМ РАБОТЫ ПОРТА GP3 --- ВСЕГДА КНОПКА НА ЧТОЛИБОНа сегодня "курева" хватит - дерзайте !!!
Да и Gipsy, вроде, понятно всё объяснил насчёт GP3…
А совместимость по железу - вещь весьма условная :-) Мне, например, намного проще рассчитать, и совместить железо, чем писАть, или править прошивку :-)
Кста, вопрос автору (правда ещё не понял, смогу или нет):
Разрешено ли проинвертировать работу порта GP1 в прошивке, при условии что я выложу к ней схему железа? Это несколько бы упростило реализацию разрядки в железе.
#36
Отправлено 11 окт 2011 - 14:59
Разрешено ли проинвертировать работу порта GP1 в прошивке, при условии что я выложу к ней схему железа? Это несколько бы упростило реализацию разрядки в железе.
Порт GP1 Вы вольны использовать по своему усмотрению
"см. посты выше "
#37
Отправлено 11 окт 2011 - 22:29
Что поменялось:
Сразу оговорюсь, лоханулся от невнимательности, думая что у пика выходы с ОК. Оказалось что выходы комплементарны, т.е. когда "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" типа, неправильное имя метки??? Дальше, ессна, никак. Помогите неучу, плиз, отстроить прогу…
Вся прошивка на Бейсике в аттаче.
Прикрепленные файлы
#38
Отправлено 12 окт 2011 - 01:39
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
Отправлено 12 окт 2011 - 07:52
1. Метка должна быть с двоеточием.
precharge:
2.Разве pre_charge = precharge ?
1. Млин, я реально туплю, MANY THANKS!!!
2. Сам, потом, нашёл… Это от невнимательности, поздно было, сонный был… sorry!
#40
Отправлено 12 окт 2011 - 11:20
В папке с IDE есть файл "Basic Compiler Reference Manual" - почитай его.1. Млин, я реально туплю, MANY THANKS!!!
2. Сам, потом, нашёл… Это от невнимательности, поздно было, сонный был… sorry!