Ir ao conteúdo
  • Cadastre-se

Sensor de proximidade com pcf8883


Posts recomendados

Bom dia à Todos!
Estou entrando no Clube hoje para buscar informações sobre circuito de detecção de proximidade usando o CI PCF8883 para detectar líquido dentro de uma garrafa de cerveja. O professor Newton C. Braga me informou que é possível fazer isso com este CI.

Antes de entrar na minha questão, peço desculpas se postei isso no Tópico inadequado, mas na lista de tópicos o mais aproximado que achei foi o "Programação de microcontroladores". Achei nada sobre Sensores.

Bom, em pesquisa aqui sobre o que procuro, achei a penas uma postagem de 2010, a qual não teve nenhuma resposta, provavelmente porque o pessoal na época não dominava este CI, por ser novo.
Esta é a postagem:

Direto ao assunto, eu pergunto: Alguém tem noção de como criar um circuito utilizando este CI? Alguém já utilizou este CI como sensor de proximidade? Alguém tem algum circuito exemplo que eu possa utilizar para minha finalidade?

Link para o comentário
Compartilhar em outros sites

@Alexandre Guglielmi ,

 

Veja este exemplo de projeto, do próprio fabricante :

 

http://www.nxp.com/documents/application_note/AN10832.pdf

 

Realmente você postou na área reservada a projeto de microcontroladores, vou pedir para que movam este post para a área geral de Eletrônica, ok ?

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Numa rápida leitura do d.s., não vi referência a qual distância ele detecta. Acho que algo como tecla touch screen, ou seja tem que por o dedo mesmo. Pode ser que haja mais solução pra sua aplicação de detectar líquido apenas.

 

Seu ci parece ser relativamente simples de setar se for só pra estado lógico (perceba "capacitive proximity switch"). Se conseguir medir distância com ele , nos fale como fez. Pergunte ao NC Braga.. (tá vivo ainda??)

 

Curiosamente há muitos e muitos anos fiz uma aplicação com mc cujo princípio era relativamente simples: duas ilhas formam um capacitor. Ao aproximar o dedo, o mc detectava alteração de capacitância. O pulo do gato: assim que liga o mc mede a capacitância e registra. Depois mc fica medindo o tempo todo e se alterou com relação a medição inicial, tem tecla pressionada. Implementei alguma melhoria no algoritimo depois, mas isso não vem ao caso.

 

Penso que em algum momento deves usar mc portanto penso não ser relevante migrar daqui.

 

Link para o comentário
Compartilhar em outros sites

Bom, tudo pra mim é novidade, tendo em vista que sou mais prático do que projetista propriamente dito.
Acredito que a questão de capacitância irá variar com o meio onde está inserido o componente, seja um material sólido ou não(entrada).
Mas, antes disso estou perdido com relação a integração com a placa Arduino. Ainda na parte do escopo mesmo, básico.
1) Pelo que entendi as saídas a serem lidas pelo Arduino são VDD(INTREGD) e VOUT. Preciso entender que tipo de leitura deve ser considerada e a excursão(limites);
2) Não entendi a função da chave Push-button para o meu projeto;
3) Pelo que entendi a entrada será algum material a ser conectado ao capacitor RF. Esse material estará próximo ao vidro da garrafa. Também não sei que tipo de material.
Anexei a imagem do circuito exemplo do fabricante.

pcf8883.jpg
P.S.: Sim, Newton C. Braga is alive! :)

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Pode ser mais prático sim mas não mais rápido. Ter mínimos conhecimentos na área é condição sine qua non

Por (algumas) partes:

-VDD e VSS são + 5 e terra respectivamente. Leitura a ser considerada: níveis lógicos (nada a ver excursão)

-não li o d.s. com profundidade mas as palavras pulse e toggle implicitamente me indicam o comportamento da saída: ao sentir a "presença estranha" (um dedo) ou só dá um pulso, ou muda de estado

-a entrada é um sensing plate (placa de detecção) que é simplesmente uma ilha (= à que fiz no passado). Ela se comporta como uma placa de um capacitor. O seu dedo (ou (não) o objeto a ser detectado seria a outra placa). Se você for "prático" d+,  não vai conhecer os princípios do capacitor, então... desconsidere

 

Resumindo...(agora sim a praticidade) : aproxima algo da entrada IN, alterna ou altera o estado da saída OUT

 

Arduíno? aí sim... forum de mc

Arduíno? aí não... me inclua fora desta

 

