Inhaltsverzeichnis:

Digitales Potentiometer MCP41HVX1 für Arduino - Gunook
Digitales Potentiometer MCP41HVX1 für Arduino - Gunook

Video: Digitales Potentiometer MCP41HVX1 für Arduino - Gunook

Video: Digitales Potentiometer MCP41HVX1 für Arduino - Gunook
Video: This component can control tons of circuits! Digital Potentiometer Guide! EB#51 2024, November
Anonim
MCP41HVX1 Digitales Potentiometer für Arduino
MCP41HVX1 Digitales Potentiometer für Arduino

Die MCP41HVX1-Familie digitaler Potentiometer (auch bekannt als DigiPots) sind Geräte, die die Funktion eines analogen Potentiometers nachahmen und über SPI gesteuert werden. Eine Beispielanwendung wäre, den Lautstärkeregler Ihrer Stereoanlage durch einen DigiPot zu ersetzen, der von einem Arduino gesteuert wird. Dies setzt voraus, dass der Lautstärkeregler Ihrer Stereoanlage ein Potentiometer und kein Drehregler ist.

MCP41HVX1 unterscheiden sich ein wenig von anderen DigiPots, da sie ein Split-Rail-Design haben. Das bedeutet, dass während der DigiPot selbst von der Ausgangsspannung eines Arduino gesteuert werden kann, das Signal, das durch das Widerstandsnetzwerk geleitet wird, mit einem weitaus größeren Spannungsbereich (bis zu 36 Volt) arbeitet. Die meisten DigiPots, die mit 5 Volt gesteuert werden können, sind auf 5 Volt über das Widerstandsnetzwerk begrenzt, was ihre Verwendung zum Nachrüsten einer bestehenden Schaltung einschränkt, die mit höherer Spannung arbeitet, wie sie in einem Auto oder Boot zu finden ist.

Die MCP41HVX1-Familie besteht aus den folgenden Chips:

  • MCP41HV31-104E/ST - 100 kOhm (7 Bit)
  • MCP41HV31-503E/ST - 50 kOhm (7 Bit)
  • MCP41HV31-103E/ST - 10k Ohm (7 Bit)
  • MCP41HV31-502E/ST - 5k Ohm (7 Bit)
  • MCP41HV31-103E/MQ - 10k Ohm (7 Bit)
  • MCP41HV51-104E/ST - 100 kOhm (8 Bit)
  • MCP41HV51-503E/ST - 50 kOhm (8 Bit)
  • MCP41HV51T-503E/ST - 50 kOhm (8 Bit)
  • MCP41HV51-103E/ST - 10k Ohm (8 Bit)
  • MCP41HV51-502E/ST - 5 kOhm (8 Bit)

Die 7-Bit-Chips ermöglichen 128 Schritte im Widerstandsnetzwerk und 8-Bit-Chips ermöglichen 256 Schritte im Widerstandsnetzwerk. Dies bedeutet, dass 8-Bit-Chips doppelt so viele Widerstandswerte vom Potentiometer zulassen.

