пятница, 25 января 2013 г.

Электронная сигарета "Сопелка" с варивольтом на PIC12F683/675 и обслуживаемым атомайзером

Е-сигарета Сопелка, пилотный экземпляр 
Представлено пошаговое иллюстрированное руководство по изготовлению в домашних условиях электронной сигареты авторского образца из доступных и дешёвых компонентов.

Е-сигарета выполнена в форм-факторе "стик", для которого характерно расположение аккумулятора параллельно атомайзеру, за счёт чего достигаются прочность, компактность устройства и удобство его использования, особенно вне помещения.
Атомайзер - непроливайка с регулируемым верхним обдувом и креплением спирали на винтах.
Варивольт - переключаемый одной кнопкой по кругу, 11-позиционный - от 3 до 4 В.
От фирменной электронной сигареты в Сопелке использован только мундштук.
Питание от литиевого аккумулятора типоразмера 14500 (AA).
  Е-сигарета Сопелка, пилотный экземпляр 
Атомайзер представляет собой дрипку-непроливайку большого объёма с верхним обдувом. Почему не бак? Простота конструкции, лёгкость обслуживания и заправки, никаких "гантелей", абсолютная гарантия от протекания. Большой объём испарительной камеры - немаловажный фактор качества пара.

Изготовление атомайзера

Детали атомайзера 
Для изготовления атомайзера потребуются: шприц 10 мл, подходящий к нему по диаметру соединитель садовых шлангов, 2 дискодержателя (мандрели) для бормашины, 2 трубочки от леденцов, 2 осветительные клеммы, термоклей. Термоклей нужен без запаха.
Обработка деталей атомайзера 
От колбы шприца отрезается участок длиной 38 мм. Это будет тело атомайзера. От шлангового соединителя отрезаются или отпиливаются 2 пробки. Нижней - в которой будут стойки спирали - оставляется юбочка, для удобства вынимания пробки при смене фитиля. В верхней будут воздуховод и паропровод.
Стойки прикручиваем к любой пластинке с отверстиями, находящимися на требуемом расстоянии, чтобы они не соприкасались в процессе заливки пробки термоклеем. Канал нижней пробки может потребоваться немного расточить напильником, чтобы стойки вошли.
 Заливка верхней пробки 
Трубочки от леденцов зажимаем в тисках. Это будущие паропровод и воздуховод. Надеваем на трубочки верхнюю пробку. Обратите внимание: трубочки должны располагаться не по центру пробки, а со смещением, как показано на рисунке. Иначе не получится закрепить атомайзер в корпусе. Тщательно заполняем пробку термоклеем из предварительно хорошо разогретого пистолета, даём остыть. Заливаем и нижнюю пробку, стойки в которой располагаем по центру, без смещения. Следим за тем, чтобы между стойками было расстояние. Если термоклей не заполнил весь канал пробки, заполняем пустоты и остужаем.
 Пробки после заливки 
Одну из латунных клемм освобождаем от пластикового корпуса, корпус другой обрезаем до минимальных размеров. 
Пробки после обрезки излишков материала
Острым ножом аккуратно срезаем излишки термоклея, стараясь не повредить пластиковых деталей. Укорачиваем внешнюю часть воздуховода, оставляя запас для последующей подгонки в корпусе. 
 Обслуживаемый атомайзер в сборе 
На паропровод надеваем резиновый мундштук - единственную использованную нами деталь от фабричной электронной сигареты. Сдвигая мундштук, можно частично перекрывать воздуховод, тем самым регулируя подачу воздуха и качество пара. Жидкость закапывается непосредственно в мундштук, легко проходит по трубке и оказывается в испарительной камере, где питает фитиль нагревательной спирали.

Подготовка корпуса

