Wie kann ich eine Karte implementieren (oder vielleicht gibt es einen IC, der dies bereits tut), deren Eingang I2C und dessen Ausgang eine analoge Spannung (0 V - 5 V) ist?
Schließlich möchte ich einige davon an die IO-Pins eines Arduino anschließen, um effektiv digitale zu analoge Ausgänge zu erzeugen.
Stellen Sie sich vor, der Microchip TC1321 ist ein I2C-Digital-Analog-Wandler (DAC) mit einer Auflösung von 10 Bit (4,88 mV / Schritt), der in SOIC8 erhältlich ist (Sie benötigen eine einfach zu lötende Adapterplatine [z. B. Sparkfuns oder Futurlecs ) und arbeitet ab 5 Volt. Wenn Sie mit nur 8 Bit (19,5 mV / Schritt) einverstanden sind, ziehen Sie den TC1320 in Betracht .
Wenn Sie SPI anstelle von I2C verwenden können, sind Ihre Optionen einfacher. MCP4821 und MCP4822 sind Einzel- und Doppel-SPI-DAC-Chips, die in schönen PDIP8-Paketen geliefert werden. Wieder kosten sie ungefähr 2 Dollar von den üblichen Orten (Mauser, Digikey, Mikrochip Direct, Farnell).
Warum nicht die eigentlichen URLs darunter setzen, den Haupttext im Stil von Fußnoten?
Amos
@Amos, da der Formatierer URLs in vielen Formaten gut erkennt und der Filter "Neuer Benutzer" unabhängig von ihrer Formatierung auf Anzahl (Links)> 1 trifft. Ich habe am ersten Tag aus demselben Grund eine ausführliche Antwort verloren (ich habe sie gepostet und die Fehlermeldung nicht gesehen).
Craig Trader
Richtig, ich hatte es nicht bemerkt.
Amos
Es ist ein Digital-Analog-Wandler, kein Analog-Digital-Wandler.
Endolith
Und Sie sollten in der Lage sein, Ihren Beitrag zu bearbeiten und die Links hinzuzufügen, sobald Sie einen gewissen Ruf haben.
Endolith
7
Je nachdem, was Sie fahren, haben Sie mit einem Arduino bereits drei bis sechs Analogausgänge, da Sie mit der AnalogWrite-Funktion das Tastverhältnis der PWM-Pins einstellen können. Die Frequenz beträgt ungefähr 490 Hz, was für LEDs mehr als ausreichend ist (dies hängt wiederum von Ihrer Anwendung ab). Sie können den Wert von 0 bis 255 einstellen, was eine Auflösung von (5V / 256 =) .020V ergibt.
Sie müssen feststellen, ob 490 Hz eine ausreichende Frequenz ist, aber PWM wird verwendet, um die analoge Spannung für viele Anwendungen zu simulieren, und es kann ohne zusätzliche Teile oder Programmierung zu Ihrer passen.
Sie können auch ein Filter (Kondensator-Widerstands-Netzwerk) verwenden, um die Rechteckwelle zu glätten. Sie haben mehr Spielraum bei den Anwendungen, die Sie steuern können, und Passive sind billig, aber je nach Anwendung ist dies möglicherweise nicht einmal erforderlich.
Nur damit Sie wissen, kann ein AVR (der in einem Arduino verwendete Chip) bereits "analoge" Spannungen erzeugen, indem er PWM + einen Kondensator verwendet, um die Wellenform zu glätten (Kondensator wird in einigen Fällen nicht einmal benötigt). Es ist nicht ganz so hoch auflösend wie ein dedizierter DAC-Chip, aber es ist gut genug für viele Anforderungen.
Hier ist ein Wikipedia-Eintrag zu digitalen Potentiometern. Diese digitalen Potis können als analoger Ausgang auf dem Arduino dienen. Es würde als reguläres Potentiometer fungieren, das über alle Spannungen von 0 bis 5 V über serielle (irgendeine Art) Befehle wischt. Wenn Sie kein I2C benötigen, können Sie diesen digitalen Pot von Parralax oder diesen Chip von Jameco verwenden. Die einzigen I2C-Chips, die ich gesehen habe, sind alle oberflächenmontiert anstatt durchgehend, was die Arbeit mit und erschwert. Hier ist der Link zu allen digitalen I2C-Potentiometern von Jameco. Ich hoffe das war hilfreich und viel Glück!
Digitale Potis werden im Allgemeinen verwendet, um die Verstärkung oder Dämpfung eines externen Schaltkreises in wenigen diskreten Schritten einzustellen (256). Um eine Gleichspannung daraus zu ziehen, müssten Sie diese an eine Spannungsquelle anschließen, aber es ist wirklich nicht die Anwendung, für die diese bestimmt sind. Ein DAC hingegen gibt eine Spannung direkt aus und weist im Allgemeinen viel mehr Schritte und eine höhere Genauigkeit auf. Ein DAC ist das, wonach dieses Poster sucht.
Je nachdem, was Sie fahren, haben Sie mit einem Arduino bereits drei bis sechs Analogausgänge, da Sie mit der AnalogWrite-Funktion das Tastverhältnis der PWM-Pins einstellen können. Die Frequenz beträgt ungefähr 490 Hz, was für LEDs mehr als ausreichend ist (dies hängt wiederum von Ihrer Anwendung ab). Sie können den Wert von 0 bis 255 einstellen, was eine Auflösung von (5V / 256 =) .020V ergibt.
Sie müssen feststellen, ob 490 Hz eine ausreichende Frequenz ist, aber PWM wird verwendet, um die analoge Spannung für viele Anwendungen zu simulieren, und es kann ohne zusätzliche Teile oder Programmierung zu Ihrer passen.
Sie können auch ein Filter (Kondensator-Widerstands-Netzwerk) verwenden, um die Rechteckwelle zu glätten. Sie haben mehr Spielraum bei den Anwendungen, die Sie steuern können, und Passive sind billig, aber je nach Anwendung ist dies möglicherweise nicht einmal erforderlich.
http://www.arduino.cc/en/Reference/AnalogWrite
quelle
Sie benötigen einen I2C-basierten Digital-Analog-Wandler (DAC). Bei einer Schnellsuche wurde Folgendes festgestellt:
http://www.sparkfun.com/commerce/product_info.php?products_id=8736
quelle
Nur damit Sie wissen, kann ein AVR (der in einem Arduino verwendete Chip) bereits "analoge" Spannungen erzeugen, indem er PWM + einen Kondensator verwendet, um die Wellenform zu glätten (Kondensator wird in einigen Fällen nicht einmal benötigt). Es ist nicht ganz so hoch auflösend wie ein dedizierter DAC-Chip, aber es ist gut genug für viele Anforderungen.
quelle
Hier ist ein Wikipedia-Eintrag zu digitalen Potentiometern. Diese digitalen Potis können als analoger Ausgang auf dem Arduino dienen. Es würde als reguläres Potentiometer fungieren, das über alle Spannungen von 0 bis 5 V über serielle (irgendeine Art) Befehle wischt. Wenn Sie kein I2C benötigen, können Sie diesen digitalen Pot von Parralax oder diesen Chip von Jameco verwenden. Die einzigen I2C-Chips, die ich gesehen habe, sind alle oberflächenmontiert anstatt durchgehend, was die Arbeit mit und erschwert. Hier ist der Link zu allen digitalen I2C-Potentiometern von Jameco. Ich hoffe das war hilfreich und viel Glück!
quelle