Lieferungen

  • Wählen Sie den entsprechenden MCP41HVX1-Chip aus der obigen Liste aus. Der von Ihnen gewählte Chip basiert auf dem für Ihre Anwendung erforderlichen Widerstandsbereich. Dieses Instructable basiert auf den TSSOP 14-Paketversionen des Chips, um zusammen mit dieser Anleitung einen beliebigen Chip in der Liste auszuwählen, mit Ausnahme des MCP41HV31-103E / MQ, der ein QFN-Paket ist. Es wird empfohlen, ein paar zusätzliche Chips zu besorgen, da ich auf einen schlechten gestoßen bin und sie kostengünstig sind. Ich habe meine bei Digi-Key bestellt.
  • Sekundäre Gleichstromversorgung von 10 bis 36 Volt. In meinem Beispiel verwende ich ein 17-Volt-Gleichstromnetzteil aus meiner Box mit alten Netzteilen.
  • Lötflussmittel
  • Lötkolben
  • Lot
  • Pinzette und/oder Zahnstocher
  • TSSOP 14 Pin Breakout Board - Amazon - QLOUNI 40pcs PCB Proto Boards SMD zu DIP Adapter Plate Converter TQFP (32 44 48 64 84 100) SOP SSOP TSSOP 8 10 14 16 20 23 24 28 (Sortiment von Größen. Viel verfügbar für mehrere Projekte)
  • Quantifizieren von 2 - 7 Stiftleisten - Amazon - DEPEPE 30 Stück 40 Pin 2,54 mm Stiftleisten für Arduino Prototype Shield - (Zuschneiden erforderlich. Viel im Paket für mehrere Projekte)
  • Arduino Uno - wenn Sie keins haben, würde ich vorschlagen, ein offizielles Board zu besorgen. Ich hatte gemischtes Glück mit den inoffiziellen Versionen. Digi-Key - Arduino Uno
  • Multimeter, das den Widerstand messen und auch auf Durchgang prüfen kann
  • Überbrückungsdrähte
  • Steckbrett
  • Sehr empfehlenswert, aber nicht zwingend erforderlich, ist eine freihändige Lupe, da die TSSOP-Chips sehr klein sind. Zum Löten und Testen mit dem Multimeter benötigen Sie beide Hände. Ich verwende ein Paar Harbour Freight 3x Clip-On Lupen über meiner Korrektionsbrille und eine freistehende / gelenkige Lupe. Andere Optionen sind ein Paar preiswerter Leser aus dem Discounter oder Dollar-Laden. Je nachdem, wie gut (oder schlecht) Ihr Sehvermögen ist, können Sie die Lesegeräte sogar über Ihrer Sehbrille tragen oder zwei Lesegeräte (übereinander) kaufen. Wenn Sie eine Brille verdoppeln, seien Sie vorsichtig, da Ihre Sichtweite sehr eingeschränkt ist. Nehmen Sie sie also ab, bevor Sie etwas anderes tun. Seien Sie auch beim Löten besonders vorsichtig.
  • Ein weiterer Artikel, der nicht erforderlich ist, aber dringend empfohlen wird, sind die Harbor Freight Helping Hands. Es sind Krokodilklemmen, die an einer Metallbasis befestigt sind. Diese sind auch von vielen anderen Anbietern im Internet unter verschiedenen Markennamen erhältlich. Diese sind sehr hilfreich beim Löten des Chips auf die Breakout-Platine.

Schritt 1: Löten des TSSOP-Chips an ein Breakout-Board

Image
Image
Löten des TSSOP-Chips auf ein Breakout-Board
Löten des TSSOP-Chips auf ein Breakout-Board
Löten des TSSOP-Chips auf ein Breakout-Board
Löten des TSSOP-Chips auf ein Breakout-Board

Der TSSOP-Chip muss auf eine Breakout-Platine gelötet werden, damit Sie ihn mit einem Steckbrett oder direkt mit DuPont-Jumpern verwenden können. Für Prototyping-Arbeiten sind sie viel zu klein, um direkt damit zu arbeiten.

Aufgrund ihrer geringen Größe kann das Löten des TSSOP-Chips der schwierigste Teil dieses Projekts sein, aber das Wissen um den Trick macht es zu einer Aufgabe, die jeder bewältigen kann. Es gibt mehrere Techniken, die folgende habe ich gemacht.

Die Strategie besteht darin, das Lot zuerst auf die Leiterbahnen der Breakout-Platine zu fließen.

  • Setzen Sie den Chip nicht auf die Breakout-Platine, bevor Sie dazu aufgefordert werden.
  • Zuerst müssen Sie eine großzügige Menge Flussmittel auf die Breakout-Platine geben.
  • Als nächstes erhitzen Sie mit Ihrem Lötkolben etwas Lötmittel und fließen es auf die Leiterbahnen.
  • Geben Sie etwas mehr Flussmittel auf das Lot, das Sie auf den Spuren sowie auf der Unterseite der Beine des Chips ausgeflossen haben.
  • Legen Sie den Chip auf die Leiterbahnen, wo Sie gerade Lot und Flussmittel platziert haben. Eine Pinzette oder ein Zahnstocher sind gute Werkzeuge, um den Chip präzise zu setzen. Achten Sie darauf, den Chip richtig auszurichten, damit sich alle Pins direkt über den Spuren befinden. Richten Sie Pin eins des Chips mit der Markierung für Pin eins auf der Breakout-Platine aus.
  • Erhitzen Sie mit Ihrem Lötkolben einen der Stifte am Ende des Chips (entweder Stift 1, 7, 8 oder 14) und drücken Sie ihn in die Spur. Das zuvor aufgetragene Lot schmilzt und fließt um den Stift herum.

