Para demostrar el cosplay steampunk, se necesitaba una máquina de humo (bueno, ¿qué tipo de steampunk sin humo?), Pero no estaba en la escena de la actuación. Sin pensarlo dos veces, decidí hacer mi propia pequeña máquina de humo, con control de temperatura, control remoto (se utilizó el controlador ESP-12E) y energía de la batería. Tomé como base la neblina ya descrita con la medición de temperatura, pero complicó un poco el circuito para mejorar el rendimiento.El elemento más difícil fue la fabricación de una espiral y un sistema de alimentación para una mezcla de glicerol con propilenglicol. Después de un par de experimentos, se detuvo en una espiral de seis vueltas con un diámetro de aproximadamente 12 mm, enrollada en una "coleta", un séquito de 7 vetas de titanio de 0.29 de diámetro. En general, sería mejor tomar un cable más grueso y prescindir de una "coleta", pero había una selección limitada de materiales disponibles. La espiral resultante tiene una resistencia de aproximadamente medio ohmio, lo que proporciona una potencia teórica para 12 voltios de 240 vatios (de hecho, la potencia de calentamiento será menor, debido a la necesidad de mantener la temperatura a 210-230 grados).El cable en espiral después de torcerse en una coleta y enrollarse (es necesario enrollarlo en un tubo de menor diámetro, ya que el titanio es muy elástico), es mejor enjuagar y calcinar (al suministrar 12 voltios de la batería al calor rojo, para eliminar contaminantes orgánicos (grasa de los dedos y similares).En general, existía la idea de hacer un calentador en forma de tubo de cobre lleno de aceite de motor con una espiral en el interior, lo que garantizaría una uniformidad casi completa del calentamiento y haría un calentador mucho más potente, pero no había materiales necesarios a mano .Tuve que jugar con el suministro de fluido, ya que debería ser, por un lado, continuo y uniforme, y por otro lado, no demasiado abundante. Había una bomba de agua a la mano, que no tenía un control de flujo, por lo que me decidí por el siguiente diseño: un tubo de silicona perforado con un diámetro de 5 mm (una docena y media de agujeros con un taladro de 1,2 mm), envuelto con algodón, sobre el cual se encuentra una espiral. Como la bomba impulsa mucho más fluido del que fluye a través del algodón, el extremo del tubo va al mismo tanque donde la bomba recoge la composición. El tanque en sí es un tintero sin derrames impreso en una impresora, que se encuentra debajo de la espiral real y, además, recoge gotas de líquido que se drenan de él.Debo decir que el ajuste flojo de la espiral al algodón (o incluso los cables demasiado largos en la espiral que no entran en contacto con el líquido) provocan un calentamiento desigual, lo que provoca un olor a quemado e incluso puede provocar un incendio. Debido a esto, es imposible hacer espirales demasiado grandes o largas, lo que limita el poder. Por lo tanto, la metodología fue la siguiente: se enrolla un rectángulo de algodón sobre un agujero en el tubo (se vende de tal forma en tiendas para vapeadores), luego el cilindro de algodón resultante con el tubo dentro se atornilla en espiral, como si fuera una rosca.Tomó una turbina de 12 voltios como ventilador, que de alguna manera se vendió por solo unos centavos. La bomba es una bomba de agua china (debido al hecho de que fue diseñada para 6 voltios, tuve que agregar otro convertidor de CC-CC a LM2596), conectada en paralelo con el ventilador. La máquina funciona con una batería 3S Li-Pol de 2.6 amperios-hora con una clasificación de 40C.Esquema:
Un fragmento del código de control (ajuste más bien tosco, no quería meterme con el controlador PID y sus configuraciones), llamamos a la función pulse_heat_coil () con el intervalo requerido para el calentamiento (recomendado en 10-20 milisegundos). Para un ajuste más preciso: necesita al menos un segundo ADC (para medir simultáneamente el voltaje de la batería) y un controlador separado de wifi (como en las modificaciones que describí para vapear en stm32 y arduino mini pro). Es mejor encender el ventilador con la bomba unos segundos antes del calentador y apagarlo una docena de segundos después, para evitar incidentes desagradables.
#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() {
if (digitalRead(HEATER) == HIGH)
batt_input = analogRead(A0);
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 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();
}