Portal da construção - casa. Aquecedores de água. Chaminés. Instalação de aquecimento. Aquecedores. Equipamento

Meu detector de metais de impulso no Arduino. Como fazer um bom e poderoso detector caseiro de metais não ferrosos em casa, circuito detector Quando a tensão da bateria cai, o alcance de detecção diminui visivelmente

As informações são fornecidas apenas para fins educacionais.
O administrador do site não é responsável pelas possíveis consequências do uso das informações fornecidas.

taxa arduino pode ser usado em um detector de metal de pulso ( Detector de metais por indução de pulso (PI)) e como gerador de pulsos, e para processar e exibir os resultados.

Você pode ler mais sobre os princípios de operação de um detector de metais de pulso analógico.

Meu detector de metais de pulso no Arduino - projeto FoxyPI

versão 1 (FoxyPI v1) (obsoleto)
O que há de novo: primeira versão.
Licença Pública Geral GNU v3.0, disponível em GithubGenericName no repositório https://github.com/Dreamy16101976/foxyPIv1 .

Vídeo de teste do protótipo:
https://youtu.be/VWCA6jYK5tY

versão 2 (FoxyPI v2) (obsoleto)

O que há de novo:

  • média adicionada da duração do pulso da bobina analisada de acordo com o algoritmo "média móvel" ( média móvel, MA);
  • adicionado a capacidade de configurar a duração do pulso, os intervalos entre eles, o tempo de atraso e a largura da janela de média móvel usando o menu, além de salvar as configurações em EEPROM;
  • adicionou uma mudança no tom do sinal ao alterar a duração do pulso da bobina;
  • adicionado modo dinâmico do detector de metais;
  • motorista modificado MOSFET;
  • os interruptores "+5 V" e "+12 V" são combinados e o interruptor liberado é usado para controlar a luz de fundo LCD- tela;
  • adicionados LEDs para indicar o nível do sinal.

Licença do código-fonte do esboço:proprietário .


hexadecimal
-arquivo
firmware (versão 2.11) para - .
como piscar hexadecimal-arquivo para placa arduino eu descrevi.

Testes de campo e pesquisa(26/03/2016) - https://youtu.be/Xk4X6O1646M
Teste de protótipo(4.01.2016) - https://youtu.be/ikJbqUCbyvw

Esquema do detector de metais (versão 2):

versão 3 (FoxyPI v3)

O que há de novo na versão 3.5:

  • adicionou a capacidade de ajustar o contraste da tela usando o item CONTRASTE menu de serviço

O que há de novo na versão 3.4:

  • superaquecimento excluído MOSFET- A;
  • maior estabilidade no trabalho;
  • adicionado auto-ajuste do intervalo entre as amostras ADC;
  • exibição adicionada da curva de sinal após o balanceamento automático

O que há de novo na versão 3.3:

  • para determinar o nível do sinal, não é usado um comparador, como na versão anterior, mas um ADC arduino;
  • dois modos de pesquisa - dinâmico e estático (alternar entre os modos pressionando longamente o botão);
  • integração de sinal é usada para melhorar a estabilidade;
  • integrador e filtro passa-alto são emulados;
  • itens de menu alterados;
  • segurar o botão quando ligado causa a entrada no menu de configurações;
  • pressionando o botão inicia/pára o balanceamento;
  • dois níveis de indicação de áudio e visual são usados ​​em vez de quatro.

Não há discriminação de alvo nesta versão .

Esquema do detector de metais (versão 3):

  • elementos associados ao uso de um comparador são excluídos - R5, R6;
  • para aumentar o ganho do amplificador operacional, o valor do resistor foi alterado R3 320 kOhm (composto por dois resistores com valores nominais de 220 kOhm e 100 kOhm);
  • o circuito de alimentação do microcontrolador foi alterado.

No esquema do detector de metais duas "terras" isoladas - analógico (ícone de terra ) e digital (ícone de caixa ).

Licença do código-fonte do Sketch : proprietário.


versão 3.5

hexadecimal-arquivo firmware -

Duende-arquivo firmware (versão 3.5 datada de 11/11/2019) para -

versão 3.4

hexadecimal-arquivo firmware -

Duende-arquivo firmware (versão 3.4 datada de 25/09/2019) para -

como piscar hexadecimal-arquivo para placa arduino eu descrevi.


Vídeo de testes "ar" em modo dinâmico (7.04.2019, versão 3.2) - https://youtu.be/HzIiA9ws0Ak
Vídeo de testes "aéreos" e "subterrâneos" em modo dinâmico (11.04.2019, versão 3.3) - https://youtu.be/GwRvhjCmOE4
Vídeo de testes "ar" em modo estático (13/04/2019, versão 3.3) - https://youtu.be/1ulevNWBZ9A

Aparência da unidade eletrônica:


vista de cima:
1 - LCD-tela
2 - LED
3 - alto-falante piezo
4 - botão de controle
5 - Interruptor de luz de fundo do LCD
6 - interruptor de energia
7 - LEDs de indicação de nível de sinal

O detector de metais é transportado desmontado em três partes - unidades eletrônicas e de energia com alça, haste, bobina com fio:

Aparência do detector de metais montado:

Funcionamento do detector de metais

Ligar e iniciar o detector de metais

Quando o detector de metais é ligado (interruptor 6), a contagem regressiva começa primeiro:


Para alternar entre os itens do menu, é necessário um toque curto no botão (4) (o LED verde acende), e para selecionar um item do menu, um toque longo no botão (4) (o LED vermelho acende):

Para alternar entre os valores de parâmetro para o item de menu selecionado, é necessário um toque curto no botão (4) (o LED verde acende) e para selecionar um valor de parâmetro, um toque longo no botão (4) ( o LED vermelho acende):

Para sair do menu, selecione " SAÍDA":

Após a conclusão da contagem regressiva, o visor (1) mostra uma mensagem com a designação do dispositivo e o número da versão do software ("FoxyPI v3.x"), um logotipo e do alto-falante piezo (3) um sinal sonoro com um tom variável. , correspondendo a diferentes níveis de sinal e acompanhados por LEDs intermitentes:

Detecção de alvo com um detector de metais

Então, se nenhuma entrada de menu for selecionada, as configurações atuais do instrumento são exibidas:

eu - duração do pulso (μs, nós)
R - taxa de repetição de pulso (imp. / s, pps)
EU - coeficiente integrador
F - fator de filtro
S - som (ligar/desligar, SOBRE /DESLIGADO )
C - exibir valor de contraste

Em seguida, o balanceamento é realizado ( zerando) no modo estático:
AQUECIMENTO- estabelecimento do modo estacionário do integrador

ZERO- atualização do nível "zero"

O detector de metais opera em dois modos:

  • modo estático (modo estático/sem movimento) (padrão) - leva em consideração o nível do sinal, não requer movimento constante da bobina (pode ser usado tanto para esclarecer a localização do alvo ( identificar) e como modo de pesquisa principal);
  • modo dinâmico(modo dinâmico/movimento) - a dinâmica de mudança de sinal é levada em consideração; no processo de busca, a bobina deve ser mover sobre o chão

Ao balancear é desejável mover bobina (semelhante às ações durante a busca - isso é especialmente importante ao equilibrar no modo dinâmico). Necessidade de auto balanceamento sobre terreno limpo(não acima do alvo) que não contém minerais. Você pode ler sobre o efeito de interferência do solo em um detector de metal pulsado.

É importante tentar mover varrer) bobina paralela à superfície do solo, caso contrário, devido à influência do campo magnético da Terra, alguma tensão será induzida na bobina ( EFE -efeito de campo de terra), o que pode causar sinais falsos: mesmo apenas movendo a bobina sobre o solo:

Se a bobina sensora for movida incorretamente, o fluxo magnético $\Phi$ através dela muda:

Isso ocorre porque o fluxo magnético é determinado pela expressão:
$\Phi = (B \, S \, sin \, \alpha)$, onde $B$ é a indução do campo magnético da Terra, $S$ é a área da seção da bobina, $\alpha$ é o ângulo entre o plano da bobina e a direção do campo alinha o campo magnético da Terra.
Na figura mostrada, na primeira posição da bobina, o fluxo magnético é zero e, ao se mover, adquire um valor diferente de zero. Devido à mudança no fluxo magnético através da bobina, de acordo com a lei da indução eletromagnética, um EMF é induzido nela, o que distorce o sinal recebido.

O movimento impreciso da bobina aumenta o nível do sinal em 4.000...5.000, e o movimento vigoroso da bobina da posição horizontal para a vertical - em 15.000...20.000.

Durante o balanceamento automático, o atraso inicial ideal e a duração do sinal analisado são definidos e a dinâmica do sinal (no modo dinâmico) ou o nível do sinal (no modo estático) são avaliados, enquanto a atualização do nível "zero" é acompanhada por um bipe curto.

Quando a atualização do nível "zero" é encerrada, o balanceamento tenho que parar pressionando o botão (4).

Além disso, o balanceamento pode ser iniciado/parado durante a operação pressionando o botão (4). Após o término do balanceamento automático, um breve sinal sonoro é emitido e o valor "zero" (máximo, em unidades convencionais) é exibido.

Depois disso, o ciclo principal da operação do detector de metais é iniciado, enquanto o modo atual é exibido na tela ( MODO ) operação do detector, ZERO - o valor do nível "zero", definido durante o balanceamento (para modo estático, valores típicos 120 000 - 125 000 , quando a duração do pulso muda de 150 para 250 µs, muda insignificante) e RX - pontos inicial e final (intervalo) do sinal analisado (valores típicos - 16...43, , quando a duração do pulso muda de 150 para 250 µs, eles mudam insignificantemente) para uma duração de pulso de 150 µs) (a alternância entre os modos é realizada pressionando longamente o botão (4)):

Sintomas(nível/intervalo zero)

  • quebra na bobina - 12250 / 3...4 ou 23000 / 2...4
  • bobina não indutiva (substituição por um resistor de 10 Ohm) - 23000 / 0...2 ou 1...3

Um exemplo da propagação dos níveis iniciais "zero":

111289 111701 111762 111819 112029
111907 112067 111871 111827 111625

Quando um alvo de metal é detectado, um sinal sonoro de mudança de tom soa e o LED verde (2), assim como o LED verde ou vermelho (7) acende. A natureza da indicação audiovisual muda de acordo com a dinâmica (no modo dinâmico) ou o nível (no modo estático) da gravação RX-impulso:

LEDs Modo estático modo dinâmico
sem alvo sem alvo
sinal fraco nível de sinal diminui
nível de sinal médio nível de sinal aumenta
força do sinal forte -