Sehen Sie sich das Video in diesem Schritt an, um eine Demonstration zum Löten des Chips an die Breakout-Platine zu sehen. Ein Vorschlag, den ich habe, der sich vom Video unterscheidet, besteht darin, dass Sie, nachdem Sie den ersten Pin-Stopp gelötet haben und die Ausrichtung des gesamten Chips erneut überprüfen, um sicherzustellen, dass sich alle Pins noch auf den Spuren befinden. Wenn Sie etwas daneben liegen, ist es an dieser Stelle leicht zu korrigieren. Wenn Sie sich wohl fühlen, sieht alles gut aus, löten Sie einen weiteren Pin am gegenüberliegenden Ende des Chips und überprüfen Sie die Ausrichtung erneut. Wenn das gut aussieht, machen Sie den Rest der Pins.

Nachdem Sie alle Pins gelötet haben, schlägt das Video vor, eine Lupe zu verwenden, um Ihre Verbindungen zu überprüfen. Eine bessere Methode ist die Verwendung eines Multimeters, um den Durchgang zu überprüfen. Sie sollten eine Sonde auf das Bein des Stifts und die andere Sonde auf den Teil der Platine legen, wo Sie den Header löten (siehe das zweite Bild in diesem Schritt). Sie sollten auch die benachbarten Pins überprüfen, um sicherzustellen, dass sie nicht aufgrund von Lötkurzschlüssen mehrerer Pins miteinander verbunden sind. Wenn Sie also beispielsweise Pin 4 überprüfen, überprüfen Sie auch Pin 3 und Pin 5. Pin 4 sollte Durchgang anzeigen, während Pin 3 und Pin 5 einen offenen Stromkreis anzeigen sollten. Die einzige Ausnahme ist, dass der Wischer P0W möglicherweise eine Verbindung zu P0A oder P0B aufweist.

TIPPS:

  • Wie in der Materialliste erwähnt, ist es in diesem Schritt sehr hilfreich, eine Vergrößerung zur Verfügung zu haben, die Ihnen die Hände zum Arbeiten frei lässt.
  • Mit der Krokodilklemme, die den Händen hilft, die Breakout-Platine zu halten, wird das Löten etwas einfacher.
  • Schreiben Sie die Chipnummer auf ein Stück Kreppband und kleben Sie es auf die Unterseite des Breakout-Boards (siehe drittes Bild in diesem Abschnitt). Wenn Sie in Zukunft den Chip identifizieren müssen, ist es viel einfacher, das Abdeckband abzulesen. Meine persönliche Erfahrung ist, dass ich ein wenig Flussmittel auf dem Chip hatte und die Nummer vollständig abging, sodass ich nur noch das Band habe.

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung

Sie müssen den Arduino und den Digipot wie im Schaltplan gezeigt anschließen. Die verwendeten Pins basieren auf dem Layout eines Arduino Uno. Wenn Sie ein anderes Arduino verwenden, lesen Sie den letzten Schritt.

Schritt 3: Abrufen der Arduino-Bibliothek zur Steuerung des DigiPot

Abrufen der Arduino-Bibliothek zur Steuerung des DigiPot
Abrufen der Arduino-Bibliothek zur Steuerung des DigiPot

Um die Programmierung zu vereinfachen, habe ich eine Bibliothek erstellt, die auf Github verfügbar ist. Gehen Sie zu github.com/gregsrabian/MCP41HVX1, um die MCP41HVX1-Bibliothek zu erhalten. Wählen Sie die Schaltfläche "Klonen" und dann "Zip herunterladen". Stellen Sie sicher, dass Sie die Zip-Datei an einem Ort speichern, an dem Sie wissen, wo sie sich befindet. Der Desktop oder der Download-Ordner sind praktische Speicherorte. Sobald Sie es in die Arduino IDE importiert haben, können Sie es aus dem Download-Speicherort löschen.