В качестве корпуса взят популярный пластиковый футляр (кейс) для батарей 2х18650 или 4х16340/18350. Он изготовлен из качественного прочного полимера, идеально подходит по размерам и форме, легко обрабатывается, доступен в разных цветах и дёшев (как и все прочие комплектующие нашей Сопелки). Кроме футляра, понадобится стандартный держатель элемента питания типоразмера АА.
Детали корпуса 
Из корпуса острым инструментом вырезаются лишние перегородки. Если у держателя аккумулятора, как у показанного на рисунке, имеются чрезмерно мощные боковые фиксаторы, затрудняющие повседневную смену элемента, их целесообразно подрезать, только не до нуля, иначе аккумулятор может не держаться в отсеке.
  Подготовка корпуса 
Сверлим в стенке корпуса отверстия под паропровод и воздуховод. Устанавливаем атомайзер. При необходимости укорачиваем воздуховод, чтобы он лишь немного выступал из корпуса е-сигареты. 
  Подгонка корпуса 
Крепим держатель аккумулятора и минусовой провод на термоклей.
Держатель аккумулятора установлен 
 Корпус подготовлен, пора заняться электронной начинкой!

Схема варивольта и её монтаж

Варивольт - стабилизатор напряжения на нагревательной спирали испарителя с возможностью выбора предустановки. Для его сборки потребуются: микроконтроллер PIC12F675 или PIC12F683 в корпусе DIP8 и панелька к нему, полевой транзистор IRLML2502TR, сверхъяркий жёлтый светодиод, резисторы 100 кОм и 150 Ом, конденсаторы 100 нФ и 47 мкФ 6 В, 2 кнопки на включение и кусочек макетки 6 на 11 точек.
  Детали варивольта
Изюминка схемы варивольта - в минимуме деталей. Жёлтый светодиод используется как для индикации включения нагревателя и переключения установок напряжения, так и в качестве источника опорного напряжения для аналого-цифрового преобразователя. Принципиальная электрическая схема варивольта
Корпус светодиода может потребоваться предварительно сточить, чтобы он не задевал клемм атомайзера в корпусе.
Плата варивольта в сборе

Прошивка микроконтроллера

Автору достались уценённые микроконтроллеры с маркировкой PIC12F675, на самом деле являющиеся 683 с неработающим аппаратным ШИМ модулем. Поэтому, а также для совместимости с аутентичными PIC12F675, в прошивке используется программная ШИМ. Ни одна из характеристик электронной сигареты от этого никак не страдает.
Программа составлена на языке JAL v.2 с использованием Jallib. Блокировка нажатия клавиши не предусмотрена, при желании её можно добавить.
include 12f683
-- Используем внутренний тактовый генератор 8MHz
pragma target CLOCK     8_000_000
pragma target OSC       INTOSC_NOCLKOUT
pragma target WDT       disabled
pragma target PWRTE disabled
pragma target MCLR internal
pragma target BROWNOUT disabled
pragma target CPD disabled
pragma target CP disabled
OSCCON_IRCF   = 0b_111           -- Fosc = 8 MHz

enable_digital_io()          -- все порты в цифровой режим

const byte ADC_NVREF = ADC_NO_EXT_VREF
-- в качестве Vref используется напряжение питания
const ADC_HIGH_RESOLUTION = FALSE -- 8-битного АЦП вполне достаточно
include adc                       -- обращаемся к АЦП библиотеке
const byte ADC_CHANNEL = 0      -- анод светодиода подключен к pin_AN0
alias led is pin_a1         -- светодиод запитан от GP1 через резистор
alias heat is pin_a4              -- кнопка включения пара на GP4
alias heater is pin_a2            -- нагреватель на GP2
alias volts is pin_a5 -- кнопка выбора предустановки напряжения на GP5
OPTION_REG_NGPPU = 0   --\ 
WPU_WPU4 = 1           -- внутренние подтягивающие резисторы на кнопки
WPU_WPU5 = 1           --/
IOC_IOC4 = 1                 -- разрешаем прерывание по нажатию кнопки 
IOC_IOC5 = 1
pin_a2_direction = output   -- управление светодиодом и транзистором - 
pin_a1_direction = output   -- выходы, остальные входы 
var volatile byte voltage = 24  -- начальное значение предустановки
var volatile byte measure        -- результат АЦП
var volatile word kpwmw          -- коэффициент ШИМ
var volatile byte kpwm
var volatile byte j              -- счётчик
OPTION_REG_INTEDG = 0      -- прерывание по переходу в низкий уровень
INTCON_GIE = on          -- глобальное разрешение прерываний
INTCON_GPIF = off         -- снимаем флаг прерывания по GPIO
include delay           -- пользуемся библиотекой расчёта задержек