Link para o comentário
Compartilhar em outros sites

Inicialmente qualquer contribuição é bem vinda. Agradeço as respostas. Está melhor do que o colega em 2010.
Condições mínimas são atendidas. :)
O circuito não é para sensor de toque. Não é essa aplicação, mas entendo o "toque" como sendo a presença do liquido dentro da garrafa.
Quanto ao Arduino, ele apenas irá ler. Só serve para a decisão de presença ou ausência do "toque" digamos assim, e não entra nesta etapa da discussão. Estou solicitando help para o circuito eletrônico.
Sim, o VDD é um valor fixo. Não sei onde consta +5V. No DS postado pelo aphawk não menciona. Se alguém tiver uma versão do DS desse componente que descreva isto, solicito que me envie, por favor.
Também no DS não consta o comportamento da saída OUT. Não encontrei.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

isto...

 

36 minutos atrás, Alexandre Guglielmi disse:

Condições mínimas são atendidas

 

contrasta com isso...

37 minutos atrás, Alexandre Guglielmi disse:

Não sei onde consta +5V.

 

pois o ds menciona isto...

 

"Wide voltage operating range (VDD = 3 V to 9 V)"

 

kk. brinc. Por gentileza, não leve a mal.

 

Sua aplicação é bem bacana (principalmente porquê envolve cerveja kk). De fato tem até uma aplicação que seria bem curiosa (que pretendo fazer 1 dia se ganhar um ou+  ci deste) que é medir o nível de caixa dágua. Não sei se a presença da água interna altera a capacitância duma chapinha colada na lateral externa.

 

Como disse, não li o ds a fundo. mas muito provavelmente menciona sim o comportamento do ci. De fato, com certeza.

 

Paulão @aphawk poderá te orientar direitinho

Boa sorte!!

Link para o comentário
Compartilhar em outros sites

Vamos lá...andei avançando no meu estudo.
Repetindo, o DS do link que o aphawk me informou na primeira resposta não consta o +5V, pois ele não é o DS, mas sim um App Note.
Confere sua informação: VDD vai de 3 a 9V, conforme o DS.
Não levei a mal, relaxa. Somos todos dependentes aqui de alguma forma. Daqui a pouco você vai querer provar da minha cerveja viu..:). Então não fuja tão cedo... :)
Este meu circuito será utilizado para substituir um sistema de enchimento de garrafas que hoje faço com um sensor de corrente nos bicos enchedores das garrafas. Só que como esse sensor fica em contato com o liquido, eu fiquei incomodado e resolvi procurar por outro sensor, nesse caso um capacitivo, o qual achei mais adequado.

Quanto ao TYPE de minha aplicação ele deverá ser ligado no VSS, pois na presença do precioso líquido(cerveja!) o OUT ficará em nível lógico VDD, e na ausência de líquido, < VDD. Isso é o que espero.

Apesar de não ser burro, ainda não entendi a placa para entrada capacitiva. Poderia ser digamos uma superfície cilíndrica ou retangular de qualquer material, digamos aço inox?

 

Link para o comentário
Compartilhar em outros sites

@Alexandre Guglielmi ,

 

Olha, tenho uma sugestão .....

 

Se o objetivo é detectar o nível adequado da cerveja, suponho que seja em uma garrafa de vidro, certo ?

 

Não seria bem mais simples utilizar um diodo emissor de luz infravermelho, e do outro lado da garrafa um diodo receptor, e fazer o ajuste de corrente para que trabalhemos numa região linear do fotoreceptor, em vez do uso normal que é sempre operar saturado ou no corte  ?

 

Assim fica muito mais simples de detectarmos a variação quando a cerveja atrapalha o faixo de luz, com um simples comparador, sem termos de utilizar um microcontrolador.

 

Paulo

 

 

Link para o comentário
Compartilhar em outros sites

@aphawk, essa sua ideia já se passou pela minha cabeça, mas não sei porque cargas dágua alguém comentou em algum lugar que o fato da garrafa ser opaca, iria inviabilizar a monitoração.
Concordo com você que se fosse viável, com certeza será bem, bem mais simples...e até mais barato.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

como você parece ser 1 cara legal, vou te dar uma ideia 100% original que usei com sucesso no passado. É o lance do comparador mesmo sqn. É com conversor ad. Semelhante ao que te disse no post #4

-emita a luz IR de um lado

-do outro um sensor IR