Schritt 4: Importieren der neuen Bibliothek in die Arduino IDE

Importieren der neuen Bibliothek in die Arduino IDE
Importieren der neuen Bibliothek in die Arduino IDE

Gehen Sie in der Arduino IDE zu "Skizze", wählen Sie dann "Bibliothek einschließen" und dann "ZIP-Bibliothek hinzufügen…". Ein neues Dialogfeld wird angezeigt, in dem Sie die. ZIP-Datei auswählen können, die Sie von GitHub heruntergeladen haben.

Schritt 5: Bibliotheksbeispiele

Bibliotheksbeispiele
Bibliotheksbeispiele

Nachdem Sie die neue Bibliothek hinzugefügt haben, werden Sie feststellen, dass Sie unter "Datei", dann "Beispiele" und dann "Beispiele aus benutzerdefinierten Bibliotheken" einen Eintrag für MCP41HVX1 in der Liste sehen. Wenn Sie mit der Maus über diesen Eintrag fahren, sehen Sie WLAT, Wiper Control und SHDN, die Beispielskizzen sind. In diesem Instructable werden wir das Wiper Control-Beispiel verwenden.

Schritt 6: Untersuchen des Quellcodes

#include "MCP41HVX1.h" // Definiere die auf dem Arduino verwendeten Pins#define WLAT_PIN 8 // Wenn auf Low gesetzt "transfer and use"#define SHDN_PIN 9 // Setze High, um das Widerstandsnetzwerk zu aktivieren#define CS_PIN 10 // Auf niedrig setzen, um Chip für SPI auszuwählen // Definieren Sie einige Werte, die für die Testanwendung verwendet werden#define FORWARD true#define REVERSE false#define MAX_WIPER_VALUE 255 // Maximaler Wiper-Wert MCP41HVX1 Digipot(CS_PIN, SHDN_PIN, WLAT_PIN);void setup (){ Serial.begin (9600); Serial.print ("Startposition = "); Serial.println (Digipot. WiperGetPosition ()); // Anfangswert anzeigen Serial.print ("Set Wiper Position = "); Serial.println (Digipot. WiperSetPosition (0)); // Wischerposition auf 0 setzen} void loop () {static bool bDirection = FORWARD; int nWiper = Digipot. WiperGetPosition(); // Aktuelle Wischerposition abrufen // Richtung bestimmen. if(MAX_WIPER_VALUE == nWiper) { bDirection = REVERSE; aufrechtzuerhalten. Sonst if (0 == nWiper) { bDirection = FORWARD; } // Bewegen Sie den Digipot-Wischer if (FORWARD == bDirection) { nWiper = Digipot. WiperIncrement (); // Die Richtung ist vorwärts Serial.print ("Increment - "); aufrechtzuerhalten. Sonst { nWiper = Digipot. WiperDecrement(); // Die Richtung ist rückwärts Serial.print ("Decrement - "); } Serial.print ("Wischerposition = "); Serial.println (nWiper); Verzögerung(100);}

Schritt 7: Den Quellcode verstehen und die Skizze ausführen

Image
Image

Dieser Quellcode ist in der Arduino IDE verfügbar, indem Sie zum Menü Beispiele gehen und MCP41HVX1 suchen, das Sie gerade installiert haben (siehe vorheriger Schritt). Öffnen Sie im MCP41HVX1 das Beispiel "Wiper Control". Es ist am besten, den Code, der in der Bibliothek enthalten ist, zu verwenden, als ob es irgendwelche Fehlerbehebungen gäbe, die aktualisiert würden.

Das Wiper Control-Beispiel demonstriert die folgenden APIs aus der MCP41HVX1-Bibliothek:

  • Konstruktor MCP41HVX1(int nCSPin, int nSHDNPin, int nWLATPin)
  • WiperGetPosition()
  • WiperSetPosition(Byte byWiper)
  • WischerInkrement()
  • WischerDekrement()