Forte interferência na operação do detector de metais é fornecida por dispositivos eletrônicos operando nas proximidades:

interferência de LCD TV (sentida a uma distância de até um metro):

interferência de lâmpadas fluorescentes compactas (sentidas perto da lâmpada):

a interferência do campo magnético de um transformador conectado à rede se manifesta na forma de um trinado - operações muito frequentes:

Durante a operação, o dispositivo deve estar localizado longe de TVs, computadores, transformadores de energia, lâmpadas fluorescentes compactas em funcionamento!

Configurando o detector de metais

Se, ao ligar, mantenha pressionado o botão (4) até que a contagem regressiva comece, então o menu será inserido, permitindo que você altere as configurações do detector de metais.

Estrutura do menu (configurações padrão destacadas):


Um toque curto no botão (4) muda para o próximo item do menu e um toque longo muda para os valores da configuração selecionada.
Um toque curto causará uma transição para o próximo valor possível, e um toque longo salvará o valor atual e irá para o nível superior do menu (para a lista de configurações).

Após a seleção SAÍDA sai do menu e salva as configurações em EEPROM.

Teste de detector de metais

Para testar o detector de metais durante a montagem, você pode baixar arduino firmware de teste (para a versão 3):

hexadecimal-arquivo firmware de teste -

Duende-arquivo firmware de teste (versão 3.T datada de 24/04/2019) para -

No modo de teste, o detector de metais, após ser ligado, gera um pulso de corrente com duração de 150 μs na bobina detectora e, a seguir, registra e exibe na tela o sinal recebido. Quando um botão é pressionado, um novo pulso é gerado e assim por diante.

Exemplos de sinais:
1 - sem alvo, 2 - com alvo:

Teste de detector de metais

Eu testo o detector de metais em uma área limpa de terra:

alvos

Vários alvos são usados ​​para testar:


1 - placa de alumínio de um "disco rígido" (disco rígido) (espessura 1,3 mm, diâmetro externo 3,75 polegadas, diâmetro do furo 1 polegada)
2 - Moeda russa de 5 rublos feita de cobre folheado com cuproníquel (diâmetro 25 mm, peso 6,45 gramas)
3 - anel de ouro

Faixas de detecção de alvos "no ar":

É curioso que quando duas placas (alvos 1) são sobrepostas uma à outra, o alcance de detecção declinante!

Quando a tensão da bateria diminui, o alcance de detecção é visivelmente reduzido:
Em detectores de metais estrangeiros, uma moeda britânica de 10 pence é freqüentemente usada como alvo de teste - 22h com um diâmetro de 24,5 mm, que era anteriormente (até janeiro de 2012) feito de uma liga de cobre-níquel (cobre 75%, níquel 25%):
Um análogo dessa moeda é a moeda de 25 centavos dos EUA - 25 centavos americanos ( NÓS. trimestre) 24,26 mm de diâmetro, 1,75 mm de espessura, pesando 5,67 gramas:
A profundidade declarada de detecção de tais moedas para vários detectores de metal ( máx. profundidade para um quarto dos EUA):
Altai Treasure Seeker 2 detector de metais passatempo- 15cm;
Detector de metais de prestígio- 16cm;
Detector de metais Supereye S3000- 18cm;
E.E. Caçador de Tesouros- 20 cm.

Faixas de detecção para alvos massivos no modo estático:

Produtos de ferro em pó e muitas peças de ferrite (1) não são detectados pelo detector de metais, mas alguns produtos de ferrite (2) são detectados dentro da bobina a uma distância de vários cm do enrolamento:

Quando o ímã de ferrite se move rapidamente dentro da bobina, ocorrem falsos positivos:

O resultado da primeira busca no jardim com v3.3 (21/04/2019):

O resultado da segunda busca no jardim com v3.3 (27/04/2019):

E aqui estão mais algumas descobertas, mas após a limpeza eletrolítica (mais sobre isso abaixo):

Você pode ler sobre alguns achados interessantes.

Limpando os achados da ferrugem

Os achados encontrados são frequentemente cobertos por uma camada de ferrugem (óxido de ferro Fe 2 O 3).
Vários métodos podem ser usados ​​​​para limpar os achados da ferrugem:

método químico- o uso de um produto químico que converte a ferrugem em um estado facilmente removível (solto):

  • ácido oxálico;
  • ácido ortofosfórico.

método eletrolítico - o mais eficaz, usado para remover sujeira e produtos de corrosão, inclusive em arqueologia:

Existem dois modos de limpeza - ânodo(o objeto a ser limpo é o ânodo, a limpeza é feita por bolhas de oxigênio) e Catódico(o objeto que está sendo limpo é o cátodo, e o efeito de limpeza é dado pelas bolhas de hidrogênio, que são liberadas duas vezes mais que o oxigênio durante o processo do ânodo - um processo semelhante é usado para produzir hidrogênio)

Abaixo, descreverei o método de limpeza catódica que uso.

recipiente de plástico ou vidro (não corrosivo) é preenchido com:
2% (de acordo com outras fontes, 5 - 10%) com uma solução aquosa de álcali - soda cáustica NaOH;
solução aquosa de carbonato de sódio Na2CO3(1 colher de sopa para três litros de água, mas uso uma solução mais saturada):

Um eletrodo (ânodo) é uma placa feita de aço, incluindo aço inoxidável, chapa de ferro, alumínio ou latão, às vezes eletrodos de carbono também são usados. Eu uso aço inoxidável:

Observação.
O ânodo de aço inoxidável libera substâncias tóxicas, o latão promove a liberação de cobre no cátodo e o ânodo de alumínio se desgasta rapidamente.

O ânodo e o cátodo são abaixados na solução, o "+" da fonte de alimentação é conectado ao ânodo e o "-" é conectado à parte a ser limpa (envolvo o objeto a ser limpo com fio de cobre). Começa o processo de eletrólise da água, acompanhado pela liberação de bolhas de gás e formação de flocos de ferrugem (no cátodo - o objeto que está sendo limpo - são liberadas bolhas de hidrogênio que destroem a ferrugem: 4H 2 0 + 4e - \u003d 4OH + 2H 2 ).

Há também uma descrição alternativa da reação na limpeza catódica:
4H + + 4e - = 2H 2 (mas neste caso é necessário um ambiente ácido para formar uma quantidade suficiente de íons de hidrogênio).

Durante o processo, a ferrugem começa a se acumular perto do ânodo:

No final do processo, todo o recipiente é preenchido com partículas de ferrugem:

A ferrugem no processo de eletrólise cobre o ânodo:

Papel tornassol imerso em uma solução mostra a reação a um ambiente alcalino:

Após o término do processo de limpeza, a peça a ser limpa é recoberta por uma camada solta de contaminação, que é removida com uma escova metálica:

Após a limpeza eletrolítica, o achado fica assim:

oscilogramas

Usando um suporte de laboratório como um osciloscópio digital, fiz uma série de oscilogramas:

estante de laboratório -

tensão da bobina de pesquisa

Dispositivo detector de metais

Projeto

barra

Para a haste do detector de metais, usei um tubo de PVC com diâmetro de 25 mm e espessura de parede de 1,6 mm ( PN16):

Alavanca

A alça do detector de metais é fixada ao tubo, no qual a unidade eletrônica e a fonte de alimentação são fixadas, por meio de um encaixe de compressão:

A unidade eletrônica

Usei uma caixa de junção como corpo da unidade eletrônica do detector de metais Tyco com grau de proteção IP55(de água e poeira) de PVC com dez entradas com diâmetro de 30 mm.

Visualização interna da unidade eletrônica:


No cano de PVC, a unidade eletrônica é fixada por meio de você porta-formatos, que são fixados com laços de nylon:

unidade de energia

Para colocar as baterias, eu uso uma caixa de junção. No cano de PVC, a alimentação é fixada por meio de você em forma de porta-ferramentas, que são fixados com braçadeiras de nylon.

Eletrônicos

microcontrolador
estou usando a placa Arduíno Nano 3.0.

A 3ª versão é baseada em 8 bits AVR microcontrolador ATmega328P(32 KB Clarão, 2 kB SRAM, 1 KB EEPROM, 3 temporizadores) (2ª versão - em ATmega168) e a letra " P"denota" picoPower".

pinos arduino:

conclusão arduino encontro
D08 saída de sinal do gerador de pulso da bobina
D13 saída de LED
D11 saída para conectar um alto-falante piezo
A00 Entrada ADC - para sinal limitado e amplificado da bobina de busca
A01 saída de LED verde
A02 saída de LED vermelho
D02 botão de entrada de conexão
REF entrada de tensão de referência para ADC

Recursos do Arduino:

Para emparelhar com USB-porta na minha placa arduino chip conversor é usado CH340G.

Suprimentos de energia

Potência do microcontrolador

Para nutrição arduino Eu uso duas baterias de íons de lítio conectadas em série UltraFire ZX 18650 4200 mAh cada:

A tensão ociosa de uma bateria totalmente carregada é de 4,21 V e, com uma carga de 10 ohms após 1 minuto de operação, é de 3,61 V.

A tensão nominal dessa bateria é de 7,4 V.

A tensão da bateria de 7,4 V é convertida em 5 V para alimentar a placa arduino usando estabilizador integral 78L05(marcado no diagrama) U3):

Fonte de energia

Eu uso 10 pilhas alcalinas de tamanho como fonte de alimentação para a seção de energia. AA (LR6).

Eu avaliei algumas das baterias que usei:

Tipo de Bateria Tensão x.x., V Tensão
sob carga
(após 1 minuto de funcionamento), V
Camelion Plus Alcalina 1
... ... (10 ohms)

... ... (10 ohms)
Duracell Duralock (Alcalina) 2
1,54 1,47 (10 ohms)
Ermak (alcalino)
1,62 1,43 (10 ohms)
Energizer Max (Alcalino) 3
1,62 1,51 (10 ohms)
Energia(alcalino)
1,62 1,48 (10 ohms)

1 - a capacidade nominal é de 2700 mAh (com descarga contínua de até 0,8 V com corrente de 25 mA)
2 - tecnologia permite que você economize uma carga durante o armazenamento de até 10 anos,
nas baterias ao mesmo tempo na tira há uma inscrição " ":

1 - baterias Duracell produzido com tecnologia
2 - baterias normais Duracell
3 - de acordo com o fabricante:
resistência interna nominal ( IR nominal) - 150...300 mΩ;
diagrama de capacitância versus corrente de descarga:

Para acomodar baterias de tamanho AA Eu uso uma caixa de bateria de 10 células:

A tensão nominal dessa bateria é de 15 V.