procedure interrupt is      -- обработчик прерывания по нажатию кнопки
pragma interrupt
 if INTCON_GPIF then         -- снимаем флаг прерывания по GPIO
  INTCON_GPIF = off
  if volts == false then    -- если нажата кнопка выбора предустановки
   if voltage == 34 then    -- если достигнут верхний предел
    voltage = 24            -- сбрасываем до нижнего предела
    led = on                -- мигаем светодиодом 2 раза вместо одного
    _usec_delay(185000)
    led = off
    _usec_delay(185000)
   else                            -- если верхний предел не достигнут
    voltage = voltage+1            -- инкремент значения предустановки
   end if
   led = on        -- мигаем светодиодом, подтверждаем смену установки
   _usec_delay(250000)
  end if
 end if
end procedure

forever loop           -- вечный цикл
 led = off             -- отключаем светодиод и нагреватель
 heater = off
 INTCON_GPIE = on         -- разрешаем прерывания по GPIO
 asm sleep                -- спим до прерывания
 if heat == false then   
-- если по выходу из прерывания нажата кнопка подачи пара
  INTCON_GPIE = off         -- запрещаем  прерывания по GPIO
  adc_init()           -- инициализируем АЦП
  set_analog_pin(ADC_CHANNEL)      
-- будем замерять напряжение на светодиоде в доле от питания
  while heat == false loop                            
-- пока нажата кнопка подачи пара, цикл работы
   led = on           -- включаем светодиод
   measure = adc_read_low_res(ADC_CHANNEL)        
-- получаем (Uсд/Uпит)*255. Uсд стабильно и равно 2 вольта
   if measure > 180 then        
-- если аккумулятор разряжен ниже 2,8 В, выходим из рабочего цикла
    exit loop
   end if
   heater = on           -- включаем спираль
   kpwmw = measure*voltage       
-- умножаем результат АЦП на предустановку и делим (сдвигаем) на 16
   kpwmw = kpwmw/16         
   if kpwmw < 255 then
-- если нужен коэффициент заполнения не 100%, цикл ШИМ
    kpwm = kpwmw
    j = 0
    while j<100 loop
     j = j+1
     if measure > 155 then
      if j == 50 then
       led = off           
-- мигаем светодиодом, если аккумулятор разряжен до 3,2 В
      end if
     end if
     delay_10us(kpwm)    -- держим транзистор открытым Кшим*10 мкс
     heater = off
     kpwm = 255 - kpwm 
     delay_10us(kpwm)   -- затем держим закрытым (255-Кшим)*10 мкс
     heater = on    -- таким образом получаем требуемую скважность
    end loop
   else        -- если 100%, ШИМ не нужна, просто включаем спираль
    if measure > 155 then        
-- мигаем светодиодом, если аккумулятор разряжен до 3,2 В
     _usec_delay(125000)
     led = off
     _usec_delay(125000)
    end if
   end if
  end loop
  enable_digital_io()         -- отключаем АЦП
 end if
end loop

Готовый HEX-файл прошивки