-o pulo do gato não é medir a presença ou não da luz IR mas sim o valor ad que esta provoca no sensor

-agora ficou fácil né... pequenas variações deste valor te indicam presença do precioso líquido. O legal é que você nem precisa se preocupar com valores numéricos e tal. Apenas com os valores de variação. você pode (e deve) usar a entrada analógica do seu precioso arduíno. Bom foi só a essência. Obviamente hás de implementar filtros no hw e sw e afins

Algo assim que fazem pra detectar planetas... plagiaram-me mas tudo bem.

 

Bora tomar uma?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia à Todos!
@aphawk e @Isadora Ferraz, enquanto vocês decidem os critérios de compartilhamento dos direitos autorais da ideia,

1) Vocês levaram em conta o que eu falei sobre a opacidade da garrafa? Acho que não. Só porque eu sou Jr aqui né... :(
2) Este Sensor Infravermelho/Módulo de Reflexão não serve?

3) Que CIs vocês recomendam para emissão/recepção do sinal para o caso das duas extremidades da garrafa? Já tem algo pronto por ai?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@aphawk Não sei se você tinha nascido quando fiz este projeto kk. Bom, me plagiaram na detecção de exo-planetas: detectam pequena variação de luz de uma estrela. No meu caso, é uma pequena variação de luz refletida. Quase a lesma lerda. O lance é que se pode monitorar, controlar, contornar, filtrar etc no conforto do teclado e mouse sem ter que mexer muito com hw

No seu caso, pensou em usar comparador (o que me remeteu à lembrança). É válido mas tem alguns poréns como p.ex. o saco controlar a sensibilidade, histerese, ruídos e etc e tudo no sofrimento do hw

 

@Alexandre Guglielmi este sensor só testando mesmo. Talvez a cerveja não o sensibilize

Voltando no caso da cerveja estrela (tái .. um nome pra ela, bebeu, vai pro espaço kk) , teorizo que a luz IR ao passar pela garrafa vazia e incidir sobre o sensor, causa uma queda de tensão nele. Ao passar pelo líquido, outra. Subtraia uma pela outra e a diferença vai ser a presença do líquido.

micro momento reflexão: Saber lidar com as diferenças é uma das chaves do sucesso. Bom, não é reflexão, é passar a luz de um lado à outro... puts... tá ficando cada vez mais trocadilhamente filosófico...

 

voltando ao normal...

Penso emissor de um lado do pescoço da garrafa, sensor do outro ok?. Algo como

ir-sensor.png

 

De novo, só testando mesmo. Ou seja, na prática a teoria é outra

Link para o comentário
Compartilhar em outros sites

Bom dia à todos!
@Isadora Ferraz, agradeço todo seu empenho e paciência em contribuir com este post.
À parte a sua "malha filosófica", você permitiu que avançássemos mais. :)
O circuito sugerido é muito simples, e barato(acho).
Então, dando sequência efetiva nas ideias:
1) Simular o Sensor Infravermelho/Módulo de Reflexão;

2) Elaborar o circuito de emissão (falta definir IRLED e o R1 inicial(trimpot?));
3) Elaborar o circuito de recepção (falta definir IR-SENSOR e o R2 inicial(trimpot?)).
Acabei de ter uma ideia: vou por uma garrafa entre o controle remoto e a TV, ela cheia e depois com liquido. Vou ver os primeiros resultados...
 

Link para o comentário
Compartilhar em outros sites

Bom dia à todos!
A fim de fechar a análise de viabilidade da ideia do infravermelho, fiz o ensaio de colocar uma garrafa vazia e depois uma cheia, entre o controle remoto e a TV, direcionando através do gargalo da garrafa.
Com a garrafa vazia, independente da distância, o feixe passa pela garrafa.

Com a garrafa cheia, dependendo da distância da garrafa ao receptor, o feixe é atenuado, não sensibilizando o sensor.
Então o que dá pra adiantar é que possivelmente deve ser feito um ajuste de potência do emissor, pois a distância envolvida no meu projeto será de aproximadamente 15cm. Daí o motivo de eu comentar de por um trimpot para calibrar a potência do emissor.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

seu teste demonstra que há muita possibilidade de sucesso. Só um detalhe é que o receptor da tv é 1/2 digital binário, ou seja ou viu o sinal ou não viu nada.