Bobina L2 projetado para reduzir a interferência causada por pulsos de corrente da bobina detectora. Diodo D3 desvia a bateria de picos de tensão negativa que ocorrem na indutância da bobina de busca e protege contra a polaridade reversa da bateria. Capacitor C1 grande capacidade é um armazenamento de energia - desempenha um papel importante na geração de pulsos de corrente na bobina.

Para conectar fontes de energia, um conector de quatro pinos é usado na lateral da carcaça da unidade eletrônica:

1 - baterias "+" 15 V
2 - "-" baterias 15 V
3 - "-" baterias 7,4 V
4 - baterias "+" 7,4 V

Bobina

Parâmetros da bobina

Uma bobina de busca com diâmetro médio $D$ = 25 cm (raio médio $R$ = 12,5 cm) e raio de seção da bobina $a$ = 0,29 cm contém $w$ = 27 voltas de cobre esmaltado (resistividade $\rho $ \u003d 0,0175 Ohm mm 2 / m) fios com diâmetro $d$ \u003d 0,7 mm (raio do fio $r$ \u003d 0,35 mm, área da seção transversal do fio $S$ \u003d 0,385 mm 2):

Resistência estimada da bobina $R = (\rho ((\pi D w) \over (S)))$ = 0,964 ohms, e a medida foi $R$ = 1,3 ohms:

Existem várias fórmulas para calcular a indutância dessa bobina.

fórmula aproximada:

$L = ((w^2)((\mu)_0)R[(ln(((8R) \over a)))-2])$ ,

onde $a$ é o raio da seção da bobina.

Esta fórmula é dada no livro [ F. W. Grover, Cálculos de Indutância: Fórmulas e Tabelas de Trabalho, Nova York: Dover, 1946].

Para o meu carretel:
$L$ = 440 uH .

fórmula mais precisa:

$L = (((\mu)_0) \over (4 \pi)) (w^2) D \Phi $, onde $\Phi$ é um coeficiente auxiliar:
$\Phi = (2 \pi [((1 + (((\gamma)^2) \over 2))) (ln ((4 \over \gamma))) - 1,75 + (((\gamma ) ^ 2) \over 6) ] ) $, onde $\gamma = (a \over D)$, $a$ é o raio da seção da bobina

Esta fórmula é usada no plugin loop múltiplo para o programa Coil32(http://coil32.net/multi-winding-round-loop.html) para calcular a indutância de uma bobina redonda multivoltas com seção transversal circular (eng. loop redondo multi-enrolamento com seção transversal redonda).

Para o meu carretel:
$\gama$ = 0,0116;
$\Phi$ = 25,7;
$L$ = 468 uH .

fórmula integral:

$L = ((\mu)_0) (w^2) (\pi) R ((\int_0^(1-(a \over R))) B_(rel)((\rho)) (\rho) \, (d(\rho))) $,

onde $B_(rel)((\rho)) = ( (1 \over \pi) (\int_0^(\pi)) ((1 - ((\rho) cos (\phi) )) \over (( (1+((\rho)^2)-2(\rho)cos(\phi)))^(3 \over 2))) \, d(\phi) )$ - indução magnética relativa no plano de a bobina na distância $(\rho) \over R$ em comparação com a indução no centro da bobina, $a$ é o raio da seção da bobina

Campo magnético da bobina

Quando uma corrente $I$ flui através de tal bobina em um ponto no eixo da bobina localizado a uma distância $z$ do plano da bobina, um campo magnético é criado, cuja intensidade é determinada pela conhecida expressão :

$H = (w (I \over 2) ((R^2) \over (((R^2 + z^2))^(3 \over 2))))$

Se considerarmos a resistência interna de uma bateria como 0,3 Ohm, EMF - 1,45 V, então, para dez baterias, o EMF $E$ total será de 14,5 V e a resistência total $R$ do circuito, levando em consideração a bobina de busca resistência de 1 Ohm, será de 4 Ohm. Tomando a indutância da bobina igual a 450 μH, obtemos que para a duração $T$ do pulso igual a 150 μs, a corrente na bobina atingirá o valor $(E \over R) (1 - e^( -(T R)\sobre L)) = 2,7 A$.

Projeto da bobina

Para proteger a bobina, você pode usar uma mangueira elétrica corrugada (geralmente cinza) que é cortada ao longo de:

Uma bobina é inserida nele e, em seguida, é fixada com fita isolante. A bobina é fixada na caixa de montagem com adesivo hot-melt e braçadeiras de nylon.
A bobina é fixada na haste por meio de um encaixe de compressão, cuja parte rosqueada é parafusada em um tubo de polipropileno com diâmetro de 26 mm, fixado na tampa da caixa de montagem por meio de uma braçadeira de náilon e cola quente:

Para conectar a bobina, um conector de dois pinos é usado na lateral do gabinete:

Gerador
Eu uso uma saída digital para emitir pulsos. D08 definindo-o como "saída" (saída digital D08 corresponde à conclusão PB0 microcontrolador ATmega) .
Para acelerar, não uso o comando digitalWrite, mas gravação direta na porta, que é mais rápida em cerca de 10 vezes!

Correspondência de pinos digitais Arduino e pinos de porta ATmega

saída digital arduino pino da porta ATmega
D00 PD0
D01 PD1
D02 PD2
D03 PD3
D04 PD4
D05 PD5
D06 PD6
D07 PD7
D08 PB0
D09 PB1
D10 PB2
D11 PB3
D12 PB4
D13 PB5

Os parâmetros de tempo do gerador são definidos através do menu de configurações quando o dispositivo é ligado.

parte de energia

Uma vez que a tensão em MOSFET-e, quando é desligado, aumenta acentuadamente (devido à indutância da bobina), então o transistor pode entrar no modo de quebra de avalanche (" colapso da avalanche"). Isso acontece se a tensão dreno-fonte $V_(DS)$ estiver ligada MOSFET-e excede sua tensão de ruptura $V_(DS (BR))$.
Para transistores modernos, a operação neste modo é padrão (eles são marcados como " Classificação de avalanches repetitivas" ou " 100% AVALANCHE TESTADO"). Nesse caso, é importante levar em consideração características de avalanche do transistor como a corrente de avalanche repetitiva máxima $I_(AR)$ e a energia máxima da quebra de avalanche repetitiva $E_(AR)$.
É necessário que a corrente máxima na bobina antes de desligar não ultrapasse o valor de $I_(AR)$, e a energia máxima armazenada na bobina não ultrapasse o valor de $E_(AR)$. A energia do campo magnético da bobina é definida como $(E_M) = (((L (I^2)) \over (2)))$ será 3,2 mJ).

Parâmetros de alguns MOSFET:

Nome $V_(DS(BR))$,V $I_(AR)$, A $E_(AR)$, mJ
IRF540 100 28 15
IRF740 400 10 13
IRF840 500 8 13
FQP12N60C 600 12 22,5

eu uso MOSFET IRF840 com as características certas:

Tsokolevka IRF840:

G- obturador, D- estoque, S- fonte

Com uma quebra de avalanche do transistor, a corrente da bobina amortecida passa pela seção "fonte de dreno" MOSFET-a - bateria ", que possui uma baixa resistência, o que leva a uma desaceleração na atenuação da corrente.

Driver MOSFET

Ao controle MOSFET feito com um optoacoplador PC817C(tem uma velocidade de 3 ... 4 μs, suporta uma corrente de saída de 50 mA e uma tensão no estado fechado de até 35 V) e um circuito de transistor discreto:

pinagem PC817:

pinagem BC547/BC557:

C- colecionador, B- base, E- emissor

Com um "um" lógico na saída arduino o LED do optoacoplador apaga U2, seu transistor fecha, o que aumenta o potencial da base do transistor Q1, e abre, o que leva à abertura do transistor Q2 e fechando o transistor Q3. Como resultado, o potencial de porta aumenta. MOSFET-A Q4 e abre passando corrente através da bobina.

Investiguei as características de tal driver (quando uma tensão de 5 V é aplicada ao LED do optodriver através de um resistor de 470 Ohm):
consumo atual no estado "ligado" ( MOSFET aberto) é muito pequeno, em "desligado" ( MOSFET fechado) - varia de 5,8 a 12 mA com aumento da tensão de alimentação de 7 a 15 V; a tensão de saída do driver é 12,15 / 1,83 V ("ligado" / "desligado") a uma tensão de alimentação de 13 V.

Detector

O detector de metais de pulso é baseado no princípio da indução eletromagnética - Indução de pulso eletromagnético (EMI).

Diagrama do detector do meu detector de metais:

O sinal da bobina de busca conectada ao conector J2, através de um resistor limitador de corrente R2 fornecido aos diodos conectados em antiparalelo D1 E D2, limitando o valor do sinal a ~ 1 V. Essa limitação não introduz um erro perceptível, pois para a detecção do "alvo" a "cauda" do sinal tem o valor, cuja tensão é pequenas frações de um volt ( até milivolts) - confirmado por simulação:

Um sinal tão fraco precisa ser amplificado para uma detecção confiável, para a qual usei um amplificador operacional U1 LM358N, incluído no circuito amplificador não inversor tradicional. O coeficiente de ganho é determinado pela expressão $1+ (R3 \over R4)$, com os valores especificados dos elementos que é 570 .

recurso do sistema operacional LMx58é a possibilidade de alimentação unipolar ( fornecimento único) - em oposição, por exemplo, LM318, LF356, LF357 nenhuma fonte de tensão negativa necessária.
Tsokolevka LM358N (N -V MERGULHAR-caso):

Tipo de sinal na saída do amplificador operacional:

Para processar o sinal da bobina de busca, eu uso o microcontrolador embutido ATmega conversor analógico para digital.

Para entrada de referência ADC VREF tensão de referência é aplicada você ref, igual a 1,235 V, que é retirado da fonte de referência LM385Z-1.2(usando o modo de operação ADC EXTERNO).
Tsokolevka LM385Z:

Para a entrada de sinal do ADC Entrada ADC a tensão do sinal da bobina detectora, amplificada pelo amplificador operacional, é limitada por diodos D1 E D2. O ADC amostra o sinal da bobina como uma sequência de números ( sinal de tempo rápido) com valores 0 (nível mínimo, 0 V)...1023 (nível máximo uref).

A presença de um alvo próximo à bobina se manifesta da seguinte forma:
(1023 - nível de sinal correspondente à sobrecarga do ADC)

  • deslocamento de ponto A certo;
  • aumento de intervalo A-B;
  • deslocamento da curva para cima.

Compare este gráfico de sinal com o gráfico acima:

Para determinar a presença de um alvo, a soma é calculada ( sinal lento) um determinado número de níveis de sinal amostrados localizados em intervalos iguais entre si na "janela" de tempo ( janela de avaliação). Nesse caso, os valores localizados antes do ponto inicial especificado durante o balanceamento não são levados em consideração (para aumentar sensibilidade).