Stellen Sie im Beispielquellcode sicher, dass MAX_WIPER_VALUE auf 127 gesetzt ist, wenn Sie einen 7-Bit-Chip verwenden. Der Standardwert ist 255, was für 8-Bit-Chips gilt. Wenn Sie Änderungen am Beispiel vornehmen, zwingt Sie die Arduino IDE, einen neuen Namen für das Projekt zu wählen, da Sie den Beispielcode nicht aktualisieren können. Dies ist ein erwartetes Verhalten.

Jedes Mal durch die Schleife wird der Wischer um einen Schritt erhöht oder um einen Schritt verringert, abhängig von der Richtung, in die er fährt. Wenn die Richtung oben ist und es den MAX_WIPER_VALUE erreicht, wird die Richtung umgekehrt. Wenn es 0 erreicht, wird es wieder umgekehrt.

Während die Skizze ausgeführt wird, wird der serielle Monitor mit der aktuellen Wischerposition aktualisiert.

Um die Widerstandsänderung zu sehen, müssen Sie ein Multimeter-Set verwenden, um Ohm abzulesen. Setzen Sie die Messfühler auf P0B (Pin 11) und P0W (Pin 12) am Digipot, um die Widerstandsänderung während der Ausführung der Anwendung zu sehen. Beachten Sie, dass der Widerstandswert nicht ganz auf Null sinkt, da ein gewisser Innenwiderstand im Chip vorhanden ist, sondern nahe 0 Ohm. Es wird höchstwahrscheinlich auch nicht den maximalen Wert erreichen, aber nahe sein.

Wenn Sie sich das Video ansehen, können Sie sehen, dass das Multimeter den Widerstand erhöht, bis er den Maximalwert erreicht und dann abnimmt. Der im Video verwendete Chip ist der MCP41HV51-104E/ST, ein 8-Bit-Chip mit einem maximalen Wert von 100 kOhm.

Schritt 8: Fehlerbehebung

Wenn die Dinge nicht wie erwartet funktionieren, sind hier ein paar Dinge zu beachten.

  • Überprüfen Sie Ihre Verkabelung. Alles muss richtig angeschlossen sein. Stellen Sie sicher, dass Sie den vollständigen Schaltplan verwenden, wie in dieser Anleitung angegeben. Es gibt alternative Schaltpläne in der README-, Bibliotheksquellcode und unten in diesem Instructable, aber bleiben Sie bei dem, was oben im Verdrahtungsschritt oben dokumentiert ist.
  • Stellen Sie sicher, dass jeder Pin Ihres Digipots mit der Breakout-Platine verlötet ist. Die visuelle Inspektion ist nicht gut genug. Stellen Sie sicher, dass Sie die Durchgangsfunktion Ihres Multimeters verwenden, um sicherzustellen, dass alle Pins des Digipots elektrisch mit der Breakout-Platine verbunden sind und es keine Querverbindung von Lötstiften gibt, die möglicherweise über Leiterbahnen gebrückt sind.
  • Wenn der serielle Monitor anzeigt, dass sich die Wischerposition beim Ausführen der Skizze ändert, sich jedoch der Widerstandswert nicht ändert, ist dies ein Hinweis darauf, dass WLAT oder SHDN keine ordnungsgemäße Verbindung zur Breakout-Platine oder den Jumper-Wischern für WLAT oder SHDN herstellt sind nicht richtig mit dem Arduino verbunden.
  • Stellen Sie sicher, dass Sie ein sekundäres Netzteil mit Gleichstrom zwischen 10 und 36 Volt verwenden.
  • Stellen Sie sicher, dass das 10 bis 36 Volt Netzteil funktioniert, indem Sie die Spannung mit Ihrem Multimeter messen.
  • Versuchen Sie es mit der Originalskizze. Wenn Sie Änderungen vorgenommen haben, ist möglicherweise ein Fehler aufgetreten.
  • Wenn keiner der Schritte zur Fehlerbehebung geholfen hat, versuchen Sie es mit einem anderen Digipot-Chip. Hoffentlich haben Sie mehrere gekauft und sie gleichzeitig an ein TSSOP-Breakout-Board gelötet, also sollte es nur darum gehen, eines gegen das andere auszutauschen. Ich hatte einen schlechten Chip, der mich ziemlich frustriert hat und das war die Lösung.

Schritt 9: Interna & zusätzliche Informationen

Alternativer Schaltplan
Alternativer Schaltplan

