Bomba de desumidificador automatizado
Componentes e suprimentos
| | × | 1 | |
| Adafruit Proto Shield para Arduino Kit | | × | 1 | |
| Relé SPDT 120VAC / 24VDC @ 1A | | × | 1 | |
| Transistor MPSA13 (par Darlington) | | × | 2 | |
| Bloco Terminal (300V @ 20A, 12-24AWG) [NTE 25-E700-10] | | × | 1 | |
| | × | 1 | |
| Cabo de extensão de energia aterrado 16 AWG | | × | 1 | |
| Caixa de projeto à prova d'água | | × | 1 | |
| | × | 1 | |
| 3/8 "(diâmetro interno) tubulação [100 pés] | | × | 1 | |
| Pocket Solder- 60/40 Rosin Core 0.031 "diâmetro | | × | 1 | |
| Fluxo de pasta de colofónia | | × | 1 | |
Sobre este projeto
Idéia:
Em dezembro, viajei para casa, no Missouri, para passar as férias com minha família. Eu não tinha ideia do que dar aos meus sogros no Natal e tinha voltado para casa de mãos vazias. Então, enquanto eu estava sentado e visitando, por acaso eles perguntaram se eu poderia correr até o porão e esvaziar o desumidificador. Normalmente, os desumidificadores têm uma saída ou bico para conectar uma mangueira de jardim, de modo que a condensação pode vazar para um ralo. Infelizmente, seu modelo não tem, então eles têm que continuar subindo e descendo as escadas para o porão pelo menos duas vezes por dia. Eureka! Percebi o que poderia fazer como presente de Natal ... uma bomba de depósito desumidificador automatizado !!! Então corri para o RadioShack, peguei todas as peças e comecei a trabalhar!
Declaração do problema:
Antes que o nível da água fique alto o suficiente para que o desumidificador seja desligado, preciso esvaziar o tanque, esperar que ele se encha novamente e repetir indefinidamente.
Solução:
Ligue uma bomba quando o nível da água subir acima de um limite superior e, em seguida, desative a bomba quando o nível da água cair abaixo de um limite inferior.
Agora, como faço para estabelecer os limites? Água (a menos que destilada) tem a capacidade de conduzir eletricidade. Teoricamente, eu poderia torcer dois pares de fios em comprimentos diferentes e determinar a presença de água com base em um curto em cada par. Infelizmente, a água é um péssimo condutor, então haverá perdas de tensão que precisam ser reconciliadas para medir a presença do curto. Felizmente, temos transistores para fazer exatamente isso e, além disso, temos um par Darlington, que é uma dose dupla!
NOTA:Um transistor consiste em três partes, um coletor (entrada), emissor (saída) e base (válvula). Quando a corrente é aplicada à base, ela diminui a resistência entre o coletor e o emissor e permite que a corrente flua do coletor para o emissor. Quanto mais corrente aplicada à base, mais corrente flui do coletor para o emissor, produzindo o que é conhecido como ganho de corrente ou fator de amplificação do transistor. Então, quando você os duplica e direciona a saída do emissor de um transistor para a base de outro, Viola !, você obtém um par Darlington.
Agora que tenho uma maneira de detectar a presença e a profundidade da água, preciso ligar e desligar uma bomba. A bomba é um dispositivo simples, ela apenas se conecta à parede e funciona. Preciso de uma maneira de conectar e desconectar a bomba com eficácia. Um relé oferece a capacidade de alternar alta tensão e corrente a partir de tensão e corrente de nível lógico. Posso colocar o relé em linha com um cabo de extensão e usá-lo como um interruptor lógico.
Finalmente, preciso da lógica. Isso é um acéfalo - o Arduino UNO. É barato, está prontamente disponível e pode ser facilmente programado para ler o sensor de água e acionar o relé.
http://www.learningaboutelectronics.com/Articles/What-is-hfe-of-a-transistor
Execução:
Eu tenho meu plano em prática, agora é hora de implementar minha solução!
Comecei ligando o circuito do detector de água. Primeiro, conecte os fios que irão para a água a 5V0. Em seguida, conecte os transistores. Conecte os coletores ao 5V0, as bases aos fios que estarão retornando da água e os emissores aos pinos 2 e 3 do Arduino. Finalmente, adicione LEDs de status. Conecte o ânodo (perna positiva ou longa) do LED à base de um transistor. Em seguida, conecte o cátodo (perna negativa ou curta) do LED a uma extremidade de um resistor de 100Ω e conecte a outra extremidade do resistor ao aterramento.
NOTA:Certifique-se de puxar a folha de dados e confirmar que você ligou as pernas corretamente. Acabei conectando o meu ao contrário na minha primeira tentativa; salve-se da dor de cabeça.;-)
Em seguida, testei meu circuito de relé. A "bobina" é efetivamente a chave e é bidirecional, então prenda uma extremidade ao aterramento e a outra ao pino 8. Você deseja emendar a tensão mais alta que irá comutar no pino COM (comum) e fora do NO (normalmente aberto) pino no relé.
Agora é hora de soldá-lo na placa protetora e fazer um escudo para o Arduino!
Para finalizar o controlador, adicione a caixa do projeto para proteger o novo controlador da bomba. Usei limas de metal para amolar a caixa apenas o suficiente para o cabo caber. Há um colar natural na extremidade do plugue do cabo de extensão, portanto, é um ótimo trabalho protegendo a blindagem de ser puxada pelo cabo. No entanto, a outra extremidade é vulnerável. Como você pode ver abaixo, usei uma tira de zíper para evitar que a outra extremidade fosse puxada.
Concluindo:
A etapa final é adicionar a bomba. Fixe o detector de água em uma posição em que o detector inferior esteja acima da entrada da bomba e o detector superior abaixo do interruptor de desligamento do umidificador. AVISO:a posição do detector inferior em comparação com a entrada da bomba é muito importante. A bomba ficará arruinada se sugar ar em vez de água por um longo período de tempo. Por último, direcione sua mangueira para onde for preciso, mesmo em subidas!
Código
SimplePumpControl.ino Arduino
Este é o esboço básico que você aplicará ao Arduino para controlar a saída designada para sua bomba. / * Criado e com copyright de Zachary J. Fields. Oferecido como código aberto sob a Licença MIT (MIT). * / const int ENABLE_PIN =2; const int FULL_PIN =3; const int RELAY_115V_30A_PIN =8; void setup () {pinMode (ENABLE_PIN, INPUT); pinMode (FULL_PIN, INPUT); pinMode (RELAY_115V_30A_PIN, OUTPUT);} void loop () {if (digitalRead (FULL_PIN)) {digitalWrite (RELAY_115V_30A_PIN, HIGH); } else if (! digitalRead (ENABLE_PIN)) {digitalWrite (RELAY_115V_30A_PIN, LOW); }} / * Criado e protegido por direitos autorais por Zachary J. Fields. Oferecido como código aberto sob a Licença MIT (MIT). * /
Esquemas
Esta é a versão breadboard do esquema, para que você possa prototipar e testar antes de soldá-lo ao Escudo Proto de Adafruit