Em seguida, a sequência de valores totais obtidos é integrada (o integrador é emulado em software). O parâmetro do filtro é o coeficiente $K$, que é igual ao número de pulsos por constante de tempo do integrador.
O nível do sinal na saída do integrador é analisado no modo estático do detector de metais.

Quando o detector de metais está no modo dinâmico, os resultados da integração também passam por um filtro passa-alto ( filtro passa-alto, HPF), que é emulado em software. O parâmetro do filtro é o coeficiente $K$, que mostra quantas vezes a taxa de repetição do pulso é maior que a frequência de corte do filtro.
Na saída do filtro, é obtido um sinal que caracteriza a dinâmica da mudança RX-sinal.

Quando o sinal de saída excede o limite - nível "zero", definido durante o balanceamento, um gatilho é ativado - o alvo é considerado detectado e uma indicação audiovisual é implementada.

Indicação sonora

Eu uso um elemento piezoelétrico de um detector de incêndio autônomo para indicação sonora. O volume do som do elemento piezoelétrico de uma forma muito bizarra depende da frequência do sinal. Consegui encontrar um conjunto de frequências 900 (o sinal mais fraco)) - 1000 - 1100 (o sinal mais forte), para o qual o volume do som aumenta. Para controlar o som do elemento piezo conectado ao pino 11 da placa, utilizo o timer 2 do Arduino.

O modo silencioso (apenas indicação de LED) pode ser ativado através do menu de configurações quando o dispositivo é ligado.

indicação visual

Para indicação eu uso LCD- display do celular :

A tela deste telefone é monocromática com resolução de 84×48:


Controlador de exibição - Philips PCD8544.
Conexão de exibição:

Saída de exibição Conclusão arduino Exibir atribuição de saída
RST D10 redefinir controlador de exibição
CE (ou CS) D09 permissão para inserir dados no controlador de exibição
CC D05 modo de entrada - dados/comandos
Din D04 dados de ônibus SPI
CLK (ou SCLK) D03 comandos de ônibus SPI
VCC * tensão de alimentação (2,7 ... 3,3 V)
BL ** luz de fundo
GND GND "Terra"

Existem duas opções de exibição LCD 5110- com textolite azul (esse é o que eu uso) ou vermelho:

* tensão de alimentação do controlador -
azul - estritamente 3,3 V(pode ser conectado à saída 3V3 arduino)
vermelho- para alguns não verificado suporta uma tensão de alimentação de 5 V (pode ser alimentado a partir dos terminais 5V ou Arduino 3V3)
** tensão de alimentação da luz de fundo -
azul- Tensão de 3,3 ou 5 V pode ser aplicada à saída de luz de fundo
vermelho- "terra" (?) está conectado à saída de luz de fundo

O problema desse display é o contato não confiável do painel LCD com a placa de circuito impresso através do conector ZEBRA, que é eliminado, por exemplo, soldando o condutor pressionando o painel na placa - conforme recomendado:

Se não for corrigido, esse problema fará com que a tela fique preta, exigindo a reinicialização.