Weitere Informationen:

Weitere Informationen finden Sie im Datenblatt MCP41HVX1.

Die vollständige Dokumentation zur gesamten MCP41HVX1-Bibliothek ist in der Datei README.md verfügbar, die Teil des Bibliotheksdownloads ist. Diese Datei wird in Markdown geschrieben und kann mit der richtigen Formatierung in Github (siehe unten auf der Seite) oder mit einem Markdown-Viewer\Editor angezeigt werden.

Kommunikation zwischen Arduino und dem DigiPot:

Der Arduino kommuniziert mit dem DigiPot über SPI. Nachdem die Bibliothek einen Wischerpositionsbefehl wie WiperIncrement, WiperDecrement oder WiperSetPosition gesendet hat, ruft sie WiperGetPosition auf, um die Wischerposition vom Chip abzurufen. Der von diesen Wischerbefehlen zurückgegebene Wert ist die Position des Wischers, wie sie der Chip sieht, und kann verwendet werden, um zu überprüfen, ob sich der Wischer an die erwartete Position bewegt hat.

Erweiterte Funktionalität (WLAT & SHDN)

Diese erweiterten Funktionen werden im Beispiel "Wischersteuerung" nicht demonstriert. In der Bibliothek stehen APIs zur Steuerung von WLAT & SHDN zur Verfügung. Es gibt auch WLAT- und SHDN-Beispielskizzen (an derselben Stelle wie die Wiper Control-Skizze) mit der Bibliothek.

SHDN (Herunterfahren)

SHDN wird verwendet, um das Widerstandsnetzwerk zu deaktivieren oder zu aktivieren. Das Einstellen von SHDN auf Low deaktiviert und High aktiviert das Widerstandsnetzwerk. Wenn das Widerstandsnetzwerk deaktiviert ist, wird P0A (DigiPot-Pin 13) getrennt und P0B (DigiPot-Pin 11) mit P0W (DigiPot-Pin 12) verbunden. Es gibt einen kleinen Widerstand zwischen P0B und P0W, sodass Ihr Messgerät keine 0 Ohm anzeigt.

Wenn Ihre Anwendung SHDN nicht steuern muss, können Sie es direkt mit HIGH verbinden (siehe alternatives Anschlussdiagramm). Sie müssen den richtigen Konstruktor verwenden oder MCP41HVX1_PIN_NOT_CONFIGURED an den Konstruktor übergeben, um anzugeben, dass SHDN fest verdrahtet ist. Es ist wichtig zu beachten, dass Sie, wenn Sie dem Beispiel folgen, den vollständigen Schaltplan verwenden müssen (siehe Verdrahtungsschritt oben).

WLAT (Latch schreiben)

Die interne Architektur besteht aus zwei Komponenten auf einem einzigen Chip. Eine der Komponenten ist die SDI-Schnittstelle und das Register zum Halten des Wischerwerts. Die andere Komponente ist das Widerstandsnetzwerk selbst. WLAT verbindet beide internen Komponenten miteinander.

Wenn WLAT auf LOW gesetzt ist, werden alle Befehlsinformationen zur eingestellten Wischerposition direkt an das Widerstandsnetzwerk weitergeleitet und die Wischerposition wird aktualisiert.

Wenn WLAT auf HIGH gesetzt ist, werden die über SPI übermittelten Wischerpositionsinformationen in einem internen Register gehalten, aber nicht an das Widerstandsnetzwerk weitergegeben und daher wird die Wischerposition nicht aktualisiert. Sobald WLAT auf LOW gesetzt ist, wird der Wert vom Register an das Widerstandsnetzwerk übertragen.

WLAT ist nützlich, wenn Sie mehrere Digipots verwenden, die Sie synchron halten müssen. Die Strategie besteht darin, WLAT auf allen Digipots auf HIGH zu setzen und dann den Wiper-Wert auf allen Chips einzustellen. Nachdem der Wischerwert an alle Digipots gesendet wurde, kann WLAT an allen Geräten gleichzeitig auf LOW gesetzt werden, damit alle die Wischer gleichzeitig bewegen.

