Para demonstrar o cosplay de steampunk, era necessária uma máquina de fumaça (bem, que tipo de steampunk sem fumaça?), Mas não estava no cenário da performance. Sem pensar duas vezes, decidi fabricar minha própria pequena máquina de fumaça, com controle de temperatura, controle remoto (o controlador ESP-12E foi usado) e energia da bateria. Tomei como base a neblina já descrita com a medição de temperatura, mas complicou um pouco o circuito para melhorar o desempenho.O elemento mais difícil foi a fabricação de uma espiral e um sistema de alimentação para uma mistura de glicerol com propilenoglicol. Depois de algumas experiências, eu me acomodei em uma espiral de seis voltas com um diâmetro de cerca de 12 mm, enrolada em uma “trança”, um séquito de 7 veias de titânio com 0,29 diâmetro. Em geral, seria melhor pegar um fio mais grosso e ficar sem um “rabo de porco”, mas havia uma seleção limitada de materiais em mãos. A espiral resultante tem uma resistência de cerca de meio ohm, o que fornece potência teórica para 12 volts de 240 watts (na verdade, a potência de aquecimento será menor, devido à necessidade de manter a temperatura em 210-230 graus).O fio espiral depois de torcer em uma trança e enrolar (é necessário enrolar em um tubo de diâmetro menor, pois o titânio é muito elástico), é melhor enxaguar e calcinar (fornecendo 12 volts da bateria ao calor vermelho, para eliminar contaminantes orgânicos (graxa dos dedos e similares).Em geral, havia uma idéia de fazer um aquecedor na forma de um tubo de cobre cheio de óleo do motor com uma espiral interna, o que garantiria uma uniformidade quase completa do aquecimento e daria um aquecedor muito mais poderoso, mas não havia materiais necessários à mão .Eu tive que mexer com o suprimento de fluido, pois deveria ser, por um lado, contínuo e uniforme e, por outro lado, não muito abundante. Havia uma bomba de água na mão, que não tinha controle de fluxo, por isso decidi no próximo projeto - um tubo de silicone perfurado com um diâmetro de 5 mm (uma dúzia e meia de orifícios com uma broca de 1,2 mm), envolto em algodão, sobre o qual está localizada uma espiral. Como a bomba conduz muito mais fluido do que flui através do algodão, a extremidade do tubo vai para o mesmo tanque em que a bomba pega a composição. O tanque em si é um jato de tinta com derramamento de tinta impresso na impressora, localizado sob a espiral real e, além disso, coleta gotículas de líquido que são drenadas.Devo dizer que o ajuste frouxo da espiral ao algodão (ou mesmo cabos muito longos na espiral que não entram em contato com o líquido) leva a um aquecimento desigual, que causa um cheiro ardente e pode até resultar em incêndio. Por isso, é impossível produzir espirais muito grandes ou longas, limitando o poder. Portanto, a metodologia era a seguinte - um retângulo de algodão é enrolado em um buraco no tubo (é vendido dessa forma nas lojas de papéis), então o cilindro de algodão resultante com o tubo interno é parafusado em espiral, como se fosse um fio.Ele levou uma turbina de 12 volts como ventilador, que de algum modo passatempo foi vendido por meros centavos. A bomba é uma bomba d'água chinesa (devido ao fato de ter sido projetada para 6 volts, tive que adicionar outro conversor CC-CC ao LM2596), conectado em paralelo ao ventilador. A máquina é alimentada por uma bateria Li-Pol 3S de 2,6 ampere-hora com uma classificação de 40 ° C.Esquema:
Um fragmento do código de controle (ajuste bastante grosseiro, eu não queria me preocupar com o controlador PID e suas configurações), chamamos a função pulse_heat_coil () com o intervalo desejado de aquecimento (recomendado em 10 a 20 milissegundos). Para um ajuste mais preciso - você precisa de pelo menos um segundo ADC (para medir simultaneamente a tensão da bateria) e um controlador separado do wifi (como nos mods que descrevi para vaping no stm32 e no arduino mini pro). É melhor ligar o ventilador com a bomba alguns segundos antes do aquecedor e desligá-lo uma dúzia de segundos depois, para evitar incidentes desagradáveis.
#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();
}