Implementando I2C para Analógico

8

Como posso implementar (ou talvez exista um IC que já faça isso) uma placa cuja entrada seja I2C e a saída seja tensão analógica (0V - 5V)?

Eventualmente, eu gostaria de conectar alguns deles aos pinos de E / S de um arduino, criando efetivamente saídas digitais para analógicas.

mjh2007
fonte

Respostas:

11

Considere o Microchip TC1321 , um conversor I2C digital para analógico (DAC) com 10 bits de resolução (4,88 mV / etapa), disponível no SOIC8 (você precisará de uma placa adaptadora fácil de soldar [por exemplo, sparkfun ou futurlec ) e opera a partir de 5 volts. Se você estiver bem com apenas 8 bits (19,5 mV / etapa), considere o TC1320 .

Ambos os chips estão disponíveis na Mouser ou Microchip Direct por cerca de US $ 2.

Se você pode usar SPI em vez de I2C, suas opções são mais fáceis, o MCP4821 e o MCP4822 são chips DAC SPI únicos e duplos que vêm em bons pacotes PDIP8. Novamente, eles custam cerca de US $ 2 a partir dos locais habituais (mouser, digikey, microchip direct, farnell).

esfumado
fonte
Por que não colocar os URLs reais por baixo, o texto principal no estilo das notas de rodapé?
Amos
@Amos, porque o formatador faz um bom trabalho ao reconhecer URLs em muitos formatos, e o filtro 'novo usuário' atinge a contagem (links)> 1, independentemente da formatação. Perdi uma resposta extensa no primeiro dia pelo mesmo motivo (publiquei e não vi a mensagem de erro).
Craig Trader
Certo, eu não tinha percebido.
1111
É um conversor digital-analógico, não analógico-digital.
Endolith 17/11/2009
E você deve poder editar sua postagem e adicionar os links agora que tem alguma reputação.
Endolith 17/11/2009
7

Dependendo do que você está dirigindo, se você possui um Arduino, já possui três a seis saídas analógicas, pois pode usar a função AnalogWrite para definir o ciclo de trabalho dos pinos do PWM. A frequência é de aproximadamente 490 Hz, mais do que suficiente para os LEDs (novamente, isso depende da sua aplicação). Você pode definir o valor de 0 a 255, fornecendo uma resolução de (5v / 256 =) .020V.

Você precisa determinar se 490 Hz é uma taxa suficiente, mas o PWM é usado para simular a tensão analógica para muitas aplicações e pode ser adequado à sua sem peças ou programação extras.

Você também pode considerar usar um filtro (rede capacitor-resistor) para suavizar a onda quadrada. Isso lhe dará mais liberdade nas aplicações que você pode controlar, e as passivas são baratas, mas, dependendo da sua aplicação, pode nem ser necessário.

http://www.arduino.cc/en/Reference/AnalogWrite

Lou
fonte
3

Só para você saber, um AVR (o chip usado em um Arduino) já pode produzir tensões 'analógicas' usando o capacitor PWM + para suavizar a forma de onda (o capacitor nem é necessário em alguns casos). Não é tão alta resolução quanto um chip DAC dedicado, mas é bom o suficiente para muitas necessidades.

davr
fonte
1

Aqui está uma entrada da Wikipedia sobre potenciômetros digitais. Esses potes digitais podem atuar como saída analógica no arduino. Ele atuaria como um potenciômetro regular, varrendo todas as tensões de 0 - 5V a comandos seriais (de algum tipo). Se você não precisava do I2C, poderia usar este pote digital da Parralax ou esse chip da Jameco. Os únicos chips I2C que eu vi são todos montados na superfície, em vez de através do orifício, isso os torna mais difíceis de trabalhar e. Aqui está o link para todos os potenciômetros digitais I2C da Jameco. Espero que isso tenha sido útil e boa sorte!

Hristos
fonte
2
Os potes digitais são geralmente usados ​​para definir o ganho ou atenuação de um circuito externo em algumas etapas discretas (256). Para obter uma tensão CC, você precisa conectá-lo a uma fonte de tensão, mas não é realmente para o aplicativo a que se destinam. Um DAC, por outro lado, gera uma voltagem diretamente e geralmente terá muito mais etapas e mais precisão. Um DAC é o que este pôster está procurando.
Endolith 17/11/2009