Sim você pode controlar a intensidade do emissor ou a sensibilidade do receptor com o comparador do Paulão ou a entrada analógica minha. Como sou contra trimpots, prefiro obviamente fazer duas medições como já te disse anteriormente. Neste caso, um receptor de tv não serve (ele é digial, lembra?). Teria que ser apenas um foto diodo ou foto transistor

 

Voltando ao seu teste, ao invés de trimpot (sou contra ele, lembra?) eu (eu) faria o controle com um pwm qualquer.. sei lá... Bom vá de trimpot mesmo pra eu não precisar te explicar kk

Link para o comentário
Compartilhar em outros sites

Oi @Isadora Ferraz!
Entendi o binário. Vamos esquecer então esse meu ensaio.
Vou comprar uma dupla emissor/receptor e fazer o teu circuito, e repetir o ensaio, agora integrando ao que tenho de ferramenta, o seu amado Arduino.:P
No Mercado Livre tem uma duplinha interessante, veja: Emisor/Receptor IR.

Se tiver algum circuito com PWM para integrar a essa dupla, por favor fique a vontade.

Link para o comentário
Compartilhar em outros sites

@Alexandre Guglielmi ,

 

Opa tá vendo que o bicho era muito mais manso do que você pensava ????

 

A dica é o seguinte :

 

Utilize um canal de PWM para você poder controlar a corrente que passa ao Led transmissor, assim você pode fazer um programa de auto-ajuste ! 0% de pwm = corrente zero ; 100% pwm = corrente máxima permitida no Led transmissor.

NÃO PRECISA DE CIRCUITO ! basta apenas um resistor em série com o Led, e coloque um capacitor eletrolítico em paralelo com o Led, e pronto !  

O Arduino pode fornecer 40 mA sem problema para o Led, calcule o resistor para limitar a corrente de acordo com a limitação do Led.

 

A ideia é usar o receptor de maneira linear, onde você possa ler o valor da tensão sobre ele pelo conversor A/D. Mas acho que precisa usar um transistorzinho para amplificar essa variação, de modo a ter uma faixa maior de tensões a serem lidas.

 

Claro que isso implica que seu programa tem de ficar sempre monitorando ao conversor A/D.

 

Eu faria diferente :  usaria um simples comparador de tensão para fazer isso, onde o limiar da deteção seria ajustado também por PWM, e a saída do comparador acionaria uma interrupção no Arduino, sinalizando que encheu a garrafa. Assim também posso fazer o ajuste da sensibilidade tanto no transmissor como no receptor ( por exemplo, quando fizesse cerveja preta precisaria aumentar a potência da transmissão... ) .

 

Paulo

 

 

 

Link para o comentário
Compartilhar em outros sites

Você tem razão @aphawk, pois o emissor que comprei tem essas características:

Tensão (V): 1.2-1.4V, Corrente (mA): 100mA.
Talvez tenha que amplificar. Talvez, pois a distância envolvida é bem pequena - 15cm e não acredito ser necessário chegar nos 100mA.
Vou tentar fazer o circuito e depois posto aqui um preview.

Link para o comentário
Compartilhar em outros sites

@Alexandre Guglielmi ,

 

Uma coisa que você pode fazer é usar um bc547 para acionar esse Led transmissor , assim pode fornecer tranquilamente os 100 mA. E se resolver acionar por PWM também vai funcionar tranquilo.

 

Já o receptor, ... 15 cm de distância acho que nao precisa de nada.

 

Faça um teste prático.

 

Paulo

Link para o comentário
Compartilhar em outros sites

@Alexandre Guglielmi ,

 

O transistor é para que possamos fornecer 100 mA para o Led, pois o Arduíno sozinho só consegue fornecer 40 mA.

 

Algo como isto aqui :

 

http://i.stack.imgur.com/DIM0T.png

 

 

Lembre-se de que podemos controlar com PWM e fazer a corrente média no transmissor ir de 0 mA até 100 mA ! Isto evitaria ajustes analógicos, e poderíamos fazer tudo no software.

 

Amplificar seria na recepção, mas acho que com distância tão pequena não precisamos amplificar nada !

 

Paulo

Link para o comentário
Compartilhar em outros sites

Bom dia @aphawk!
Vou inserir o transistor conforme sugerido. Porque? Apesar da pequena distância entre Emissor-Receptor, receio que conforme o conteúdo da cerveja possa variar a interferência ao IR. Pense numa cerveja Stout, por exemplo, escura, poderá afetar mais ainda a sensibilidade do receptor.

Acredito que essa configuração seja razoável. Confere?

ir_circuit_final.jpg

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...