:020000040000FA
:040000008A111F281A
:08000800FF00030E8301A600B6
:100010000A08A7008A012008A3002108A4002208DA
:10002000A500B7280830A8000310A20D0310A00DEA
:10003000031C1C282108A207A80B142808008F30D5
:1000400083160F0570388F009F0183129F010730C0
:1000500099009A016E28BB003B0803190800013083
:100060003B02031D382800000000000000000800CB
:10007000BB03000000003B08BC00BD014828831200
:1000800003130330A0000A128A11A00B4528BD0AF1
:100090003D083C02031D3F2808000800BA003A084A
:1000A000031D552883161F140514013083123A02CC
:1000B000031D5D2883169F148514023083123A02B3
:1000C000031D652883161F150515033083123A0298
:1000D000031D6D2883169F1505160800A901A72882
:1000E000B800380DA000A00D0C30A005F3301F059E
:1000F00020049F001F1432082B2083129F149F1886
:100100007F281E08B9002630310203198928031CF4
:100110009328831203134E30A0000A128A11A00BF9
:100120008F2800009D28831203131330A0000A12A9
:100130008A11A00B9928000000001F103908080040
:10014000B600360870208312B700370808008316FF
:10015000811315169516161696160511851018306A
:100160008312AA00831601138B170B1018290B1C7E
:100170000B290B10851A0B2922302A02031DF328A4
:100180001830AA00B01430088500831203134230DF
:10019000A0006430A1000A30A2000A128A11A20B4A
:1001A000CD280A128A11A10BCB280A128A11A00BA2
:1001B000C9280000B01030088500831203134230B4
:1001C000A0006430A1000A30A2000A128A11A20B1A
:1001D000E5280A128A11A10BE3280A128A11A00B42
:1001E000E1280000F428AA0AB01430088500831220
:1001F00003131730A0006730A1002930A2000A12B3
:100200008A11A20BFF280A128A11A10BFD280A12DB
:100210008A11A00BFB282308A0002408A1002508B0
:10022000A20027088A00260E8300FF0E7F0E090019
:100230008312B010300885003011300885008B150E
:100240006300051A18298B11B301330803192A29F1
:100250001F172B291F139F131030B400B501143042
:10026000B400B5018F3083161F0550389F008312EC
:100270003408B1001530B20000304E208312051A48
:10028000B929B014300885000030A0208312AB00DB
:10029000B4302B0203194F29031C4F29B9293015FB
:1002A000300885002B08A0002A08A1001220831224
:1002B0002208AC00AD010430A0000310AD0CAC0C62
:1002C000A00B5D2900302D02031D6829FF302C0290
:1002D00003199129031891292C08AE00AF0164304D
:1002E0002F0203193E2903183E29AF0A9B302B0227
:1002F00003198329031C832932302F02031D83290C
:10030000B010300885002E082B20831230113008E1
:100310008500AE092E082B20831230153008850089
:100320006F299B302B0203193E29031C3E2983129F
:100330000313FB30A000C630A1000A128A11A10BE2
:100340009D290A128A11A00B9B290000B0103008C9
:10035000850083120313FB30A000C630A1000A12EF
:100360008A11A10BAF290A128A11A00BAD29000036
:100370003E2983169F0183129F01073099009A013D
:0203800018293A
:02400E00D43CA0
:00000001FF

Окончательная сборка е-сигареты

Готовую плату с прошитым контроллером подключаем к проводам питания и фиксируем в корпусе термоклеем. За неимением контактных гильз, концы проводов атомайзера сформированы оптимальной для клемм толщины и залужены. Чтобы предотвратить обламывание жил проводников по краю лужения, эти места защищены термоусадкой.
  Монтаж платы в корпусе 
 К стойкам атомайзера крепим винтами нихромовую или фехралевую спираль сопротивлением не менее 1,6 и не более 2,7 Ом, намотанную на фитиле из кремнезёмной или бамбуковой нити (шнура). Пропитываем фитиль жидкостью для электронных сигарет или глицерином. Готовый к работе собранный атомайзер устанавливаем в корпус и подключаем. Устанавливаем заряженный аккумулятор.
