Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sensor de água de alta sensibilidade em MCP3008

Use o Phantom YoYo de alta sensibilidade Sensor de água no ADC de 8 canais e 10 bits MCP3008 com interface SPI.

Introdução

Antecedentes

Em um projeto futuro, estou usando o MCP3008 para monitorar vários sensores. Neste projeto, quero cobrir os detalhes do uso do sensor de água de alta sensibilidade Phantom YoYo no ADC de 8 canais e 10 bits MCP3008 com interface SPI com o Raspberry Pi 2, Windows 10 IoT Core e C #.

Usando o MCP3008

Um ADC é um conversor analógico para digital. Um sinal analógico é convertido em um número e lido em seu aplicativo. O MCP3008 é um ADC de 10 bits, o que significa que ele usa 10 bits para representar o valor no canal. O valor será representado como um número de 0 a 1023 (para um total de 1024 valores possíveis). Esse número é então convertido em um valor significativo. Por exemplo, digamos que eu queira medir uma tensão em um dos canais e o valor lido do canal é 523. Eu sei que a tensão máxima é 3,3 V. A tensão no canal é calculada usando a fórmula

Valor / Valor máximo * Vref

resolvendo minha voltagem, recebo

523/1023 * 3.3

que dá um valor de 1,687 V . Calculei esse valor normalizando a leitura e, em seguida, multiplicando o valor da leitura normalizada pelo valor máximo conhecido de 3,3 V.

Quando obter uma medição de tensão precisa é importante, eu recomendo medir a tensão real do Raspberry Pi e usar esse valor em seus cálculos para obter uma conversão mais precisa do ADC. Quando fiz a medição, descobri que a saída era de 3,301 V (valor encontrado no código-fonte). Não muito longe do real, no entanto, outros tipos de placas podem variar mais.

Claro, isso faz sentido quando quero calcular a tensão, mas cada sensor tem um significado diferente. Para cada sensor conectado a um canal no MCP3008, preciso saber os detalhes específicos e interpretar a leitura de forma adequada.

A fiação do MCP3008 é direta. O próprio chip é marcado com um entalhe em uma extremidade que representa os pinos 1 e 16 (consulte a folha de dados aqui).

Os pinos 1 a 8 são os oito pinos de entrada e são referidos como canais 0 a 7. O canal 0 é o pino 1. O pino 16 é Vdd e se conecta à fonte de tensão (3,3 V ou 5 V ligado o Raspberry Pi). O pino 9 se conecta ao pino terra no Raspberry Pi. Os pinos 15 e 14 são usados ​​para fazer referência ao circuito analógico. O pino 15 é Vref e é usado pelo MCP3008 para determinar qual seria a tensão máxima em um dos canais. No meu exemplo, conectei este pino à fonte de 3,3 V no Raspberry Pi. Quando uma tensão é aplicada a um dos canais, o MCP ajusta a leitura para que 1023 represente 3,3 V e 0 represente 0 V. Isso permite que o cálculo que usei acima funcione. O pino 14 é o pino de aterramento analógico. No meu exemplo, eu o conectei ao pino terra do Raspberry Pi. Se houver necessidade de manter o circuito analógico isolado do circuito digital, este pino deve ser conectado ao aterramento no circuito analógico. Os quatro pinos restantes, 10 a 13, são os pinos da interface serial SPI usados ​​para se comunicar com o Raspberry Pi. O diagrama de fiação que incluí com este projeto mostra como conectar esses pinos ao Raspberry Pi.

Neste projeto, incluí uma medição de tensão simples para demonstrar esse conceito. A leitura do sensor de água demonstrará uma interpretação alternativa do valor lido do canal.

Visão geral do projeto

O sensor

Neste projeto, conectei dois circuitos em um. O primeiro é um potenciômetro simples que permitirá variar a tensão em um dos pinos do MCP3008 (canal 0). Isso é simplesmente para demonstrar como o MCP3008 funciona. O segundo circuito é o sensor de água conectado a um segundo canal (canal 1) no MCP3008.