Para trabalhar com tal exibição em arduino eu uso a biblioteca Adafruit-PCD8544 de Indústrias Adafruit(site da empresa - https://www.adafruit.com).

"A Adafruit investe tempo e recursos fornecendo este código-fonte aberto, por favor, apoie a Adafruit e o hardware de código-fonte aberto comprando produtos da Adafruit! "

O interruptor (5) controla a luz de fundo da tela. Com boa luz ambiente, a luz de fundo da tela pode ser omitida, pois consome muita energia.

Discriminação Alvo

As correntes parasitas são amortecidas devido à presença de resistência elétrica no "alvo". Este amortecimento é descrito pela lei exponencial $i = k H_0 (e^( (-t) \over \tau))$. O coeficiente $k$ é determinado pela forma e dimensões do "alvo". A constante de tempo $\tau = (L G) = (L \over R)$, que determina a duração do fluxo de correntes parasitas, é determinada pela condutividade elétrica do material alvo $G$ (ou resistência $R$) e sua indutância $L$.
Na tabela, dei a condutividade elétrica relativa de vários materiais em relação ao ouro:

As correntes parasitas são usadas para investigar as propriedades dos materiais medindo a condutividade elétrica, uma vez que os materiais têm um valor de condutividade único, dependendo de sua composição e método de fabricação. Neste caso, o valor da condutividade do cobre quimicamente puro a uma temperatura de 20 ºC é usado como padrão - padrão Padrão Internacional de Cobre Recozido (IACS) - resistividade 1,7241x10 -8 Ohm m ou 5,8001x10 7 S/m (100% IACS). O ferro, por exemplo, tem um valor de condutividade igual a 18% do cobre.

Como afirmado (por exemplo, em um artigo de um pesquisador cheiro de registro), os alvos feitos de ouro ou folha fina têm uma constante de tempo muito curta e as correntes parasitas neles decaem rapidamente, em contraste com os alvos feitos de ferro, cobre ou prata.

A força inicial do campo magnético $H_0$ é determinada pela corrente inicial na bobina e diminui de acordo com a lei cúbica $1 \over (h^3)$ com a distância da bobina. A magnitude da intensidade do campo magnético $H_0$ ao longo do eixo da bobina a uma distância $z$ de seu centro, criada pela corrente $I_0$, é determinada pela expressão: $(H_0) = ( (w (R^2 ) (I_0)) \over (2 ( (((R^2)+(z^2)))^(3 \over 2) ) ) )$.

As correntes parasitas criam seu próprio campo magnético decrescente, o que induz uma voltagem decrescente exponencialmente (com a mesma constante de tempo $\tau$) na bobina detectora. A magnitude dessa tensão diminui à sexta potência da distância $1 \over (h^6)$ à medida que o "alvo" se afasta da bobina. Isso leva a um alongamento do pulso de tensão na bobina de busca, que é registrado pelo detector de metais.

Análise adicional da curva de sinal (tensão da bobina de busca) pode ser realizada para discriminar (separar diferentes tipos) de alvos.A inclinação da curva em seu início pode ser estimada pela razão $K = ((x_t) \over (x_(t+(\Delta)t)))$ de tamanhos de amostra separados, por exemplo, por cinco intervalos ($( \Delta)t=5$) . Nesse caso, a constante de tempo é determinada pela expressão: $(\tau) = (((\Delta)t) \over (ln K))$

Para o estudo de correntes parasitas, podem ser utilizados pacotes de software para modelagem de processos eletromagnéticos. Um exemplo é a simulação de um freio eletromagnético de corrente parasita no COMSOL Multiphysics (descrição - https://www.comsol.com/blogs/simulated-eddy-current-brakes/):

Existem opiniões negativas sobre a possibilidade de discriminação efetiva para detectores de metal pulsados.

"O discriminador mais confiável é você, cavando o alvo!" (http://www.gold-prospecting-wa.com) - "O discriminador mais confiável é você ao cavar o alvo".

No livro " "autores Ahmet S. Turk, Koksal A. Hocaoglu, Alexey A. Vertiy

são dadas as seguintes afirmações:


"A desvantagem mais importante dos detectores de metal pulsados ​​é a impossibilidade de discriminação fácil entre diferentes tipos de metais. ... Se os tamanhos e profundidades dos objetos de metal detectados forem diferentes e desconhecidos, então, no caso geral, impossível determinar o tipo de metal.

Como exemplo, um detector de metais pulsado, para o qual é declarada a possibilidade de discriminação (ferromagnético ( FERROSO)/não ferromagnético ( N-FERROSO) materiais), você pode trazer o modelo PULSE STAR II.
Características de discriminação em tal detector:

  • possível apenas para alvos de pelo menos 10 cm de diâmetro (ao contrário VLF/TR-detectores que têm a capacidade de discriminar até mesmo objetos pequenos);
  • objetos menores são exibidos como ferromagnéticos;
  • vários pequenos objetos não ferromagnéticos são exibidos como um grande objeto ferromagnético.

Meu artigo sobre Habré sobre o uso de uma rede neural para discriminação em um detector de metais pulsado - https://habr.com/en/post/435884/

O trabalho do projeto continua

Um detector de metais para procurar tesouros antigos ou apenas metais não ferrosos pode ser facilmente comprado na Internet. Mas as pessoas que estão um pouco familiarizadas com a eletrônica também podem montar o dispositivo para suas próprias necessidades.

É verdade que muitas vezes os circuitos incluem muitos componentes ou o dispositivo tem baixa sensibilidade. Uma boa versão de um detector de metais pode ser obtida montando-o com base em um microcontrolador Arduino. Ele reage até mesmo a pequenas moedas, funciona de forma estável, independentemente da temperatura do ar e das baterias.

A desvantagem é que um detector de metais por indução não será capaz de determinar o tipo de metal, como faz um dispositivo com emissão de rádio em seu núcleo.

Essência do construtor

O diagrama esquemático de um detector de metais Arduino inclui vários componentes. Os pulsos gerados pelo Arduino amplificam o FET, que induz um campo magnético na bobina.

A criação deste dispositivo envolve várias etapas sequenciais:

  1. A bobina deve ter 20 cm de diâmetro com um enrolamento de 20 voltas de fio. A espessura do fio é importante para a indução de toda a bobina. Normalmente, use um fio de 0,4 - 0,8 mm. Você pode isolar a bobina inserindo-a em um pedaço de tubo de plástico do abastecimento de água. Não há conexões metálicas adicionais. Para mais informações sobre como criar uma bobina, é melhor consultar sites especializados.
  2. O próprio detector é construído em um layout de acordo com o esquema ou soldando peças em uma placa de circuito impresso. O LED numerado D13 na placa Arduino Nano serve como um indicador ao procurar por metal.
  3. Quanto à soldagem na placa, o circuito pode ser unilateral ou bilateral. Os especialistas descobriram empiricamente que a primeira opção é melhor. Remova os diodos do circuito e adicione um resistor de 10 ohms. Isso resulta em um detector funcional com componentes externos.
  4. Para um detector montado corretamente e um programa Arduino, a única maneira de configurá-lo é com um display OLED. A tela é conectada às saídas correspondentes na placa, e após ligar o botão de energia, deve mostrar uma "calibração" que dura alguns segundos. Três dígitos aparecem na tela, que devem ter aproximadamente os mesmos valores.
  5. Para ajustar corretamente a bobina, não deve haver objetos de metal por perto. O resistor de ajuste é ajustado para o valor máximo, mas de forma que uma leitura estável seja mantida.
  6. Você pode verificar o funcionamento do dispositivo se trouxer o metal para a bobina. O LED do Arduino acende e o alto-falante clica.

Não coloque expectativas muito altas no dispositivo. Por design, o detector será simples. Ele só pode detectar certas coisas. Não atinge o nível profissional. Há muito espaço para melhorias à luz dos primeiros testes de campo. Mesmo assim, o aparelho funciona, com ele você pode ir em busca de tesouros escondidos.

Certa vez, tendo construído com minhas próprias mãos vários detectores de metais de vários graus de eficiência, quis estudar como o circuito Arduino funciona nessa direção.

Existem alguns bons exemplos de como montar um detector de metais com as próprias mãos. No entanto, eles geralmente requerem muitos componentes externos para processar o sinal analógico ou a sensibilidade de saída é bastante fraca.

Quando pensamos em detectores de metal de pulso, o tópico principal é como detectar pequenas mudanças de tensão nos sinais associados à bobina detectora. Essas mudanças geralmente são muito pequenas. A abordagem mais óbvia é usar as entradas analógicas do ATmega328. Mas, olhando para as especificações, há dois problemas principais: eles são lentos e a resolução é (na maioria das vezes) baixa.

Por outro lado, um detector de metais baseado em microcontrolador opera a 16 MHz e possui recursos de sincronização bastante bons, ou seja, uma resolução de 0,0625 µs ao usar uma frequência de clock. Assim, em vez de usar uma entrada analógica para leitura, a maneira mais fácil de perceber pequenas mudanças dinâmicas de tensão é comparar a mudança na queda de tensão ao longo do tempo em uma tensão de referência fixa.

Para isso, o ATmega328 possui as características apropriadas de um comparador interno entre D6 e D7. Este comparador é capaz de disparar uma interrupção, permitindo o tratamento preciso de eventos. Usando-o junto com rotinas de temporização cuidadosamente codificadas como millis() e micos(), e usando o cronômetro interno de resolução muito maior do ATmega328, o Arduino é uma excelente base para esse tipo de detector de metais.

Então, falando em código fonte, um bom começo seria programar um comparador interno para "inverter" a polaridade das entradas, e usar o contador interno o mais rápido possível para mudar a frequência das mudanças.

A versão final do código para Arduino:

// Definindo todas as pré variáveis ​​necessárias, etc. e configurando os registradores unsigned char clockSelectBits = _BV(CS10); // sem pré-escala, full xtal void setup() ( pinMode(6,INPUT); // + do comparador - configurando-os como INPUT, eles são // configurados para alta impedância pinMode(7,INPUT); // - do comparador - ao configurá-los como INPUT, eles são // definidos para alta impedância cli(); // parar as interrupções TCCR1A = 0; // definir todo o registro TCCR1A para 0 TCCR1B = 0; // o mesmo para TCCR1B TCNT1 = 0 ; // inicializa o valor do contador em 0; TCCR1B |= clockSelectBits; // define o prescaler e inicia o relógio TIMSK1 = _BV(TOIE1); // define o bit de habilitação de interrupção de estouro do temporizador sei(); // permite interrupções ACSR = (0<< ACD) | // Analog Comparator: Enabled (0 << ACBG) | // Analog Comparator Bandgap Select: AIN0 is applied to the positive input (0 << ACO) | // Analog Comparator Output: Off (1 << ACI) | // Analog Comparator Interrupt Flag: Clear Pending Interrupt (1 << ACIE) | // Analog Comparator Interrupt: Enabled (0 << ACIC) | // Analog Comparator Input Capture: Disabled (0 << ACIS1 | 0 << ACIS0 // interrupt on output toggle // (0 << ACIS1 | 1 << ACIS0 // reserved // (1 << ACIS1 | 0 << ACIS0 // interrupt on falling output edge // (1 << ACIS1 | 1 << ACIS0 // interrupt on rising input edge ; } // this routine is called every time the comparator creates an interrupt ISR(ANALOG_COMP_vect) { oldSREG=SREG; cli(); timeStamp=TCNT1; SREG = oldSREG; } // this routine is called every time there is an overflow in internal counter ISR(TIMER1_OVF_vect){ timer1_overflow_count++; } // this routine is used to reset the timer to 0 void resetTimer(void){ oldSREG = SREG; cli(); // Disable interrupts TCNT1 = 0; //initialize counter value to 0 SREG = oldSREG; // Restore status register TCCR1B |= clockSelectBits; // sets prescaler and starts the clock timer1_overflow_count=0; // resets overflow counter }

Claro, essa ideia não é totalmente nova. O corpo principal deste código pode ser diferente. Tente procurar em outro lugar, como TPIMD.

Passo 1: Idéia do Detector Indutivo Arduino - Flip Coil


A ideia é usar o Arduino como detector de indução de pulso, assim como o TPIMD, já que a ideia da curva de decaimento parece funcionar muito bem. O problema com os detectores de indução pulsada é que eles geralmente precisam de voltagens diferentes para funcionar. Uma tensão para alimentar a bobina e uma tensão separada para lidar com a curva de amortecimento. Essas duas fontes de tensão sempre complicam o processo de construção de detectores de indução pulsada.

Considerando a tensão da bobina no detector PI, a curva resultante pode ser dividida em dois estágios diferentes. O primeiro estágio é o próprio impulso, que alimenta a bobina e cria um campo magnético (1). O segundo estágio é uma curva de decaimento de tensão, começando com um pico de tensão e, em seguida, mudando rapidamente para uma tensão de bobina “sem potência”(2).

O problema é que a bobina inverte sua polaridade após o pulso. Se o momentum for positivo (Var 1. na figura anexa) a curva de decaimento é negativa. Se o pulso for negativo, a curva de decaimento será positiva (Var 2. na figura anexa).

Para resolver esse problema básico, a bobina precisa ser "invertida" eletronicamente após o pulso. Nesse caso, o momento pode ser positivo e a curva de amortecimento também permanecerá positiva.

Para fazer isso, a bobina deve ser isolada de Vcc e GND após o pulso. Neste ponto, há apenas corrente fluindo através do resistor de amortecimento. Este sistema isolado de bobina e resistor de amortecimento pode ser "direcionado" para qualquer tensão de referência. Teoricamente, isso criará uma curva positiva combinada (veja a parte inferior do desenho).

Essa curva positiva pode ser usada com um comparador para determinar o ponto no tempo em que a tensão de atenuação "cruza" a tensão de referência. Caso os tesouros estejam próximos à bobina, a curva de amortecimento e o ponto de interseção da mudança de tempo da tensão de referência mudam. Esta alteração pode ser detectada.

Depois de algumas experiências, decidi pelo seguinte esquema:

O circuito consiste em um módulo Arduino Nano. Este módulo aciona dois MOSFETs que alimentam a bobina (em SV3) através de D10. Quando o pulso no final de D10 termina, ambos os MOSFETs isolam a bobina de 12V e GND.

A energia armazenada na bobina sai pelo resistor R2 (220 ohm). Ao mesmo tempo, o resistor R1 (560 ohms) conecta o primeiro lado positivo da bobina ao GND. Isso altera a curva de amortecimento negativa em R5 (330 ohms) para uma curva de amortecimento positiva. Os diodos protegem o pino de entrada do Arduino.

R7 é um divisor de tensão de cerca de 0,04 V. Agora a curva de decaimento em D7 torna-se mais negativa do que 0,04 em D6, a interrupção é acionada e a duração após o fim do pulso é salva.

No caso do metal próximo à bobina, a curva de decaimento é mais longa e o tempo entre o final do pulso e a interrupção é maior.

Passo 2: Construindo o Detector (Breadboard)






O processo de construção de um detector é bastante simples. Isso pode ser feito em uma breadboard (seguindo o esquema original) ou soldando peças em um PCB.

O LED D13 na placa Arduino Nano é usado como um indicador de metal.

Usar uma breadboard é a maneira mais rápida de fazer um detector funcional. Alguma fiação precisa ser feita, mas isso pode ser feito em uma pequena placa de ensaio separada. As imagens mostram isso em 3 etapas, pois o Arduino e os MOSFETs ocultam alguns dos fios. Durante o teste, acidentalmente desativei os diodos sem perceber imediatamente. Isso não afetou particularmente o comportamento do detector. Deixei-os na versão PCB.

As ilustrações não mostram conexões com o visor OLED 0,96. Este display está conectado assim:

Vcc - 5V (no pino do Arduino, não na fonte de alimentação!)
GND-GND
SCL-A5
SDA-A4

Este visor OLED é necessário para a calibração inicial do detector. Isso é feito definindo a tensão correta no PIN6 do Arduino. Essa tensão deve ser em torno de 0,04 V. O visor ajudará você a definir a tensão correta.

A versão fictícia funciona muito bem, embora provavelmente não seja adequada para uso em campo.

Etapa 3: Projeto de PCB




Quanto à solda, eu realmente não gosto de PCB de alta tecnologia de dupla face, então mudei o layout para face única.

As seguintes alterações foram feitas:

  1. Diodos foram excluídos.
  2. Resistor de 10 ohm adicionado aos pinos MOSFET
  3. A tensão de alimentação do divisor de tensão em D6 é definida por um sinal de alto nível em D8
  4. O pino do driver para MOSFETs foi alterado.

Desta forma é possível criar uma placa de circuito impresso de face única que pode ser soldada em uma placa de circuito impresso universal. Usando este circuito, você terá um detector PI funcional com 8-10 componentes externos (dependendo se você está usando um display OLED e/ou um alto-falante).

Passo 4: Configurando e usando o detector




Se o detector for construído corretamente e o programa for escrito no Arduino, a maneira mais fácil (se não a única) de configurar o dispositivo é usar um display OLED. O display está conectado a 5V, GND, A4, A5. O visor deve mostrar "calibração" após ligar o dispositivo. Após alguns segundos, deve aparecer "calibração concluída" e o visor deve mostrar três dígitos.

O primeiro número é o "valor de referência" especificado durante a calibração. O segundo valor é o último valor medido e o terceiro valor é a média das últimas 32 medições.

Esses três valores devem ser mais ou menos iguais (até 1000 nos meus testes). A média deve ser mais ou menos estável.

Para iniciar a configuração inicial, não deve haver nenhum metal próximo à bobina.

Agora, o divisor de tensão (resistor de corte) deve ser definido para que os dois valores inferiores sejam definidos no máximo, mantendo uma leitura estável. Há uma configuração crítica onde a média começa a dar leituras estranhas. Gire o trimmer para obter valores estáveis ​​novamente.

Pode acontecer que o visor congele. Basta apertar o botão de reset e começar de novo.

Para minha configuração (bobina: 18 voltas/20 cm) o valor estável está em torno de 630-650. Após a configuração, pressione o botão reset, a máquina irá calibrar novamente e todos os três valores estarão no mesmo intervalo. Se agora o metal for aproximado da bobina, o LED na placa Arduino (D13) deve acender. O alto-falante incluído faz alguns cliques (há espaço para melhorias no código-fonte).

Para evitar grandes expectativas:

O detector detecta algumas coisas, mas permanece muito simples e limitado.

Para dar uma ideia das possibilidades, comparei alguns outros detectores com o meu. Os resultados ainda são bastante impressionantes para um detector com 8 elementos externos, mas ficam aquém de um equipamento profissional.

Olhando para o circuito e o programa, vejo muito espaço para melhorias. Os valores dos resistores foram escolhidos com base na experiência, o tempo de pulso de 250 ms foi escolhido aleatoriamente, os parâmetros da bobina também.

arquivos

Etapa 5: Conectando o Monitor 16x2



Durante o teste, percebi que a biblioteca de monitores OLED I2C estava consumindo muitos recursos, então decidi usar um monitor 16x2 com um conversor I2C.

Adaptei o programa para o display LCD, adicionando alguns recursos úteis. A primeira linha do display mostra agora a intensidade do sinal de uma possível indicação. A segunda linha agora mostra dois valores. O primeiro indica o desvio do sinal de corrente em relação ao valor de calibração. Este valor deve ser "0". Se esse valor for consistentemente negativo ou positivo, o detector deve ser calibrado pressionando o botão de reinicialização. Valores positivos indicam metal próximo à bobina.

O segundo valor mostra o valor real do atraso da curva de decaimento. Esse valor geralmente não é tão interessante, mas é necessário para a configuração inicial do detector.

O programa agora permite rastrear várias larguras de pulso em uma sequência (uma ferramenta para experimentação/melhorias de desempenho). No entanto, não consegui nenhum avanço, então o valor padrão é definido como uma largura de pulso.

Configuração inicial do detector

Ao configurar o detector, o segundo valor da segunda linha é importante (o primeiro valor pode ser ignorado). Inicialmente, o valor pode ser "instável" (ver figura). Gire o trimmer até que o valor atinja uma leitura estável. Em seguida, gire-o para aumentar o valor para o valor estável máximo. Pressione o botão de reinicialização para recalibrar e o detector está pronto para uso.

Tive a impressão de que, ao definir o valor estável máximo, perdi a sensibilidade aos metais não ferrosos. Portanto, pode valer a pena experimentar as configurações para corrigi-lo.

Bobinas

Fiz 3 bobinas para testar ainda mais o circuito do detector de metais de pulso:

  • 1 -> 18 voltas / 200 mm
  • 2 -> 25 voltas/100 mm
  • 3 -> 48 voltas/100 mm

Curiosamente, todas as bobinas funcionaram muito bem, com quase o mesmo desempenho (moeda de rublo a 40-50 mm no ar). Esta pode ser uma observação muito subjetiva.

Este projeto baseado em Bolt IoT mostra como fazer um detector de metais baseado em Arduino com um sistema de alarme.

Este projeto deve fornecer uma compreensão geral de como fazer um detector de metais com um sistema de monitoramento e alerta. O objetivo do projeto é detectar objetos estranhos, bem como criar um protótipo de um sistema de segurança. O resultado de outros processos pode ser o projeto de um robô móvel com um detector de metais. Tudo isso, em geral, pode ser feito usando qualquer microcontrolador, mas usaremos .

O sistema proposto contém um circuito transmissor (Tx) e um receptor (Rx). Esta placa é baseada no TDA0161, um circuito integrado monolítico projetado para detectar corpos metálicos através da detecção de variações de perda de correntes parasitas de alta frequência. Usando um circuito sintonizado externamente, o dispositivo atua como um gerador. O nível de saída muda conforme você se aproxima de um objeto de metal.

O sinal de saída é determinado por mudanças na corrente de alimentação. Independentemente da tensão de alimentação, esta corrente é alta ou baixa, dependendo da proximidade do objeto de metal. Este dispositivo poderá avisar sobre a detecção de, por exemplo, minas à frente e também será útil para detectar objetos de metal escondidos no subsolo ou dentro de outros objetos. Consiste em um dispositivo portátil com um sensor de toque que pode detectar a mudança no campo magnético causado por um objeto de metal.

Acessórios

Para nosso detector de metais / detector de metais Arduino, você precisará de uma lista decente de componentes:

  • Sensor baseado em TDA0161 × 1
  • Resistor 220 ohm × 1
  • Capacitor 47uF × 1
  • Resistor 330 ohm × 1
  • Resistor de 100 ohms × 1
  • Resistor 1 kΩ × 1
  • Campainha × 1
  • Potenciômetro de precisão multivoltas - 10 kΩ (25 voltas) × 1
  • Bolt IoT Bolt Módulo WiFi × 1
  • Arduino UNO × 1
  • Cabo USB-A para Micro-USB × 1

Do software, precisamos:

  • Bolt IoT Bolt Nuvem
  • Bolt IoT Android App (Aplicativo Android)

diagrama de circuito

Primeiro temos que fazer um sensor detector de metais conectando-o conforme indicado no diagrama de circuito acima. Assim, uma vez feito tudo de acordo com os passos abaixo, você precisará configurar o sistema para que o sensor aponte para o chão, ligar o sistema e garantir que o Bolt sempre tenha acesso à Internet através do seu WiFi .

Configuração do módulo Bolt WiFi e conexão com a nuvem

Depois de fazer todas as conexões, precisamos conectar o detector de metais Arduino através da nuvem Bolt iOT usando o processo descrito nesta etapa. Aprenderemos como configurar o novo módulo Bolt WiFi usando uma rede WiFi e um telefone celular.

Se você examinou cuidadosamente a lista de componentes, viu o que precisamos: Módulo Bolt IoT Bolt WiFi, cabo Micro-USB para USB (sua escolha), Bolt IoT Bolt Cloud, Bolt IoT Android App (links acima).

Este kit nos ajudará a conectar o módulo Bolt ao Wi-Fi e vinculá-lo a uma conta da nuvem Bolt para que você possa começar a trabalhar com ele. Todo o processo de configuração não levará mais de 10 minutos.

Conectando o módulo à alimentação

Depois de colocar as mãos no módulo WiFi Bolt iOT, você precisa encontrar um carregador 5V/1A que tenha uma porta micro-usb e geralmente seja usado para carregar um celular Android. Você também pode usar seu laptop para ligar seu dispositivo Bolt.

Agora que você tem todos os componentes, vamos começar baixando o aplicativo móvel Bolt IoT e instalando-o em seu celular. Antes de começar, verifique se a rede Wi-Fi à qual você conectará seu Bolt está funcionando a 2,4 GHz. Atualmente, o Bolt NÃO oferece suporte a redes WiFi de 5 GHz.

Baixe o aplicativo Bolt

Baixe o aplicativo Bolt IoT para Android ou iOS. Você pode pesquisar "Bolt IoT" ou escanear o código QR abaixo.

Observação. As instruções abaixo são para o aplicativo Android, mas o mesmo pode ser feito para o aplicativo iOS com algumas pequenas diferenças.

Crie a sua conta aqui

Você precisará criar uma conta na nuvem Bolt para gerenciar seu dispositivo Bolt iOT. Criar uma conta na nuvem Bolt é GRATUITO.

Abra o aplicativo Bolt e clique em "REGISTRAR" para criar uma nova conta.

Preencha todos os detalhes necessários e concorde com os termos de uso (alguém leu isso?). Por fim, clique em "CRIAR UMA NOVA CONTA" para criar uma conta gratuita.

Agora você receberá um e-mail no endereço de e-mail fornecido para verificar sua conta. Isso é para verificar se você é uma pessoa real e não um robô.

Siga as instruções no e-mail para ativar sua conta Bolt Cloud. Agora arraste o dedo pela tela para atualizar a tela do aplicativo móvel, que se parece com a abaixo.

Parabéns, você ativou sua conta. Você verá uma tela dizendo que você não possui nenhum módulo associado à sua conta.

Adicionando Bolt à sua conta

Agora clique no botão "ADD DEVICE" para configurar seu dispositivo Bolt para funcionar em uma rede WiFi.

Ligue o Bolt inserindo o cabo Micro USB na porta USB do módulo e conecte a outra extremidade do cabo ao carregador ou laptop Android.

Observação. Não há botões liga/desliga no Bolt iOT. Assim que você conectar a energia, você pode começar a trabalhar.

Assim que você ligar o Bolt, o LED azul no Bolt piscará lentamente e o LED verde apagará.

Se o LED azul estiver piscando lentamente, significa que o Bolt agora está transmitindo sua própria rede de hotspot WiFi e está pronto para ser configurado usando o aplicativo Bolt IoT em seu telefone. Clique no símbolo " > » no aplicativo para continuar.

Somente Android: antes de prosseguir, desligue os dados móveis, ative o serviço de localização no seu celular, caso ainda não o tenha feito, e pressione o botão "Pronto". Isso só é necessário em um aplicativo Android devido às APIs do Google. O aplicativo não coleta ou armazena seus dados de localização.

Se o aplicativo detectou o Bolt, ele exibirá uma tela semelhante à mostrada abaixo. O LED azul no dispositivo agora piscará rapidamente. Isso significa que ele está em processo de instalação. Para continuar, clique em "CONTINUE" (inglês - CONTINUE).

Senha do hotspot WiFi transmitida pelo módulo WiFi Bolt: bolt1234. Ao configurar usando o aplicativo móvel Android, seu celular se conectará automaticamente ao ponto de acesso quando você clicar em "Avançar". No iOS, você precisará se conectar ao Hotspot acessando Configurações -> Wi-Fi. Agora precisamos dizer ao Bolt a qual rede WiFi ele deve se conectar.

Importante. O módulo Bolt WiFi não pode detectar redes WiFi de 5 GHz e não poderá se conectar a elas.

Selecione a rede Wi-Fi à qual o Bolt deve estar conectado. Você pode clicar no nome do WiFi para selecionar a rede WiFi à qual se conectar.

Observação. Para o aplicativo iOS, você terá que inserir manualmente o SSID ou o nome do dispositivo WiFi ao qual deseja se conectar.

Digite a senha da rede WiFi que você selecionou na tela anterior.

O aplicativo agora enviará as credenciais WiFi para o módulo Bolt WiFi.

Agora clique em Concluído e na próxima tela selecione seu país e clique em Salvar para concluir a última etapa da configuração.

Se tudo correr conforme o planejado, o dispositivo Bolt será reiniciado automaticamente. O LED Azul-Verde no Bolt ficará permanentemente aceso. Se o Bolt conseguiu se conectar à rede WiFi e se conectou à nuvem, um ponto verde aparecerá ao lado do Bolt Device ID, conforme mostrado abaixo.

Depurando

Se o Bolt não conseguir se conectar a uma rede Wi-Fi, o LED verde desligará e o LED azul piscará lentamente. Isso geralmente acontece se você inseriu as credenciais de WiFi erradas (SSID ou senha) durante a instalação. Tente o processo de instalação novamente com as credenciais de WiFi corretas.

Verifique se o seu roteador WiFi está rodando a 2,4 GHz. Bolt atualmente não suporta 5 GHz.

Bolt o acesso à nuvem para criar projetos de IoT

Visite Bolt Cloud (cloud.boltiot.com) e faça login em sua conta registrada usando o mesmo ID de e-mail e senha usados ​​no aplicativo móvel Bolt IoT.

Você verá seu dispositivo Bolt com status ONLINE em sua conta no painel.

Parabéns, você conseguiu configurar o Bolt e vinculá-lo à sua conta em menos de 10 minutos.

Código do projeto

Após conectar através do módulo Bolt, você deve baixar ou copiar o código abaixo no formato .json:

( "name": "Metal Detection", "flow": [ ( "id": 15, "module": "app#bolt-iot:executeCommand", "version": 1, "parameters": ( "__IMTCONN__" : 445281 ), "mapper": ( "command": "serialBegin", "parameters": ( "baud": "9600", "deviceName": "" ) ), "metadata": ( "designer": ( " x": 8, "y": -3 ), "restore": ( "command": ( "label": "Inicializar comunicação serial" ), "__IMTCONN__": ( "label": "My Bolt connection" ) ) , "parameters": [ ( "name": "__IMTCONN__", "type": "account", "label": "Connection", "required": true ) ], "esperar": [ ( "name": " command", "type": "select", "label": "Command", "required": true, "validate": ( "enum": [ "digitalWrite", "digitalRead", "analogRead", "analogWrite" , "serialBegin", "serialWrite", "serialRead", "version", "restart", "isAlive" ] ) ), ( "name": "parameters", "spec": [ ( "name": "deviceName" , "type": "text", "label": "Nome do dispositivo", "required": true ), ( "name": "baud", "type": "number", "label": "Baud", "required": true ) ], "type": "coleção", "label": "Parâmetros" ) ] ) ), ( "id": 1, "module": "app#bolt-iot:executeCommand", " version": 1, "parameters": ( "__IMTCONN__": 445281 ), "mapper": ( "command": "serialWrite", "parameters": ( "data": "Obter detectado", "deviceName": "" ) ), "metadata": ( "designer": ( "x": 300, "y": 0 ), "restore": ( "command": ( "label": "Enviar saída de dados seriais" ), "__IMTCONN__ ": ( "label": "My Bolt connection" ) ), "parameters": [ ( "name": "__IMTCONN__", "type": "account", "label": "Connection", "required": true ) ], "esperar": [ ( "nome": "comando", "tipo": "selecionar", "rótulo": "Comando", "obrigatório": verdadeiro, "validar": ( "enum": [ " digitalWrite", "digitalRead", "analogRead", "analogWrite", "serialBegin", "serialWrite", "serialRead", "version", "restart", "isAlive" ] ) ), ( "name": "parameters" , "spec": [ ( "name": "deviceName", "type": "text", "label": "Nome do dispositivo", "required": true ), ( "name": "data", "type ": "text", "label": "Data", "required": true ) ], "type": "coleção", "label": "Parâmetros" ) ] ) ), ( "id": 14, " module": "app#bolt-iot:executeCommand", "version": 1, "parameters": ( "__IMTCONN__": 445281 ), "mapper": ( "command": "serialRead", "parameters": ( " till": "10", "deviceName": "" ) ), "metadata": ( "designer": ( "x": 600, "y": 0 ), "restore": ( "command": ( " label": "Ler dados seriais recebidos" ), "__IMTCONN__": ( "label": "My Bolt connection" ) ), "parameters": [ ( "name": "__IMTCONN__", "type": "account", "label": "Connection", "required": true ) ], "esperar": [ ( "name": "command", "type": "select", "label": "Command", "required": true, "validate": ( "enum": [ "digitalWrite", "digitalRead", "analogRead", "analogWrite", "serialBegin", "serialWrite", "serialRead", "version", "restart", "isAlive " ] ) ), ( "name": "parameters", "spec": [ ( "name": "deviceName", "type": "text", "label": "Device name", "required": true ), ( "name": "till", "type": "number", "label": "Till", "required": true, "validate": ( "max": 127, "min": 0 ) ) ], "type": "coleção", "label": "Parameters" ) ] ) ), ( "id": 18, "module": "math:EvaluateExpression", "version": 1, "parameters": (), "mapper": ( "expression": "100-((parseNumber(14.value)))" ), "metadata": ( "designer": ( "x": 869, "y": -2 ), "esperar": [ ( "nome": "expressão", "tipo": "texto", "rótulo": "Expressão", "obrigatório": verdadeiro ) ] ) ), ( "id": 13, " module": "google-email:ActionSendEmail", "version": 1, "parameters": ( "account": 445282 ), "filter": ( "name": "Verificar se foi detectado metal", "condições": [ [ ( "a": "((18.resultado))", "b": "30", "o": "número:maior" ) ] ] ), "mapeador": ( "cc": , " to": , "bcc": , "html": "detecção de metais", "assunto": "Aviso! metal detectado", "anexos": ), "metadados": ( "designer": ( "x": 1145, "y": -3 ), "restaurar": ( "cc": ( "modo": "escolher ", "itens": ), "para": ( "modo": "escolheu", "itens": [ "indefinido" ] ), "bcc": ( "modo": "escolheu", "itens": ) , "conta": ( "rótulo": "" ), "anexos": ( "modo": "escolheu", "itens": ) ), "parâmetros": [ ( "nome": "conta", "tipo ": "account", "label": "Connection", "required": true ) ], "esperar": [ ( "name": "to", "spec": ( "name": " ", "type ": "email", "label": "Endereço de e-mail", "required": true ), "type": "array", "label": "To", "labels": ( "add": "Adicionar um destinatário", "editar": "Editar um destinatário" ), "obrigatório": true ), ( "nome": "assunto", "tipo": "texto", "label": "Assunto" ), ( "nome ": "html", "type": "text", "label": "Content" ), ( "name": "attachments", "spec": [ ( "name": "fileName", "type": "filename", "label": "File name", "required": true, "semantic": "file:name" ), ( "name": "data", "type": "buffer", "label" : "Data", "required": true, "semantic": "file:data" ), ( "name": "cid", "type": "text", "label": "Content-ID" )] , "type": "array", "label": "Anexos", "labels": ( "add": "Adicionar um anexo", "edit": "Editar um anexo" ) ), ( "name": " cc", "spec": ( "type": "email", "label": "endereço de email" ), "type": "array", "label": "Copiar destinatário", "labels": ( "adicionar ": "Adicionar um destinatário de cópia", "edit": "Editar um destinatário de cópia" ) ), ( "name": "bcc", "spec": ( "type": "email", "label": "Email address" ), "type": "array", "label": "Destinatário de cópia oculta", "labels": ( "add": "Adicionar um destinatário de cópia oculta", "edit": "Editar um destinatário de cópia oculta" ) ) ] ) ) ], "metadata": ( "version": 1, "scenario": ( "roundtrips": 1, "maxErrors": 3, "autoCommit": false, "sequential": false, "confidential" : false, "dataloss": false, "dlq": false ), "designer": ( "orphans": ), "zone": "eu1.integromat.com" ) )

O código que precisamos enviar para a placa Arduino está abaixo:

#define capPin A0 #define buz 9 #define pulsePin A4 #define led 10 long sumExpect=0; //soma corrente de 64 somas long ignore=0; //número de somas ignoradas long diff=0; //diferença entre a soma e a soma média long pTime=0; longo buzPeríodo=0; void setup() ( Serial.begin(9600); pinMode(pulsePin, OUTPUT); digitalWrite(pulsePin, LOW); pinMode(capPin, INPUT); pinMode(buz, OUTPUT); digitalWrite(buz, LOW); pinMode(led , OUTPUT); ) void loop() ( int minval=1023; int maxval=0; long unsigned int sum=0; for (int i=0; i<256; i++) { //reset the capacitor pinMode(capPin,OUTPUT); digitalWrite(capPin,LOW); delayMicroseconds(20); pinMode(capPin,INPUT); applyPulses(); //read the charge of capacitor int val = analogRead(capPin); //takes 13x8=104 microseconds minval = min(val,minval); maxval = max(val,maxval); sum+=val; long unsigned int cTime=millis(); char buzState=0; if (cTime0) buzState=1; senão se (diferença<0) buzState=2; } if (cTime>pTime+buzPeriod) ( if (diff>0) buzState=1; else if (diff<0) buzState=2; pTime=cTime; } if (buzPeriod>300) buzState=0; if (buzState==0) ( digitalWrite(led, LOW); noTone(buz); ) else if (buzState==1) ( tone(buz,2000); digitalWrite(led, HIGH); ) else if (buzState= =2) ( tone(buz,500); digitalWrite(led, HIGH); ) ) //subtrai o valor mínimo e máximo para remover picos sum-=minval; soma-=maxval; if (sumExpect==0) sumExpect=soma<<6; //set sumExpect to expected value long int avgsum=(sumExpect+32)>>6; diff=soma-média; if (abs(dif) >10) ( sumExpect=sumExpect+sum-avgsum; ignore=0; ) else ignore++; if (ignorar>64) ( sumExpect=sum<<6; ignor=0; } if (diff==0) buzPeriod=1000000; else buzPeriod=avgsum/(2*abs(diff)); } void applyPulses() { for (int i=0;i<3;i++) { digitalWrite(pulsePin,HIGH); //take 3.5 uS delayMicroseconds(3); digitalWrite(pulsePin,LOW); //take 3.5 uS delayMicroseconds(3); } }

Definindo alertas

Antes de passar para os alertas por e-mail e depois de fazer o upload do código, precisamos criar um identificador no recurso integromat.com. Se você já possui uma conta neste site - basta fazer login na sua conta.


Use as etapas a seguir para configurar um cenário de detecção de metais.


Isso é tudo. Depois de todo o projeto montado, basta configurar o sistema para que o sensor aponte para o chão, ligar o sistema e garantir que o Bolt esteja sempre conectado à Internet através do seu WiFi. Desejamos que você encontre itens mais valiosos.

A partir desta instrução, você aprenderá como fazer um detector de metais caseiro em casa. Encontrar vários objetos de metal é um ótimo hobby que o levará ao ar livre, descobrirá novos lugares e talvez encontre algo interessante. Antes de aprender a fazer seu próprio detector de metais, descubra as leis locais sobre como lidar com uma possível descoberta, especialmente no caso de objetos perigosos, relíquias arqueológicas ou objetos de valor econômico ou emocional significativo.

Existem algumas instruções na rede para montagem caseira de poderosos detectores de metais para metais não ferrosos com suas próprias mãos, no entanto, a peculiaridade desta instrução é que, além do Arduino, apenas alguns componentes são necessários: um capacitor convencional, um resistor e um diodo que formam um núcleo juntamente com uma bobina sensora composta por 20 enrolamentos de cabo eletricamente condutivo. LED, alto-falante e/ou fones de ouvido. Um benefício adicional é que tudo pode ser alimentado por 5V, para o qual uma alimentação USB total de 2000 mAh é suficiente.

Para interpretar o sinal e entender quais materiais e quais objetos de forma o detector pode detectar, é necessário mergulhar na física. De acordo com a regra prática, o detector é sensível a objetos a uma distância ou profundidade que não exceda o raio da bobina. É mais sensível a objetos nos quais a corrente pode fluir no plano da bobina. Assim, um disco de metal no plano da bobina dará uma resposta muito mais forte do que o mesmo disco de metal perpendicular à bobina. O peso do objeto realmente não importa. Uma fina folha de alumínio orientada no plano da bobina dará uma resposta muito mais forte do que um parafuso de metal pesado.

Passo 1: Como funciona

Quando a eletricidade começa a fluir através da bobina, ela cria um campo magnético. De acordo com a lei da indução de Faraday, um campo magnético variável resultará em um campo elétrico que se opõe à variação do campo magnético. Assim, a tensão será desenvolvida através da bobina, o que irá neutralizar o aumento da corrente. Esse efeito é chamado de auto-indução, e a unidade de indutância é Henry, onde uma bobina de 1 Henry desenvolve uma diferença de potencial de 1 V quando a corrente muda em 1 Ampère por segundo. A indutância de uma bobina com N enrolamentos e raio R é de aproximadamente 5 µH x N^2 x R, com R em metros.

A presença de um objeto de metal próximo à bobina alterará sua indutância. Dependendo do tipo de metal, a indutância pode aumentar ou diminuir. Metais não magnéticos como cobre e alumínio perto da bobina reduzem a indutância porque o campo magnético variável induz correntes parasitas no objeto, que reduzem a intensidade do campo magnético local.

Materiais ferromagnéticos como o ferro perto da bobina aumentam a indutância porque os campos magnéticos induzidos se alinham com o campo magnético externo.

Assim, medindo a indutância da bobina, é possível detectar a presença de metais nas proximidades. Com um Arduino, um capacitor, um diodo e um resistor, você pode medir a indutância de uma bobina assim: fazer a bobina parte de um filtro LR passa-alto e alimentá-lo com blocos de onda criará rajadas curtas em cada transição. A duração dessas rajadas é proporcional à indutância da bobina. De fato, o tempo de filtro característico LR é tau = L/R. Para uma bobina com vinte voltas e um diâmetro de 10 cm, L ~ 5muH x 20^2 x 0,05 = 100 uH.

Para proteger o Arduino de sobrecorrente, a resistência mínima é de 200 ohms. Assim, esperamos pulsos de cerca de 0,5 microssegundos de comprimento. Eles são difíceis de medir diretamente com alta precisão, pois o clock do Arduino é de 16MHz.

Em vez disso, o pulso ascendente pode ser usado para carregar um capacitor, que pode ser lido pelo conversor analógico-digital (ADC) do Arduino. A carga esperada de um pulso de 25 mA de 0,5 microssegundo é de 12,5 nC, o que daria 1,25 V no capacitor de 10 nF. A queda de tensão no diodo diminuirá esse valor. Se o pulso for repetido várias vezes, a carga no capacitor sobe para ~ 2 V. Esses parâmetros podem ser recuperados com o Arduino ADC usando analogRead (). O capacitor pode então ser descarregado rapidamente, alterando o conector de detecção para saída e definindo-o como 0V por alguns microssegundos.

Todas as medições levam cerca de 200 microssegundos, 100 para carregar e reiniciar o capacitor e 100 para converter o ADC. A precisão pode ser bastante aumentada repetindo a medição e calculando a média do resultado: uma média de 256 medições leva 50 ms e melhora a precisão em um fator de 16. Assim, um ADC de 10 bits atinge a precisão de um ADC de 14 bits.

Como os parâmetros obtidos são extremamente não lineares com a indutância da bobina, não podemos descobrir o valor real da indução. No entanto, para detecção de metais, estamos interessados ​​apenas em pequenas mudanças na indutância da bobina devido à presença de metais nas proximidades, e esse método é ideal para isso.

A calibração da medição pode ser realizada automaticamente usando o software. Se não houver metal perto da bobina na maior parte do tempo, um desvio do valor médio indicará a presença de um objeto de metal próximo.

Usando diferentes cores de lâmpadas e sons, você também pode ver a diferença - aumentando ou diminuindo a indução.

Etapa 2: lista de componentes necessários

Base elétrica:

  • Arduino UNO R3 + breadboard ou Arduino Nano com breadboard 5x7cm
  • capacitor de 10nF
  • Diodo de sinal pequeno, por exemplo, 1N4148
  • resistor de 220 ohms

Por comida:

  • Carregador portátil com cabo USB

Para saída visual:

  • 2 LEDs de cores diferentes, como azul e verde
  • 2 resistores de 220 ohm para limitação de corrente

Para saída de áudio:

  • campainha passiva
  • Microinterruptor para mudo

Para saída de fone de ouvido:

  • Plug do fone de ouvido
  • Resistor 1 kΩ
  • Fones de ouvido

Para conectar/desconectar facilmente o searchcoil:

  • Terminal de parafuso de 2 pinos (terminal)

Para bobina de pesquisa:

  • ~ 5 metros de cabo elétrico fino

Projeto da bobina. Deve ser rígido, mas não deve ser redondo. Para construção: Cerca de 1 metro - um bastão de madeira, plástico ou selfie.

Etapa 3: bobina de pesquisa

Para a bobina de busca, enrolei cerca de 4 m de fio trançado em torno de um cilindro de papelão de 9 cm de diâmetro, resultando em 18 voltas. O tipo de cabo não importa, desde que a resistência seja pelo menos dez vezes menor que o valor R no filtro RL, portanto, certifique-se de que fique abaixo de 20 ohms. Eu medi, saiu 1 ohm, então é seguro. Um rolo de 10 metros de fio de conexão com pontas ramificadas também é adequado.

Passo 4: Monte o Protótipo




Dado o pequeno número de componentes externos, é perfeitamente possível montar o circuito em uma pequena breadboard. No entanto, o resultado final é bastante complicado e não muito confiável. Portanto, é melhor usar um Arduino nano e soldar com componentes adicionais em uma placa protótipo de 5x7 cm (veja o próximo passo)

Apenas 2 pinos do Arduino são usados ​​para detecção de metais, um para fornecer pulsos ao filtro LR e outro para ler a tensão no capacitor. A pulsação pode ser feita a partir de qualquer pino de saída, mas a leitura deve ser feita usando um dos pinos analógicos A0-A5. Outros 3 pinos são usados ​​para 2 LEDs e para saída de som.

Sequência de montagem:

  1. Na protoboard, conecte um resistor de 220 ohm, um capacitor e um diodo em série com o terminal negativo (linha preta) ao capacitor.
  2. Conecte A0 ao resistor (extremidade não conectada ao diodo)
  3. Conecte A1 à interseção do diodo e do capacitor
  4. Conecte uma extremidade da bobina ao ponto de interseção do resistor e do diodo
  5. Conecte a outra extremidade da bobina ao terra
  6. Conecte um LED com seu terminal positivo ao D12 e seu terminal negativo através de um resistor de 220 ohm ao terra
  7. Conecte outro LED com seu terminal positivo ao D11 e seu terminal negativo através de um resistor de 220 ohm ao terra
  8. Se desejar, conecte fones de ouvido ou alto-falantes entre o pino 10 e o terra. Um capacitor ou resistor pode ser adicionado em série para reduzir o volume.

Isso é tudo!

Passo 5: Fazendo a versão final do dispositivo


Para usar o detector de metais ao ar livre, é necessário soldar todos os componentes de forma segura. Uma protoboard regular de 7x5cm funcionará bem com o Arduino nano e todos os outros componentes. Use o mesmo padrão do passo anterior. Também decidi adicionar um interruptor em série com a campainha para poder silenciar o som quando não for necessário. Com o grampo de parafuso, você pode experimentar bobinas diferentes rapidamente sem precisar soldar novamente. Toda a energia é fornecida através da porta mini ou microUSB de 5V do Arduino Nano.

Passo 6: Software

Você pode baixar o esboço do Arduino abaixo. Baixe e execute-o. Eu usei o Arduino 1.6.12 IDE. Recomenda-se começar com debug = true no início para definir o número de pulsos por medição. É melhor ter uma leitura ADC entre 200 e 300. Aumente ou diminua o número de pulsos caso sua bobina forneça uma leitura completamente diferente.

O esboço faz alguma autocalibração. Basta colocar a bobina longe de metais por um tempo. Pequenas mudanças na indutância serão observadas, mas grandes mudanças repentinas não afetarão a média de longo prazo.

arquivos

Etapa 7: corrigir o dispositivo


Você provavelmente não quer rastejar no chão para encontrar um tesouro, então é melhor montar toda a estrutura na ponta de uma vara. O bastão de selfie é perfeito, é leve, dobrável e ajustável. A bateria portátil se encaixa perfeitamente com o bastão. A placa pode ser presa com abraçadeiras e a bobina da mesma forma, conectando-a a uma bateria ou bastão de selfie.

Passo 8: Instruções de uso

Para definir o valor de referência, basta afastar o detector de metais caseiro dos metais por cerca de 5 segundos. Então, quando a bobina estiver próxima ao metal, o LED verde ou azul piscará e serão ouvidos bipes.

Flashes azuis e bipes de baixa frequência indicam a presença de metais não ferromagnéticos. Flashes verdes e bipes de alta frequência indicam a presença de metais ferromagnéticos. Observe que quando a bobina estiver próxima ao metal por mais de 5 segundos, o valor obtido será considerado como um valor de referência e um sinal sonoro será emitido ao afastar o detector do metal, que se acalmará após alguns segundos . A frequência de intermitência dos diodos e sinais sonoros depende da potência do sinal.

postagens semelhantes