آلة دخان محلية الصنع

لإثبات تأثيري steampunk ، كانت هناك حاجة إلى آلة دخان (حسنًا ، أي نوع من steampunk بدون دخان؟) ، لكنها لم تكن في مسرح الأداء. دون التفكير مرتين ، قررت أن أصنع آلة الدخان الصغيرة الخاصة بي ، مع التحكم في درجة الحرارة ، وجهاز التحكم عن بعد (تم استخدام وحدة تحكم ESP-12E) وطاقة البطارية. أخذت كأساس الضباب الموصوف بالفعل مع قياس درجة الحرارة ، ولكن معقد قليلاً في الدائرة لتحسين الأداء.



كان العنصر الأكثر صعوبة هو تصنيع نظام لولبي ونظام تغذية لمزيج من الجلسرين مع البروبيلين جليكول. بعد تجربتين ، توقف على دوامة سداسية الدوران بقطر حوالي 12 ملم ، جرح من "ضفيرة" ، حاشية من 7 عروق من التيتانيوم بقطر 0.29. بشكل عام ، سيكون من الأفضل أن تأخذ سلكًا أكثر سمكًا بدون "ضفيرة" ، ولكن كان هناك مجموعة محدودة من المواد في متناول اليد. تتمتع اللولب الناتج بمقاومة حوالي نصف أوم ، مما يعطي قوة نظرية لـ 12 فولت من 240 واط (في الواقع ، ستكون طاقة التسخين أقل ، بسبب الحاجة إلى الحفاظ على درجة الحرارة عند 210-230 درجة).

السلك اللولبي بعد التواءه في ضفيرة ولف (من الضروري اللف على أنبوب بقطر أصغر ، حيث أن التيتانيوم مرن للغاية) ، فمن الأفضل شطفه وتكلسه (من خلال توفير 12 فولت من البطارية إلى الحرارة الحمراء ، للقضاء على الملوثات العضوية (الشحم من الأصابع وما شابه).

بشكل عام ، كانت هناك فكرة لصنع سخان على شكل أنبوب نحاسي مملوء بزيت المحرك بداخله حلزوني ، مما يضمن التوحيد شبه الكامل للتدفئة ويجعل سخانًا أقوى بكثير ، ولكن لم تكن هناك مواد ضرورية في متناول اليد .

كان علي أن أعبث بإمداد السوائل ، لأنه يجب أن يكون ، من جهة ، مستمرًا وموحدًا ، ومن ناحية أخرى ، ليس وفيرًا جدًا. كانت هناك مضخة مياه في متناول اليد ، والتي لم يكن لديها تحكم في التدفق ، لذلك استقرت على التصميم التالي - أنبوب سيليكون مثقب بقطر 5 مم (ثقب واحد ونصف دزينة بحفر 1.2 مم) ، ملفوف بصوف قطني ، على رأسه لولب. نظرًا لأن المضخة تدفع المزيد من السوائل أكثر مما تتدفق عبر الصوف القطني ، فإن نهاية الأنبوب تذهب إلى نفس الخزان حيث تلتقط المضخة التكوين. الخزان نفسه عبارة عن محبر غير قابل للانسكاب مطبوع على طابعة ، يقع تحت اللولب الفعلي ، بالإضافة إلى أنه يجمع قطرات من السائل التي تتدفق منه.

يجب أن أقول أن النوبة الفضفاضة للولب للقطن (أو حتى الخيوط الطويلة جدًا على اللولب التي لا تلامس السائل) تؤدي إلى تسخين غير متساوٍ ، مما يسبب رائحة احتراق ويمكن أن يؤدي إلى نشوب حريق. وبسبب هذا ، من المستحيل عمل لولبات كبيرة جدًا أو طويلة ، مما يحد من القوة. لذلك ، كانت المنهجية على النحو التالي - يتم لف مستطيل من الصوف القطني فوق ثقب في الأنبوب (يتم بيعه في مثل هذا الشكل في مخازن الأوراق) ، ثم يتم ثني أسطوانة القطن الناتجة مع الأنبوب بداخلها في لولب ، كما لو كان بخيوط.

أخذ توربينًا بجهد 12 فولت كمروحة ، والتي تم بيعها بطريقة أو بأخرى مقابل أجر ضئيل. المضخة هي مضخة مياه صينية (بسبب حقيقة أنها صممت لـ 6 فولت ، اضطررت إلى إضافة محول تيار مستمر آخر إلى LM2596) ، متصل بالتوازي مع المروحة. الجهاز مدعوم ببطارية 3S Li-Pol بقدرة 2.6 أمبير / ساعة مع تصنيف 40 درجة مئوية.

مخطط:

الصورة

جزء من رمز التحكم (بدلاً من الضبط الخشن ، لم أكن أرغب في إزعاج وحدة تحكم PID وإعداداتها) ، نسمي وظيفة pulse_heat_coil () مع الفاصل الزمني المطلوب للتسخين (موصى به في 10-20 مللي ثانية). لإجراء تعديل أكثر دقة - أنت بحاجة إلى ADC ثاني على الأقل (لقياس جهد البطارية في نفس الوقت) ووحدة تحكم منفصلة من wifi (كما هو الحال في التعديلات التي وصفتها لـ vaping على stm32 و arduino mini pro). من الأفضل تشغيل المروحة بالمضخة قبل بضع ثوانٍ من السخان وإيقاف تشغيلها بعد عشرات الثواني من أجل تجنب الحوادث غير السارة.

// Measure coil resistance (and put it into coil_input)
#define TEST_RESISTOR 25
#define HALF_PULSE_RANGE 1.6
#define STOP_PULSE_RANGE 1.7

float coil_input_zero = 0.001;
float coil_input_zero, batt_input, coil_resist;

void measure_coil() {
  // Measure battery voltage (only possible when heater on)
  if (digitalRead(HEATER) == HIGH)
    batt_input = analogRead(A0);

  // Turn off heater
  analogWrite(HEATER, 0);
  digitalWrite(HEATER, LOW);
  delayMicroseconds(10);
  
  digitalWrite(TESTPIN, HIGH);
  delayMicroseconds(10);
  coil_input = analogRead(A0);
  digitalWrite(TESTPIN, LOW);
  delayMicroseconds(10);
  if (coil_input_zero == 0.001)
    coil_input_zero = coil_input;

  coil_resist = TEST_RESISTOR * ((float) coil_input / (float) batt_input - 1);
} // void measure_coil()

// Make coil heating pulse with thermocontrol
void pulse_heat_coil(int pulse_delay) {
  float curr = (float) coil_input / (float) coil_input_zero;
  
  if ((coil_input < 1023) && (curr < STOP_PULSE_RANGE)) {
    if (curr > HALF_PULSE_RANGE)
      analogWrite(HEATER, PWMRANGE / 2);
    else 
      analogWrite(HEATER, PWMRANGE-1);
    delay(pulse_delay - 1);
  } else {
    analogWrite(HEATER, 0);
    digitalWrite(HEATER, LOW);
    delay(pulse_delay - 1);
  }

  delayMicroseconds(50);
  measure_coil();
} // void pulse_heat_coil(int pulse_delay)

Source: https://habr.com/ru/post/ar399387/


All Articles