Установка и подключение атомайзера
Нашу электронную сигарету уже можно пробовать! Но необходимо ещё вывести кнопку включения атомайзера наружу корпуса. Материалом для кнопки послужат 2 колпачка от иглы одноразового шприца.
Отверстие под кнопкуСверлим отверстие под кнопку. На шток кнопки туго надеваются кольца, отрезанные от тех же колпачков.    Готовая электронная сигарета СопелкаЗаполняем пустоту штока кнопки термоклеем, формируем поверхность кнопки. Наша электронная сигарета Сопелка готова, приятного парения!

21 комментарий:

  1. Ответы
    1. Many people knows that buy freemax mesh pro tank is a good items of e-cigarette, it’s very easily found in vapesourcing and with a good prices. Electronic Cigarette does not contain tar or carbon monoxide, and also buy innokin eq kit does not have any harmful elements to your body. So it’s a healthy and fast way to live you can vape it anytime.

      Удалить
  2. А дорого будет заказать тебе изготовление контроллера?

    ОтветитьУдалить
  3. А дорого будет заказать тебе изготовление контроллера?

    ОтветитьУдалить
    Ответы
    1. If you are just getting started, joyetech atopack dolphin is definitely the best choice. Besides vaporesso revenger mini kit has absolutely amazing flavors, produces lots of vapor, has a great battery, is extremely convenient to use. Shipping is fast and vapesourcing customer service is friendly. Nothing bad to say.

      Удалить
  4. Ответы
    1. Защита от короткого замыкания в моей версии не предусмотрена. По идее, должна защитить плата батареи, но лучше не проверять.

      Удалить
  5. Здравствуйте! Можете переделать режимы нагрева для спиралей от 0.3 ом.Спасибо.

    ОтветитьУдалить
    Ответы
    1. Здравствуйте! Могу изготовить контроллер на Ваш вкус: HV, LO, варивольт, вариватт, миллиомметр... Только мне кажется, что у китайцев этого добра готового немало, и по нормальным ценам. Если ошибаюсь, пишите, могу спаять нужный кастом, с нужной формой и размерами платы, и т.д.

      Удалить
    2. В чём вообще смысл низкоомной спирали? В том, что она короткая и толстая, более долговечная, даёт более щедрый пар, меньше вероятности появления гари, верно?

      Напрямую подключать такую спираль к литий-ионным аккумуляторам вредно и опасно. Скорее всего, встроенная защита аккумулятора просто не допустит такого тока, и отключит его. Потому экспериментаторы-экстремалы снимают защиту, либо ставят незащищённые банки и пакеты. Итог - возгорания, взрывы, травмы.

      Всего этого можно избежать, благодаря понижающему преобразователю, согласователю сопротивлений, названий много. Только простой ШИМ тут не годится. ШИМ просто модулирует ток, а нам надо этот ток повысить. Для чего потребуется дополнительная деталь - индуктивный накопитель, он же дроссель, катушка, а к ней и выпрямитель нижнего плеча, который направит накопленную в катушке энергию в спираль. Диод Шоттки тут вряд ли подойдёт, нужен синхронный ключ. Это всё достижимо, в том числе, могу осуществить.

      Удалить
    3. А наивысшего КПД можно добиться, использовав саму спираль атомайзера в качестве катушки, точнее, резонатора стоячей волны. Знаете, как у радиохулиганов во времена СССР докрасна грелись плохо настроенные антенны. Только боюсь, атомайзер тоже будет ощутимым генератором радиопомех. И коммутационные потери в ключах на таких частотах будут тоже не маленькими. Потому это просто теория.

      Добавлю по дросселю. Благодаря ему, и синхронному выпрямителю на полевом транзисторе, импульсные токи верхнего ключа и аккумулятора будут не запредельными, а нормальными, ниже тока спирали. И защита аккумулятора у Вас не отключит ток, можно спокойно и безопасно пользоваться защищёнными акками.

      Удалить
  6. UPD: через несколько месяцев эксплуатации атомайзер начал течь отовсюду. Термоклей - неподходящий материал в качестве герметика. Лучше использовать силикон, гипс, иные материалы, безопасные при нагреве для дыхания.

    ОтветитьУдалить
  7. Здравствуйте! Может я не правильно выразился,сам уже больше года парю на 12-18вт.Есть 2 мода,3 Ваш(как бы Вам его фото скинуть)Токи у меня не запредельные(хотелось бы,из вашего мода без переделки выжать побольше нагрев)

    ОтветитьУдалить
    Ответы
    1. Здравствуйте! Радует, что моя статья приносит пользу. Без переделки ничего не выжать, т.к. на максимуме он просто открывает полевик. Для большего нагрева пригодится понижающий (напряжение, соответственно, повышающий ток) преобразователь. Питать его можно будет от 3.7 или 7.4 вольт. Преобразователь проще всего создать на микросхемке из зарядного устройства для автомобильного прикуривателя, P-канального низкомиллиомного (обязательно) полевика в качестве внешнего ключа и дросселя с материнской платы. Простейшую обратную связь по напряжению можно осуществить переменным резистором, только так, чтобы она не оборвалась. При обрыве обратной связи, преобразователь разгоняется на максимум. Максимум DC-DC понижайки - это постоянно открытый ключ, т.е. коротыш и срабатывание защиты аккумов, либо их возгорание/взрыв.

      Удалить
    2. Хотя у MC34063 есть вход для шунта ограничения первичного тока, но не факт, что этот шунт получится сделать вменяемым, без потери мощности на нём. Надо изучать даташиты, считать. Может быть, получится даже использовать сопротивление открытого канала ключа в качестве шунта, это был бы самый экономичный вариант.

      Удалить
    3. На самом деле, дополнительный контроллер и не нужен. Нужен PIC12, имеющий Complementary Waveform Generator (CWG). На его базе, и двух мелких силовых низкомиллиомных полевиках с логическими уровнями управления (IRLML), с дросселем от материнской платы, строим синхронный step-down. Опорного напряжения со светодиода не понадобится. т.к. PIC, скорее всего, будет иметь и FVR - fixed voltage reference. Получится отличный, мощный микроконтроллерный мод под низкоомные намотки.
      Некоторые PIC имеют на борту и прекрасный rail-to-rail операционный усилитель, что даст возможность осуществить и измерение тока. Вместо ОУ можно использовать и встроенный компаратор PIC, у которого нет ОУ, умельцы описывали такой опыт.

      Удалить
    4. Строя синхронный преобразователь, имейте в виду, что нижний и верхний ключи никогда не должны быть открыты одновременно, даже на мгновение. Сквозной ток - авария. Внимательно проследите за алгоритмом инициализации портов, предотвратите зависание с открытыми ключами.

      Всё это, на самом деле, несложно, если есть время для спокойного изучения, очень интересно, и пригодится во многих других проектах и случаях жизни, не только для вейпа.

      Удалить
  8. Спасибо!Прошивки это не моё,уже мозги сопротивляються.Могу собрать ,повторить,запрограммировать(любитель-повторитель)

    ОтветитьУдалить
    Ответы
    1. С повторителей все начинали. И у повторителей высокое входное сопротивление, зато и выходной ток высокий. ;)

      Удалить
  9. Собрал для попробовать. На готовой спирали почему-то не завелось. Вытащил на стенд, подключил реостат на 6 ом и начал гонять тесты с осциллографом. Почему-то кнопка регулировки почти ни на что не действует. То есть, мигать диод мигает (по 2 раза каждое 11е нажатие), но что на 5 ноге, что на нагрузке осциллографом вижу половинной скважности меандр - меняется только частота в небольших пределах. Как-то я по-другому представлял себе ШИМ)))

    ОтветитьУдалить