Estou procurando uma peça que permita que um usuário altere frequentemente uma configuração. No momento, estou utilizando um comutador DIP SMD conectado a um expansor de E / S I2C.
O que me incomoda é a grande área ocupada desses componentes (switch DIP combinado com o IO do expansor de IO), bem como a interface do usuário bastante entediante. Existem comutadores DIP ou algo que tenha a mesma função com a qual eu posso conversar através de um barramento digital como o I2C para ler seu estado?
Também estou aberto a abordagens completamente diferentes. Tudo o que preciso é de algo que possa ser mecanicamente alterado de maneira permanente e permita pelo menos 64 estados diferentes. É importante que a configuração possa ser feita quando o circuito não estiver ligado e forneça feedback visual da configuração exata ao usuário. A única maneira em que seria bom ligar o circuito é se a configuração e o feedback visual forem independentes, sem a necessidade de controle de um microcontrolador ou SoC.
A pergunta está um pouco relacionada a esta pergunta de 6 anos atrás: Substituição de chave DIP
Edit: Existem algumas ótimas sugestões nas respostas e acho que deixo esta pergunta sem resposta, os votos da comunidade devem decidir o que é útil e o que não é. Se você tem o mesmo problema que eu, procure todas as respostas.
Respostas:
Você pode usar um comutador SIP em vez de um DIP. A economia na área da placa daria a você espaço para sua interface I2C (ou uma interface mais simples, como um registro de turno com trava de entrada):
A imagem mostra na horizontal, mas na verdade é montada na vertical.
fonte
Interruptor "DIP"
Primeiro de tudo, um interruptor "DIP" não precisa ser grande. Aqui está um comutador SMD de 6 bits com pinos de gancho J e um passo de 1,27 mm:
Potenciômetro
Se você está desesperado para reduzir a área ocupada e pode incomodar um pouco o usuário, pode usar um potenciômetro conectado a um conversor A / D. Como você precisa de 64 configurações, um conversor de 12 bits deve ter espaço para resolução mais do que suficiente para discernir entre as etapas, considerando filtros e limiares elétricos e de software. Aqui está uma solução de 2 por 2 mm:
No entanto, nunca vi um potenciômetro analógico com 64 detentores físicos. Isso significa que você não terá nenhum feedback tático confiável para o usuário ao configurar o dispositivo. Também é difícil encontrar com segurança a configuração correta na inicialização, pois ela pode ser deixada à direita em um limite entre duas configurações - eu armazenaria a configuração anterior em uma EEPROM e, se o potenciômetro estiver próximo o suficiente do valor armazenado na inicialização, eu os consideraria iguais.
Além disso, eu provavelmente não usaria esse aparador de 2 por 2 mm, mas existem milhares de aparadores diferentes.
fonte
Você tem um ADC de reposição?
Se você tiver um ADC de 8 bits sobressalente em um microcontrolador próximo, provavelmente poderá abandonar o expansor de E / S em favor de uma rede de resistores - uma escada R-2R ou uma escada ponderada binária. Isso codificaria as posições do comutador como um nível analógico. As escadas de resistência estão disponíveis em pacotes muito pequenos, mas não sei se você terá uma menor que o seu expansor I2C.
Quantas propósito geral IO linhas que você tem?
Se você conseguir conviver com menos linhas de E / S, talvez possa abandonar o expansor de E / S e usar as que possui? Você pode multiplexar os switches em menos de seis linhas de E / S. De fato, se você tiver espaço para 3 diodos e seu microcontrolador tiver pinos tristados, poderá gerenciar com apenas 3 pinos.
Seus usuários podem gerenciar algo um pouco técnico?
Se seus usuários puderem seguir as instruções e a configuração mudar raramente, você pode ter terminais abertos onde eles podem colocar um resistor. Você mede o resistor com um ADC ou medindo a constante de tempo que ele faz contra um capacitor. Você precisaria distinguir 64 valores de resistores, o que pode ser complicado com a última abordagem. E é claro que seus usuários precisariam ter os valores corretos de resistores / estilos de caixa à mão.
fonte
Um ou mais comutadores rotativos codificados são o que você procura.
Teoricamente, os jumpers oferecem mais configurações quando você precisa de centenas de opções, pois os usuários podem criar um curto-circuito em várias configurações diferentes, adicionar resistores, capacitores, diodos etc., mas isso é muito técnico para os usuários e para a placa decifrar!
fonte
NFC NTAG do smartphone NXP +. É basicamente uma EEPROM I2C, que também pode ser lida e escrita em NFC sem energia do sistema.
fonte
Muitas ótimas opções aqui! Um mais obscuro: use um receptor de infravermelho e, em seguida, use o controle remoto da TV ou o computador para transmitir as configurações. É assim que as luzes RGB fazem isso.
fonte
Enquanto pesquisava isso, recebi uma recomendação para Switches Codificados Rotary. Sua pegada é comparável a um switch DIP pitch de 1,27 mm, equivalente a um bit. Embora eles ofereçam uma interface de usuário muito superior à dos switches DIP / SIP na minha opinião.
Em vez de precisar converter um número decimal ou hexadecimal em binário e girar uma tonelada de pequenos comutadores, basta girar 1 ou 2 desses comutadores rotativos e trabalhar com números hexadecimais. Muito mais fácil dizer ao usuário para "entrar" no E6 do que instruí-lo a ativar muitos interruptores em um padrão específico.
fonte
Uma abordagem diferente poderia ser um codificador rotativo, uma EEPROM e 6 pequenos LEDs.
O estado é salvo na EEPROM e os LEDs indicam o modo selecionado atual.
Girar o codificador alternará entre os modos.
Provavelmente também não economiza muito espaço - o seu codificador típico possui um eixo de 6 mm e você também precisa de espaço para os LEDs.
Apenas usar um único interruptor rotativo não parece promissor. Com 64 posições, você acabaria com pouco menos de 6 ° por posição, sentindo que a rotulagem se tornará difícil.
Basta ler o seu comentário na resposta @Trevors, portanto, essa abordagem também é inútil.
fonte
Três opções
Analógico. Um divisor de tensão ajustável. O usuário fornece seus próprios resistores de faixa padrão de 5% para definir o valor.
PWM. Um circuito PWM ou RC opto-isolado com 64 etapas que seu dispositivo lê. Eles podem ser alimentados separadamente ou da mesma fonte, mas, como é opcional, seu dispositivo não estará ligado. Você pode desativar o circuito PWM após a inicialização.
Digital. Um potenciômetro digital com controle por botão. Novamente, o circuito pode ser alimentado independentemente do seu dispositivo.
fonte
Codificadores de roda de polegar? Eles variam de 0 a 9, são empilháveis e têm saídas binárias:
fonte
Você sempre pode trazer o I2C ou outra interface, talvez USB, e permitir que o usuário conecte seu telefone com um aplicativo personalizado que permite configurar algum endereço EEPROM interno.
No entanto, o uso de um aplicativo de telefone pode ser bastante problemático. Você precisaria oferecer suporte ao aplicativo e manter-se atualizado com as tecnologias mais recentes, além de oferecer suporte a muitos fornecedores de telefones.
Ou você pode fornecer um "Dongle" personalizado que se conecta e permite fazer o mesmo.
Mas duvido que você economizaria muito espaço.
Se você tiver outras entradas do usuário, digamos dois ou três botões e algum tipo de indicador, também é possível, com a entrada apropriada do usuário nos botões (tempo de espera etc.), colocar o dispositivo no modo de programação e configurá-lo dessa maneira. A mesma coisa que você vê em aparelhos domésticos como termostatos, amaciadores de água, pode computador, etc.
Você pode fazer muito com dois ou três botões e um LED.
Se ele precisar ser configurado enquanto não estiver energizado, você ficará preso a switches ou jumpers.
fonte