O Phantom YoYo Water Sensor tem três pinos. O primeiro pino é o aterramento (identificado como ‘-’ no dispositivo), que será conectado ao pino de aterramento no Raspberry Pi. O próximo pino é o de alimentação (rotulado como ‘+’ no dispositivo) e ele será conectado ao pino de 3,3 V no Raspberry Pi (o dispositivo também pode ser conectado a 5 V). O terceiro e último pino é o sinal (rotulado com 's' no dispositivo. Este pino tem o sinal de tensão que varia com base na quantidade de água no dispositivo. Observe que este dispositivo NÃO é um sensor de nível de água. Ele simplesmente detecta variações quantidades de água que entram em contato com o dispositivo. O pino da fonte será conectado a uma das entradas do MCP3008.

O circuito

O circuito para suportar o sensor é realmente simples. O dispositivo se conecta diretamente à placa Raspberry Pi sem a necessidade de quaisquer componentes adicionais.


Software de projeto

O aplicativo

O aplicativo que criei para este projeto é um Aplicativo Universal do Windows e mostra dois metros na vista principal. O primeiro medidor mostra a tensão atual sendo medida no circuito do potenciômetro. O segundo mostra uma leitura do sensor de água que é normalizada para um valor de 0 a 100. O software também permite a calibração do sensor de água. O link para o código-fonte pode ser encontrado na parte inferior da página.

A Biblioteca MCP3008

O projeto de software também contém um projeto separado para interagir com o MCP3008. Este código pode ser usado em seu aplicativo para integrar facilmente o chip MCP3008 em seus projetos.

Para usá-lo, primeiro declare um objeto de classe da seguinte maneira:

privado Mcp3008 _mcp3008 =nulo;

No OnNavigatedTo evento adicione o seguinte código:

_ mcp3008 =novo Mcp3008 (0);

await_mcp3008.Initialize ();

Para ler a tensão do canal 0, use a seguinte linha de código:

tensão flutuante =_mcp3008.Read (Mcp3008.Channels.Single0) .AsScaledValue (3.3f);

Observe o uso de Channel.Single0, que indica que o valor é lido de um canal. É possível especificar que o dispositivo leia a diferença entre dois pinos. Isso poderia ser especificado como Mcp3008.Channels.Differential0, o que indica que a medição deve ser feita como diferente entre o canal 0 e o canal 1, onde o canal 0 é positivo e o canal 1 é negativo. O código-fonte é um documento e fornecerá dicas de ferramentas explicando cada valor.

Quando você termina de usar o objeto, normalmente em OnNavigatedFrom evento descartar o objeto.

_ mcp3008.Dispose ();

_ mcp3008 =nulo;

Primeiros passos

Monte o circuito

Use este guia para montar o circuito enquanto usa o diagrama localizado próximo à parte inferior da página como um guia (observe que a cor dos fios é opcional e foi selecionada para ajudar a tornar o circuito fácil de seguir quando é construído).

Nota: este projeto usa um multímetro opcional para medir a tensão no potenciômetro. Isso é feito para comparar o valor com o valor lido pelo MCP3008. Observe que isso é opcional. Se você não tiver um multímetro, não poderá comparar esta tensão. Isso é feito para mostrar que o valor lido pelo MCP3008 é igual ao valor lido pelo multímetro. Configure o multímetro para medir a tensão CC, conforme mostrado na imagem abaixo (seu multímetro pode ter uma aparência diferente).


Multímetro Fluke 87




Iniciando o aplicativo

Escolha Depurar , ARM configuração e Máquina Remota . Agora clique com o botão direito do mouse no projeto, selecione Propriedade e, em seguida, clique em Depurar marcação. Em seguida, coloque o endereço IP do Raspberry Pi 2 no campo Máquina remota e desmarque Usar autenticação .

Pressione F5 . O aplicativo será implantado no dispositivo, o que pode levar alguns minutos na primeira vez.

O vídeo abaixo é uma demonstração do aplicativo:



Nota: O aplicativo usa um medidor linear de 360 ​​° para exibir a quantidade de água. Devo notar que este sensor não tem nenhuma correlação linear ou qualquer outra correlação que eu conheça entre a quantidade de água e a leitura do sensor. Ele produz valores menores quando há algumas gotas e valores mais altos quando há mais água. Eu uso o medidor linear mais para ajudar a entender o conceito do ADC. É possível conectar o sensor de água da mesma forma que conectei meu sensor de tensão CA opto-isolado para produzir um sinal alto ou baixo que poderia ser captado por um pino GPIO. Este dispositivo pode ser conectado para fornecer um sinal úmido ou seco. Dito isso, estou anexando este sensor de água a um ADC porque quero detectar a diferença entre um pouco de água e muita água, e a abordagem descrita neste projeto atinge esse objetivo.

Fonte: Sensor de água de alta sensibilidade no MCP3008

Processo de manufatura

  1. Aspersor de gramado
  2. Rolling Pin
  3. Sensor de imagem apresenta baixa potência, alta taxa de quadros
  4. Sensor de termômetro digital de 1 fio Raspberry Pi (DS18B20)
  5. Entrada do sensor analógico raspberry pi usando um MCP3008:fiação / instalação / programa básico
  6. Sensor de água de alta sensibilidade em MCP3008
  7. Sensor suave aumenta a sensibilidade da ponta dos dedos para robôs
  8. Tubo ToughMet® 3TS TS105 (C72900)
  9. Bombas de alta pressão de água para irrigação
  10. O que é uma bomba de água automática?