Questão:
Como posso combinar muitas entradas em um pino?
fiskeben
2014-11-15 21:01:07 UTC
view on stackexchange narkive permalink

Desculpe minha ingenuidade, mas parece que não tenho um vocabulário para todo o domínio da eletrônica ...

Estou interessado em construir algo para medir a direção do vento. Inspirado por este projeto, eu gostaria de construir um circuito de várias chaves de palheta (digamos, 8). Para simplificar, digamos que apenas um deles estará ativo ao mesmo tempo. Embora eu pudesse conectar cada switch diretamente a pinos separados no Pi, gostaria de combinar os switches em um, saída comum para o Pi. De alguma forma.

Estou me imaginando algum tipo de chip que poderia ficar entre meu circuito e o Pi. Os interruptores podem ser numerados de 0-7 e o chip pode gerar um número binário correspondente ao interruptor ativo no momento.

A questão é: existe algo assim? Poderia ser construído de forma relativamente fácil?

Yip. um controlador I2C ADC. Em cada reed switch então você coloca um resistor de valor diferente que lhe dá uma voltagem analógica. por exemplo, `3.3volts input -> R1 -> 0.3v-0.4` é a chave de leitura leste e apenas faz para o resto. (assim como o link que você forneceu na verdade, mas você quer valores diferentes em R9-R16). desencadeia trabalhos divertidos sobre o clima. Você tem uma tabela verdade dependendo das tensões aplicadas. Barato e fáceis de 2 pinos GPIO que podem ser estendidos para mais dispositivos I2C, como temperatura, luz, umidade, contador de chuva e medidor Geiger, se quiser.
Quatro respostas:
joan
2014-11-15 21:26:43 UTC
view on stackexchange narkive permalink

OB + tem 26 gpios utilizáveis. Nesse contexto, 8 não parece muito.

Na verdade, você está tentando negociar o número de gpios usados ​​por complicar o circuito.

Você já considerou um expansor de porta, como o popular MCP23017? Isso se conecta ao barramento I2C (dois gpios, SDA e SCL) e fornece 16 gpios adicionais por chip. Até 8 MCP23017 podem ser conectados ao mesmo barramento I2C. Tipos adicionais de dispositivos I2C também podem ser conectados ao barramento I2C ao mesmo tempo.

Existem muitos tutoriais no www sobre como falar com o MCP23017 e semelhantes usando Arduinos e o Raspberry Pi.

Qualquer outra solução que você encontrar pode ser mais complicada em hardware e software.

Eu temia que isso fosse complicado. No entanto, o expansor de porta parece resolver o problema muito bem. Posso guardar todos os fios e conectar apenas alguns ao Pi e colocar toda a lógica no código (que eu conheço melhor). Obrigado pela ajuda.
Isso é um pouco exagero. O chip ADC seria melhor, mais fácil e mais barato, talvez?
@ppumkin Se eu estivesse projetando um, procuraria um potenciômetro rotativo que permitisse a rotação contínua. Cada rotação vai da resistência mínima à máxima. Uma espécie de equivalente analógico da escada do resistor discreto. Não tenho certeza se tal pote existe.
Faz sentido, mas então você tem que impermeabilizá-lo adequadamente e ele tem uma vida inteira. Onde as palhetas e resistores são todos vedados com uma vida útil muito maior e não causa resistência ao vento, pois fica em um eixo livre.
Piotr Kula
2014-11-17 03:23:24 UTC
view on stackexchange narkive permalink

Um design analógico simples em estrela.

Alimente sua tensão em 3,3 volts, digamos. Então, a partir do "ponto central" (Pino 1 Vcc), você calcula um conjunto de resistores que fornecerá várias tensões de saída quando os interruptores reed forem ativados, que podem ser medidos (Pino 4 Vdd)

enter image description here / p>

fonte da imagem Conjunto do sensor meteorológico n / p 80422

Esta é uma tabela verdade baseada na entrada de 5 volts, mas mostra um exemplo dos resistores usados. Você precisa levar em consideração o resistor de 10K na entrada (não mostrado nos diagramas) para evitar curto-circuito.

enter image description here

Fonte da imagem Conjunto do sensor climático p / n 80422

Você deve levar em consideração que duas palhetas podem estar ativas ao mesmo tempo e não devem dar o mesmo valor que qualquer outra palheta.

Você então só precisa de 1 canal para ler 8 interruptores. Aqui está um chip 2USD barato, mas o ebay tem kits pré-construídos ou por um preço semelhante usando I 2 C

enter image description here

Você pode em seguida, ligue-o assim. Todo I 2 C será o mesmo.

enter image description here

Você então tem a liberdade de codificar em Python (eu 2 Biblioteca C), Mono C # (sharp IO) ou direto do console com scripts (usando o utilitário GPIO).

krs013
2014-11-17 00:02:58 UTC
view on stackexchange narkive permalink

O que você está pedindo é um expansor de porta, como disse o joan.

Se você quiser uma solução de nível inferior ou mais barata, pode controlar 12 dispositivos com 4 fios usando Charlieplexing, mas isso é mais complicado.

Como joan disse, GPIOs são abundantes no rPi, mas se você está esperando por uma solução de contagem de fio baixo para ter seus sensores longe do rPi, quase certamente precisará de pelo menos 3 ou 4 fios, Charlieplexing ou i2c com alimentação e aterramento. Se você tiver uma linha i2c longa, tome cuidado para ter um resistor pull-up suficiente. Boa sorte!

Cornelius
2014-11-17 03:29:57 UTC
view on stackexchange narkive permalink

Não parece robusto para mim. O que acontece quando NENHUMA chave de palheta está fechada? O ajuste mecânico deve ser perfeito para ter uma única chave fechada e não duas ou nenhuma. É mais fácil colocar todos os estados da chave no Pi e classificar a direção do vento no software.

E se o ajuste mecânico for de pelo menos 1, mas 2 na sobreposição. Então é robusto.
Portanto, você tem uma mecânica precisa, resistores fora do padrão e funções i2c e adc em oposição a um expansor de porta i2c simples - sua escolha!
resistores não padrão?


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...