collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Resistor Ladder  (Lida 3156 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Resistor Ladder
« em: 09 de Fevereiro de 2015, 23:14 »
Fiz o seguinte esquema para podes com um pino ler as 16 combinações dos 4 bits de um dip switch.

Contudo como podem ver pela tabela, um dos valores é igual, o que é bastante estranho, e as os intervalos de variação não são muito bons para serem lidos pelo ADC.



Fiz alguma coisa mal?

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Resistor Ladder
« Responder #1 em: 09 de Fevereiro de 2015, 23:19 »
Claro, senão funcionava ;)

https://www.google.pt/search?q=r-2r+ladder&source=lnms&tbm=isch

Não podes deixar entradas em aberto, a opção é gnd ou +5V.


O que queres é mais deste género:
http://www.instructables.com/id/How-to-access-5-buttons-through-1-Arduino-input/?ALLSTEPS
(que não é uma malha R-2R)
« Última modificação: 09 de Fevereiro de 2015, 23:21 por jm_araujo »

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: Resistor Ladder
« Responder #2 em: 10 de Fevereiro de 2015, 01:56 »
Mas uma malha de R-2R não permite saber o "código binário" perante a tensão no Vo?

Eu ja tinha olhado para aquele exemplo que indicaste mas pensei que o R-R2 era melhor e me permitia uma resolução maior entre valores. E vou fazer o estudo para ver então o que estava a falhar no meu raciocinio.

Sobre o esquema que estava no blog.
Experimentei e funciona:


So acho que vou ter de meter um amp op para amplificar a diferença entre os intervalos.


As gamas das resistências que ele escolhe é "porque sim" ou é alguma relação com a "resistência anterior".
Se fosse para meter mais "bits", este metodo tambem ia funcionar?

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Resistor Ladder
« Responder #3 em: 10 de Fevereiro de 2015, 11:14 »
Tás a ser preguiçoso.
Se sabes calcular um divisor resistivo, também sabes calcular resistências para ter um espaçamento entre os valores melhor.

Por exemplo para 4 resistências, vamos manter a "comum" nos 100k. Queres um intervalo +/- uniforme entre elas. 5V/5 intervalos=1V de intervalo. As relações dos divisores vão ser portanto 1/5, 2/5, 3/5 e 4/5.
(RintN = Resistência do interruptor N)
Num divisor a Vout=R2/(R1+R2) Vin, ou seja para este caso vais ter R2=100k, pelo que as as resistências vão ser 1/5=100k/(Rint1+100k) <=> Rint1=400k, valor standard mais perto 390k, e calculando para as outras e arredondando para a série E12 Rint2=150k, Rint3=68k e Rint4=27k.

Ou seja, para 4 interruptores se usares resistências para cada um respetivamente de 390k, 150k, 68k e 27k respetivamente, com a resistência comum de 100k vais ter as tensões de saída para cada interruptor de:
Int1= 1.02V
Int2= 2V
Int3= 2.976V
Int4= 3.937V

Acabaste de poupar um ampop. Se não acreditas no meu "guardanapo" mete lá no simulador  ;)

Estes método é o melhor para um espaçamento uniforme quando primes 1 só interruptor, mas se queres detetar vários interruptores em simultaneo não vai funcionar grande coisa.
Para esse caso estive a dar uma vista de olhos (e a aprender mais uma coisa, ver primeira linha desta resposta ;) ) e acho que encontrei a melhor solução:
Nesse caso a melhor é mesmo criar uma escala de valores progressiva conforme o número de interruptores premidos, ao estilo DAC. Para conseguires uma progressão linear de valores, a melhor solução que encontrei é na formula do divisor de tensão Vout=Vin*R2/(R1+R2) se o valor de R2 for muito menor que o de R1 podemos aproximar por Vout=Vin*R2/R1, o que nos "lineariza" a função.
Assim podemos escolher as resistências dos interruptores numa progressão quadrática para termos os valores distribuídos linearmente numa parte das voltagens possíveis, desde que sejam maiores consideravelmente que a resistência comum.
Por exemplo para 4 interruptores outra vez, vamos escolher a resistência comum (R2) com 1k, e fazer que o valor full scale (todos os interruptores ligados) seja 1V, para que R2 seja significatimamente menor que as outras , o que dá que a resistência do interruptor MSB (Rint1) (1/2FS=0,5V) seja 0,5V=5V*1k/(Rint1+1k)<=> Rint1=8k, em E12 Rint1=8,2k, e as seguintes são na quadrática para garantir intervalos distribuídos uniformemente, à-la DAC, portanto Rint2=16k=(E12)15k, Rint3=32k=(E12)33k  e Rint4=64k=(E12)68k.
Com os valores distribuídos na escala de 0V até 1V é fácil de usar a ADC com uma referência de baixo valor (pode ser a interna de 1.1V do ATMEGA), ou então amplificares com um AMPOP com ganho 5.
O gráfico anexo é o resultado deste "estudo".


Talvez tenha ficado um bocado confuso, mas está aqui tudo o que precisas e se te custar a entender alguma parte posso tentar explicar melhor.
« Última modificação: 10 de Fevereiro de 2015, 16:59 por jm_araujo »

Offline samc

  • Mini Robot
  • *
  • Mensagens: 442
Re: Resistor Ladder
« Responder #4 em: 10 de Fevereiro de 2015, 18:26 »
Excelente explicação jm_araujo!

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: Resistor Ladder
« Responder #5 em: 15 de Fevereiro de 2015, 03:30 »
Antes de vir aqui ja estava a tentar calcular uns valores como propuseste para ver se evitava o tal ampop, mas não dediquei muito tempo a isso, porque também me pareceu que funcionava apenas para algo tipo teclado numérico, em que "so primes um botão de cada vez."

Depois tambem me pus a estudar a parte dos dac's porque ao fim ao cabo é o que eu preciso.
Logo vou juntar a minha informação com os calculos que ja fizeste e ver se faço então o que preciso.

Agora ja é tarde mal estou a pensar.

De qualquer das formas pareceu-me que tenho ali a informação suficiente, obrigado.