Wenn Sie nur einen DigiPot steuern oder mehrere haben, diese aber nicht synchron gehalten werden müssen, benötigen Sie diese Funktionalität höchstwahrscheinlich nicht und können daher WLAT direkt auf LOW schalten (siehe alternatives Schaltbild). Sie müssen den richtigen Konstruktor verwenden oder MCP41HVX1_PIN_NOT_CONFIGURED an den Konstruktor übergeben, um anzugeben, dass WLAT fest verdrahtet ist. Es ist wichtig zu beachten, dass Sie, wenn Sie dem Beispiel folgen, den vollständigen Verdrahtungsplan verwenden müssen (siehe Verdrahtungsschritt oben).

Schritt 10: Alternativer Schaltplan

Verdrahtung

Sie haben die Möglichkeit, WLAT vom Digpot direkt an LOW\GND anzuschließen, anstatt an einen digitalen Pin anzuschließen. Wenn Sie dies tun, können Sie WLAT nicht kontrollieren. Sie haben auch die Möglichkeit, SHDN anstelle eines digitalen Pins direkt mit HIGH zu verbinden. Wenn Sie dies tun, können Sie SHDN nicht steuern.

WLAT und SHDN sind unabhängig voneinander, sodass Sie eines fest verdrahten und das andere mit einem digitalen Pin verbinden, beide fest verdrahten oder beide mit digitalen Pins verbinden können, damit sie gesteuert werden können. Beziehen Sie sich auf den alternativen Verdrahtungsplan für diejenigen, die Sie fest verdrahten möchten, und beziehen Sie sich auf den Hauptverdrahtungsplan in Schritt 2 für die Verdrahtung zu steuerbaren digitalen Pins.

Konstrukteure

Es gibt drei Konstruktoren in der Klasse MCP41HVX. Wir werden zwei davon diskutieren. Sie sind alle in der Datei README.md dokumentiert. Wenn Sie sich also für den dritten Konstruktor interessieren, lesen Sie bitte die Dokumentation.

  • MCP41HVX1(int nCSPin) - Verwenden Sie diesen Konstruktor nur, wenn sowohl WLAT als auch SHDN fest verdrahtet sind.
  • MCP41HVX1(int nCSPin, int nSHDNPin, int nWLATPin) – Verwenden Sie diesen Konstruktor, wenn entweder WLAT oder SHDN fest verdrahtet sind. Übergeben Sie die Konstante MCP41HVX1_PIN_NOT_CONFIGURED, wenn der Pin fest verdrahtet ist, oder die Pinnummer, wenn er mit einem digitalen Pin verbunden ist.

nCSPin muss mit einem digitalen Pin verbunden werden. Es ist ungültig, MCP41HVX1_PIN_NOT_CONFIGURED an den Konstruktor für nCSPin zu übergeben.

Was ist, wenn ich kein Arduino Uno verwende?

Der Arduino verwendet SPI, um mit dem Digipot zu kommunizieren. Die SPI-Pins sind spezifische Pins auf der Arduino-Platine. Die SPI-Pins des Uno sind:

  • SCK - Pin 13 am Uno verbunden mit Pin 2 am Digipot
  • MOSI - Pin 11 am Uno verbunden mit Pin 4 am Digipot
  • MISO - Pin 12 am Uno verbunden mit Pin 5 am Digipot

Wenn Sie ein Arduino verwenden, das kein Uno ist, müssen Sie herausfinden, welcher Pin SCK, MOSI und MISO ist und diese mit dem Digipot verbinden.

Die anderen in der Skizze verwendeten Pins sind normale digitale Pins, sodass jeder digitale Pin funktioniert. Sie müssen die Skizze ändern, um die Pins anzugeben, die Sie auf der von Ihnen verwendeten Arduino-Platine auswählen. Die regulären digitalen Pins sind:

  • CS - Pin 10 am Uno mit Pin 3 am Digipot verbunden (CS_PIN in der Skizze mit neuem Wert aktualisieren)
  • WLAT - Pin 8 am Uno verbunden mit Pin 6 am Digipot (aktualisiere WLAT_PIN in der Skizze mit neuem Wert)
  • SHDN - Pin 9 am Uno verbunden mit Pin 7 am Digipot (SHDN_PIN in der Skizze mit neuem Wert aktualisieren)

Empfohlen: