Πίνακας περιεχομένων:

MCP41HVX1 Digitalηφιακό ποτενσιόμετρο για Arduino: 10 βήματα (με εικόνες)
MCP41HVX1 Digitalηφιακό ποτενσιόμετρο για Arduino: 10 βήματα (με εικόνες)

Βίντεο: MCP41HVX1 Digitalηφιακό ποτενσιόμετρο για Arduino: 10 βήματα (με εικόνες)

Βίντεο: MCP41HVX1 Digitalηφιακό ποτενσιόμετρο για Arduino: 10 βήματα (με εικόνες)
Βίντεο: Show Wiper Control Arduino sketch running while controlling an MCP41HV51-104E/ST digipot. 2024, Νοέμβριος
Anonim
Digitalηφιακό ποτενσιόμετρο MCP41HVX1 για Arduino
Digitalηφιακό ποτενσιόμετρο MCP41HVX1 για Arduino

Η οικογένεια ψηφιακών ποτενσιόμετρων MCP41HVX1 (γνωστή και ως DigiPots) είναι συσκευές που μιμούνται τη λειτουργία ενός αναλογικού ποτενσιόμετρου και ελέγχονται μέσω SPI. Ένα παράδειγμα εφαρμογής θα ήταν η αντικατάσταση του κουμπιού έντασης στο στερεοφωνικό σας με ένα DigiPot που ελέγχεται από ένα Arduino. Αυτό προϋποθέτει ότι ο έλεγχος έντασης στο στερεοφωνικό σας είναι ποτενσιόμετρο και όχι περιστροφικός κωδικοποιητής.

Τα MCP41HVX1 είναι λίγο διαφορετικά από τα άλλα DigiPots στο ότι έχουν σχεδιασμό με σπαστή ράγα. Αυτό σημαίνει ότι ενώ το ίδιο το DigiPot μπορεί να ελεγχθεί από την τάση εξόδου ενός Arduino, το σήμα που διέρχεται μέσω του δικτύου αντιστάσεων λειτουργεί με πολύ μεγαλύτερο εύρος τάσης (έως 36 βολτ). Τα περισσότερα DigiPots που μπορούν να ελεγχθούν με 5 βολτ περιορίζονται στα 5 βολτ σε όλο το δίκτυο αντιστάσεων, γεγονός που περιορίζει τη χρήση τους για εκ των υστέρων τοποθέτηση ενός υπάρχοντος κυκλώματος που λειτουργεί σε υψηλότερη τάση, όπως αυτό που θα βρείτε σε αυτοκίνητο ή σκάφος.

Η οικογένεια MCP41HVX1 αποτελείται από τα ακόλουθα τσιπ:

  • MCP41HV31-104E/ST - 100k ohm (7 bits)
  • MCP41HV31-503E/ST - 50k ohm (7 bit)
  • MCP41HV31-103E/ST - 10k ohm (7 bits)
  • MCP41HV31-502E/ST - 5k ohm (7 bits)
  • MCP41HV31-103E/MQ - 10k ohm (7 bit)
  • MCP41HV51-104E/ST - 100k ohm (8 bit)
  • MCP41HV51-503E/ST - 50k ohm (8 bit)
  • MCP41HV51T -503E/ST - 50k ohm (8 bit)
  • MCP41HV51-103E/ST - 10k ohm (8 bit)
  • MCP41HV51-502E/ST - 5k ohm (8 bit)

Τα τσιπ 7 bit επιτρέπουν 128 βήματα στο δίκτυο αντιστάσεων και τα τσιπ 8 bit επιτρέπουν 256 βήματα στο δίκτυο αντιστάσεων. Αυτό σημαίνει ότι τα τσιπ 8 bit επιτρέπουν διπλάσιες τιμές αντίστασης από το ποτενσιόμετρο.

Προμήθειες

  • Επιλέξτε το κατάλληλο τσιπ MCP41HVX1 από την παραπάνω λίστα. Το τσιπ που επιλέγετε βασίζεται στο εύρος αντίστασης που απαιτείται για την εφαρμογή σας. Αυτό το Instructable βασίζεται στις εκδόσεις πακέτων TSSOP 14 του τσιπ, ώστε να ακολουθήσετε μαζί με αυτόν τον οδηγό επιλέξτε οποιοδήποτε τσιπ στη λίστα εκτός από το MCP41HV31-103E/MQ που είναι ένα πακέτο QFN. Συνιστάται να πάρετε μερικές επιπλέον μάρκες καθώς συνάντησα μια κακή και είναι φθηνές. Παρήγγειλα το δικό μου από το Digi-Key.
  • Δευτερεύον τροφοδοτικό DC που είναι από 10 έως 36 βολτ. Στο παράδειγμά μου χρησιμοποιώ τροφοδοτικό DC 17 wol DC από το κουτί με τα παλιά τροφοδοτικά.
  • Ροή συγκόλλησης
  • Συγκολλητικό σίδερο
  • Κόλλα μετάλλων
  • Τσιμπιδάκια και / ή οδοντογλυφίδα
  • TSSOP 14 pin breakout board - Amazon - QLOUNI 40pcs PCB Proto Boards SMD to DIP Adapter Plate Converter TQFP (32 44 48 64 84 100) SOP SSOP TSSOP 8 10 14 16 20 23 24 28 (ποικιλία μεγεθών. Άφθονο διαθέσιμο για πολλά έργα)
  • Ποσοτικός αριθμός κεφαλίδων 2 - 7 ακίδων - Amazon - DEPEPE 30 Pcs 40 Pin 2.54mm Αρσενικές και θηλυκές κεφαλίδες καρφιτσών για Arduino Prototype Shield - (Απαιτείται κοπή στο μέγεθος. Πολλές συσκευασίες για πολλά έργα)
  • Arduino Uno - αν δεν έχετε, θα σας πρότεινα να πάρετε έναν επίσημο πίνακα. Είχα ανάμεικτη τύχη με τις ανεπίσημες εκδόσεις. Digi -Key - Arduino Uno
  • Πολύμετρο που μπορεί να μετρήσει την αντίσταση και επίσης να ελέγξει τη συνέχεια
  • Καλώδια βραχυκυκλωτήρων
  • Breadboard
  • Συνιστάται ανεπιφύλακτα αλλά δεν είναι απολύτως απαραίτητο ένας μεγεθυντικός φακός hands -free καθώς τα τσιπ TSSOP είναι πολύ μικρά. Θα χρειαστείτε και τα δύο χέρια για συγκόλληση και δοκιμή με το πολύμετρο. Χρησιμοποιώ ένα ζευγάρι Harbor Freight 3x Clip-On Magnifiers πάνω από τα συντακτικά γυαλιά μου και έναν ελεύθερο όρθιο / αρθρωτό μεγεθυντικό φακό. Άλλες επιλογές είναι ένα ζευγάρι φθηνών αναγνωστών από το κατάστημα έκπτωσης ή δολαρίου. Μπορείτε ακόμη να φορέσετε τους αναγνώστες πάνω από τα γυαλιά συνταγής σας ή να πάρετε δύο ζεύγη αναγνωστών (το ένα από το άλλο) ανάλογα με το πόσο καλή (ή κακή) είναι η όρασή σας. Εάν διπλασιάζετε τα γυαλιά, προσέξτε καθώς το εύρος της όρασής σας θα είναι πολύ περιορισμένο, οπότε φροντίστε να τα βγάλετε πριν κάνετε οτιδήποτε άλλο. Επίσης να είστε ιδιαίτερα προσεκτικοί κατά τη συγκόλληση.
  • Ένα άλλο στοιχείο που δεν απαιτείται αλλά συνιστάται ιδιαίτερα είναι το Harbor Freight Helping Hands. Είναι συνδετήρες αλιγάτορα προσαρτημένοι σε μεταλλική βάση. Αυτά είναι διαθέσιμα από πολλούς άλλους προμηθευτές στο Διαδίκτυο, καθώς και με διαφορετικά εμπορικά σήματα. Αυτά είναι πολύ χρήσιμα κατά τη συγκόλληση του τσιπ στον πίνακα ανάρτησης.

Βήμα 1: Συγκόλληση του τσιπ TSSOP σε πίνακα Breakout

Image
Image
Συγκόλληση του τσιπ TSSOP σε πίνακα Breakout
Συγκόλληση του τσιπ TSSOP σε πίνακα Breakout
Συγκόλληση του τσιπ TSSOP σε πίνακα Breakout
Συγκόλληση του τσιπ TSSOP σε πίνακα Breakout

Το τσιπ TSSOP πρέπει να συγκολληθεί σε έναν πίνακα ξεμπλοκαρίσματος, ώστε να μπορείτε να το χρησιμοποιήσετε με ένα breadboard ή απευθείας με άλτες DuPont. Για τη δημιουργία πρωτοτύπων είναι πολύ μικρά για να δουλέψουν άμεσα.

Λόγω του μικρού μεγέθους τους, η συγκόλληση του τσιπ TSSOP μπορεί να είναι το πιο δύσκολο μέρος αυτού του έργου, αλλά η γνώση του κόλπου για να το κάνει αυτό καθιστά ένα έργο που μπορεί να ολοκληρώσει ο καθένας. Υπάρχουν διάφορες τεχνικές, η παρακάτω είναι αυτή που έκανα.

Η στρατηγική είναι να περάσετε πρώτα τη συγκόλληση στα ίχνη της σανίδας διαρροής.

  • Μην βάζετε το τσιπ επάνω στον πίνακα ανάρτησης μέχρι να λάβετε οδηγίες.
  • Το πρώτο πράγμα που πρέπει να κάνετε είναι να βάλετε μια γενναιόδωρη ποσότητα ροής στον πίνακα ξεμπλοκαρίσματος.
  • Στη συνέχεια, χρησιμοποιώντας το κολλητήρι σας θερμαίνετε λίγη συγκόλληση και ρίξτε το στα ίχνη.
  • Βάλτε λίγο ακόμη ροή πάνω από τη συγκόλληση που ξεχύθηκε στα ίχνη καθώς και στο κάτω μέρος των ποδιών του τσιπ.
  • Τοποθετήστε το τσιπ πάνω από τα ίχνη όπου μόλις τοποθετήσατε τη συγκόλληση και τη ροή. Λαβίδες ή μια οδοντογλυφίδα δημιουργούν καλά εργαλεία για τη σωστή ρύθμιση του τσιπ στη θέση του. Βεβαιωθείτε ότι έχετε ευθυγραμμίσει σωστά το τσιπ έτσι ώστε όλες οι ακίδες να βρίσκονται ακριβώς πάνω από τα ίχνη. Ευθυγραμμίστε τον πείρο ένα του τσιπ με τη σήμανση για τον πείρο ένα στον πίνακα διακοπής.
  • Χρησιμοποιώντας το κολλητήρι σας θερμαίνετε μία από τις ακίδες στο άκρο του τσιπ (είτε καρφίτσα 1, 7, 8 ή 14) πιέζοντάς το στο ίχνος. Η συγκόλληση που εφαρμόσατε προηγουμένως θα λιώσει και θα ρέει γύρω από τον πείρο.

Παρακολουθήστε το βίντεο σε αυτό το βήμα για να δείτε μια επίδειξη για το πώς να κολλήσετε το τσιπ στο ξεμπλοκάρισμα. Μια πρόταση που έχω είναι διαφορετική από το βίντεο είναι ότι αφού κολλήσετε το πρώτο pin pin και ελέγξτε ξανά την ευθυγράμμιση ολόκληρου του τσιπ για να βεβαιωθείτε ότι όλες οι καρφίτσες είναι ακόμα πάνω από τα ίχνη. Εάν είστε λίγο εκτός λειτουργίας, είναι εύκολο να διορθωθεί σε αυτό το σημείο. Μόλις αισθανθείτε άνετα, όλα φαίνονται καλά, κολλήστε μια άλλη καρφίτσα στο αντίθετο άκρο του τσιπ και ελέγξτε ξανά την ευθυγράμμιση. Αν αυτό φαίνεται καλό, προχωρήστε και κάντε τις υπόλοιπες καρφίτσες.

Αφού συγκολλήσετε όλες τις καρφίτσες, το βίντεο προτείνει να χρησιμοποιήσετε μεγεθυντικό φακό για να επαληθεύσετε τις συνδέσεις σας. Μια καλύτερη μέθοδος είναι να χρησιμοποιήσετε ένα πολύμετρο για να ελέγξετε τη συνέχεια. Θα πρέπει να τοποθετήσετε τον έναν αισθητήρα στο πόδι του πείρου και τον άλλο ανιχνευτή στο τμήμα του πίνακα όπου θα κολλήσετε την κεφαλίδα (δείτε τη δεύτερη εικόνα σε αυτό το βήμα). Θα πρέπει επίσης να ελέγξετε τις παρακείμενες ακίδες για να βεβαιωθείτε ότι δεν είναι συνδεδεμένες λόγω βραχυκυκλώματος συγκόλλησης αρκετών πείρων μαζί. Έτσι, για παράδειγμα, εάν επαληθεύετε τον πείρο 4, ελέγξτε επίσης τον πείρο 3 και τον πείρο 5. Ο πείρος 4 πρέπει να δείχνει συνέχεια, ενώ ο ακροδέκτης 3 και ο πείρος 5 πρέπει να δείχνουν ένα ανοιχτό κύκλωμα. Η μόνη εξαίρεση είναι ότι ο υαλοκαθαριστήρας P0W μπορεί να εμφανίζει συνδεσιμότητα με P0A ή P0B.

ΣΥΜΒΟΥΛΕΣ:

  • Όπως αναφέρθηκε στη λίστα υλικών, διαθέτοντας κάποια μεγέθυνση που αφήνει τα χέρια σας ελεύθερα να εργαστούν, θα σας βοηθήσει πολύ σε αυτό το βήμα.
  • Χρησιμοποιώντας το κλιπ αλιγάτορα που βοηθά τα χέρια να κρατήσουν την σανίδα ξεμπλοκαρίσματος κάνει τη συγκόλληση των πάντων λίγο πιο εύκολη.
  • Γράψτε τον αριθμό τσιπ σε ένα κομμάτι ταινίας κάλυψης και κολλήστε στο κάτω μέρος του πίνακα (δείτε την τρίτη εικόνα σε αυτήν την ενότητα). Εάν στο μέλλον χρειαστεί να προσδιορίσετε το τσιπ, θα είναι πολύ πιο εύκολο να διαβάσετε την ταινία κάλυψης. Η προσωπική μου εμπειρία είναι ότι πήρα μια μικρή ροή στο τσιπ και ο αριθμός βγήκε εντελώς, οπότε το μόνο που έχω είναι η κασέτα.

Βήμα 2: Καλωδίωση

Καλωδίωση
Καλωδίωση

Θα χρειαστεί να συνδέσετε το Arduino και το Digipot όπως φαίνεται στο διάγραμμα καλωδίωσης. Οι καρφίτσες που χρησιμοποιούνται βασίζονται στη διάταξη ενός Arduino Uno. Εάν χρησιμοποιείτε διαφορετικό Arduino, δείτε το τελευταίο βήμα.

Βήμα 3: Λήψη της βιβλιοθήκης Arduino για τον έλεγχο του DigiPot

Λήψη της βιβλιοθήκης Arduino για τον έλεγχο του DigiPot
Λήψη της βιβλιοθήκης Arduino για τον έλεγχο του DigiPot

Για να απλοποιήσω τον προγραμματισμό, έχω δημιουργήσει μια βιβλιοθήκη που είναι διαθέσιμη στο Github. Μεταβείτε στη διεύθυνση github.com/gregsrabian/MCP41HVX1 για να λάβετε τη βιβλιοθήκη MCP41HVX1. Θα θέλετε να επιλέξετε το κουμπί "Κλώνος" και στη συνέχεια να επιλέξετε "Λήψη φερμουάρ". Βεβαιωθείτε ότι έχετε αποθηκεύσει το αρχείο Zip σε μια τοποθεσία στην οποία γνωρίζετε πού βρίσκεται. Η επιφάνεια εργασίας ή ο φάκελος λήψεων είναι εύχρηστες τοποθεσίες. Μόλις το εισαγάγετε στο Arduino IDE, μπορείτε να το διαγράψετε από τη θέση λήψης.

Βήμα 4: Εισαγωγή της νέας βιβλιοθήκης στο Arduino IDE

Εισαγωγή της νέας βιβλιοθήκης στο Arduino IDE
Εισαγωγή της νέας βιβλιοθήκης στο Arduino IDE

Μέσα στο Arduino IDE μεταβείτε στο "Sketch", στη συνέχεια επιλέξτε "Include Library" και μετά επιλέξτε "Add ZIP Library..". Θα εμφανιστεί ένα νέο παράθυρο διαλόγου που σας επιτρέπει να επιλέξετε το αρχείο. ZIP που κατεβάσατε από το GitHub.

Βήμα 5: Παραδείγματα βιβλιοθήκης

Παραδείγματα Βιβλιοθήκης
Παραδείγματα Βιβλιοθήκης

Αφού προσθέσετε τη νέα βιβλιοθήκη, θα παρατηρήσετε ότι εάν μεταβείτε στο "Αρχείο", στη συνέχεια επιλέξτε "Παραδείγματα" και, στη συνέχεια, επιλέξτε "Παραδείγματα από προσαρμοσμένες βιβλιοθήκες", θα δείτε τώρα μια καταχώριση για το MCP41HVX1 στη λίστα. Εάν τοποθετήσετε το δείκτη του ποντικιού πάνω από αυτήν την καταχώριση, θα δείτε τα WLAT, Wiper Control και SHDN που είναι παραδείγματα σκίτσων. Σε αυτό το Instructable θα χρησιμοποιήσουμε το παράδειγμα του Wiper Control.

Βήμα 6: Εξέταση του πηγαίου κώδικα

#include "MCP41HVX1.h" // Ορίστε τις καρφίτσες που χρησιμοποιούνται στο Arduino#καθορίστε το WLAT_PIN 8 // Αν οριστεί σε χαμηλό "μεταφέρετε και χρησιμοποιήστε" #define SHDN_PIN 9 // Ρυθμίστε ψηλά για να ενεργοποιήσετε το δίκτυο αντιστάσεων#ορίστε CS_PIN 10 // Ρυθμίστε χαμηλά για να επιλέξετε τσιπ για SPI // Ορίστε ορισμένες τιμές που χρησιμοποιούνται για τη δοκιμαστική εφαρμογή#define FORWARD true#define REVERSE false#define MAX_WIPER_VALUE 255 // Μέγιστη τιμή υαλοκαθαριστήρα MCP41HVX1 Digipot (CS_PIN, SHDN_PIN, WLAT_PIN); void setup () { Serial.begin (9600); Serial.print ("Θέση εκκίνησης ="); Serial.println (Digipot. WiperGetPosition ()); // Εμφάνιση αρχικής τιμής Serial.print ("Set Wiper Position ="); Serial.println (Digipot. WiperSetPosition (0)); // Ορίστε τη θέση του υαλοκαθαριστήρα σε 0} void loop () {static bool bDirection = FORWARD; int nWiper = Digipot. WiperGetPosition (); // Λάβετε την τρέχουσα θέση του υαλοκαθαριστήρα // Καθορίστε την κατεύθυνση. εάν (MAX_WIPER_VALUE == nWiper) {bDirection = REVERSE; } else if (0 == nWiper) {bDirection = FORWARD; } // Μετακινήστε τον υαλοκαθαριστήρα digipot if (FORWARD == bDirection) {nWiper = Digipot. WiperIncrement (); // Η κατεύθυνση είναι προς τα εμπρός Serial.print ("Αύξηση -"); } else {nWiper = Digipot. WiperDecrement (); // Η κατεύθυνση είναι προς τα πίσω Serial.print ("Decrement -"); } Serial.print ("Θέση υαλοκαθαριστήρα ="); Serial.println (nWiper); καθυστέρηση (100);}

Βήμα 7: Κατανόηση του πηγαίου κώδικα και εκτέλεση του σκίτσου

Image
Image

Αυτός ο πηγαίος κώδικας είναι διαθέσιμος στο Arduino IDE μεταβαίνοντας στο μενού Παραδείγματα και εντοπίζοντας το MCP41HVX1 που μόλις εγκαταστήσατε (δείτε προηγούμενο βήμα). Μέσα στο MCP41HVX1 ανοίξτε το παράδειγμα "Έλεγχος υαλοκαθαριστήρων". Είναι καλύτερο να χρησιμοποιήσετε τον κώδικα που περιλαμβάνεται στη βιβλιοθήκη, καθώς εάν υπάρχουν διορθώσεις σφαλμάτων θα ενημερωθεί.

Το παράδειγμα του υαλοκαθαριστήρα δείχνει τα ακόλουθα API από τη βιβλιοθήκη MCP41HVX1:

  • Κατασκευαστής MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin)
  • WiperGetPosition ()
  • WiperSetPosition (byte byWiper)
  • WiperIncrement ()
  • WiperDecrement ()

Μέσα στο δείγμα του πηγαίου κώδικα, βεβαιωθείτε ότι έχετε ορίσει το MAX_WIPER_VALUE σε 127, εάν χρησιμοποιείτε τσιπ 7 bit. Η προεπιλογή είναι 255 που είναι για μάρκες 8 bit. Εάν κάνετε αλλαγές στο δείγμα, το Arduino IDE θα σας αναγκάσει να επιλέξετε ένα νέο όνομα για το έργο, καθώς δεν θα σας επιτρέψει να ενημερώσετε τον κωδικό παραδείγματος. Αυτή είναι αναμενόμενη συμπεριφορά.

Κάθε φορά μέσω του βρόχου, ο υαλοκαθαριστήρας αυξάνεται κατά ένα βήμα ή μειώνεται κατά ένα βήμα, ανάλογα με την κατεύθυνση που πηγαίνει. Εάν η κατεύθυνση είναι προς τα πάνω και φτάσει στο MAX_WIPER_VALUE, θα αντιστρέψει την κατεύθυνση. Αν χτυπήσει το 0 θα αντιστραφεί ξανά.

Καθώς εκτελείται το σκίτσο, η σειριακή οθόνη ενημερώνεται με την τρέχουσα θέση υαλοκαθαριστήρα.

Για να δείτε την αντίσταση να αλλάζει θα πρέπει να χρησιμοποιήσετε ένα σετ πολύμετρων για να διαβάσετε Ohms. Τοποθετήστε τους αισθητήρες μετρητή στο P0B (pin 11) και P0W (pin 12) στο digipot για να δείτε την αντίσταση να αλλάζει καθώς εκτελείται η εφαρμογή. Σημειώστε ότι η τιμή αντίστασης δεν θα φτάσει μέχρι το μηδέν, καθώς υπάρχει κάποια εσωτερική αντίσταση στο τσιπ, αλλά θα φτάσει κοντά στα 0 Ω. Πιθανότατα δεν θα πάει ούτε στη μέγιστη τιμή, αλλά θα είναι κοντά.

Καθώς παρακολουθείτε το βίντεο, μπορείτε να δείτε το πολύμετρο να δείχνει την αντίσταση να αυξάνεται μέχρι να φτάσει στη μέγιστη τιμή και στη συνέχεια να αρχίσει να μειώνεται. Το τσιπ που χρησιμοποιείται στο βίντεο είναι το MCP41HV51-104E/ST που είναι ένα τσιπ 8 bit με μέγιστη τιμή 100k ohm.

Βήμα 8: Αντιμετώπιση προβλημάτων

Εάν τα πράγματα δεν λειτουργούν όπως αναμενόταν, εδώ είναι μερικά πράγματα που πρέπει να προσέξετε.

  • Επαληθεύστε την καλωδίωσή σας. Όλα πρέπει να συνδεθούν σωστά. Βεβαιωθείτε ότι χρησιμοποιείτε το πλήρες διάγραμμα καλωδίωσης όπως αναφέρεται σε αυτό το Οδηγίες. Υπάρχουν εναλλακτικά διαγράμματα καλωδίωσης που παρουσιάζονται στο README, τον πηγαίο κώδικα της βιβλιοθήκης, και κάτω κάτω σε αυτό το Instructable, αλλά κολλήστε με ό, τι τεκμηριώνεται παραπάνω στο παραπάνω βήμα καλωδίωσης.
  • Βεβαιωθείτε ότι κάθε καρφίτσα στο ψηφιακό δοχείο σας είναι συγκολλημένη στον πίνακα ανάρτησης. Η χρήση οπτικής επιθεώρησης δεν είναι αρκετά καλή. Βεβαιωθείτε ότι έχετε επαληθεύσει χρησιμοποιώντας τη λειτουργία συνέχειας του πολύμετρου σας για να επαληθεύσετε ότι όλες οι ακίδες στο digipot είναι ηλεκτρικά συνδεδεμένες με τον πίνακα διάσπασης και ότι δεν υπάρχει διασταυρούμενη σύνδεση καρφιτσών από κολλήσεις που ενδέχεται να έχουν γεφυρωθεί σε ίχνη.
  • Εάν η σειριακή οθόνη δείχνει ότι η θέση του υαλοκαθαριστήρα αλλάζει όταν εκτελείτε το σκίτσο, αλλά η τιμή αντίστασης δεν αλλάζει, αυτό είναι ένδειξη ότι το WLAT ή το SHDN δεν πραγματοποιεί σωστή σύνδεση με την πλακέτα διαρροής ή τους υαλοκαθαριστήρες για WLAT ή SHDN δεν συνδέονται σωστά με το Arduino.
  • Βεβαιωθείτε ότι χρησιμοποιείτε ένα δευτερεύον τροφοδοτικό που είναι DC μεταξύ 10 και 36 βολτ.
  • Βεβαιωθείτε ότι το τροφοδοτικό 10 έως 36 βολτ λειτουργεί μετρώντας την τάση με το πολύμετρό σας.
  • Δοκιμάστε να χρησιμοποιήσετε το αρχικό σκίτσο. Εάν κάνατε αλλαγές, ενδέχεται να έχετε παρουσιάσει σφάλμα.
  • Εάν κανένα από τα βήματα αντιμετώπισης προβλημάτων δεν βοήθησε να δοκιμάσετε ένα άλλο τσιπ digipot. Ας ελπίσουμε ότι αγοράσατε πολλά και τα συγκολλήσατε ταυτόχρονα σε έναν πίνακα διάσπασης TSSOP, οπότε θα πρέπει απλώς να αλλάξετε το ένα με το άλλο. Είχα ένα κακό τσιπ που μου προκάλεσε αρκετή απογοήτευση και αυτή ήταν η λύση.

Βήμα 9: Εσωτερικά και πρόσθετες πληροφορίες

Εναλλακτικό διάγραμμα καλωδίωσης
Εναλλακτικό διάγραμμα καλωδίωσης

Περαιτέρω πληροφορίες:

Περισσότερες πληροφορίες μπορείτε να βρείτε στο φύλλο δεδομένων MCP41HVX1.

Πλήρης τεκμηρίωση για ολόκληρη τη βιβλιοθήκη MCP41HVX1 είναι διαθέσιμη στο αρχείο README.md που αποτελεί μέρος της λήψης της βιβλιοθήκης. Αυτό το αρχείο είναι γραμμένο με σήμανση προς τα κάτω και μπορεί να προβληθεί με σωστή μορφοποίηση στο Github (κοιτάξτε στο κάτω μέρος της σελίδας) ή με πρόγραμμα προβολής / επεξεργαστή.

Επικοινωνίες μεταξύ του Arduino και του DigiPot:

Το Arduino επικοινωνεί με το DigiPot χρησιμοποιώντας SPI. Αφού η βιβλιοθήκη στείλει μια εντολή θέσης υαλοκαθαριστήρα, όπως WiperIncrement, WiperDecrement ή WiperSetPosition, τότε καλεί WiperGetPosition για να πάρει τη θέση του υαλοκαθαριστήρα από το τσιπ. Η τιμή που επιστρέφεται από αυτές τις εντολές του υαλοκαθαριστήρα είναι η θέση του υαλοκαθαριστήρα όπως το βλέπει το τσιπ και μπορεί να χρησιμοποιηθεί για να επαληθεύσει ότι ο υαλοκαθαριστήρας έχει μετακινηθεί στην αναμενόμενη θέση.

Προηγμένη λειτουργικότητα (WLAT & SHDN)

Αυτές οι προηγμένες λειτουργίες δεν εμφανίζονται στο παράδειγμα "Έλεγχος υαλοκαθαριστήρα". Υπάρχουν διαθέσιμα API στη βιβλιοθήκη για τον έλεγχο WLAT & SHDN. Υπάρχουν επίσης παραδείγματα σκίτσων WLAT και SHDN (στην ίδια θέση με το σκίτσο του Wiper Control) με τη βιβλιοθήκη.

SHDN (Τερματισμός λειτουργίας)

Το SHDN χρησιμοποιείται για την απενεργοποίηση ή ενεργοποίηση του δικτύου αντιστάσεων. Η ρύθμιση του SHDN σε χαμηλές απενεργοποιήσεις και υψηλές ενεργοποιεί το δίκτυο αντιστάσεων. Όταν το δίκτυο αντίστασης είναι απενεργοποιημένο, το P0A (DigiPot pin 13) αποσυνδέεται και το P0B (DigiPot pin 11) συνδέεται με το P0W (DigiPot pin 12). Θα υπάρχει μικρή αντίσταση μεταξύ P0B και P0W, οπότε ο μετρητής σας δεν θα διαβάζει 0 Ω.

Εάν η εφαρμογή σας δεν χρειάζεται να ελέγξει το SHDN, μπορείτε να το συνδέσετε απευθείας στο HIGH (δείτε εναλλακτικό διάγραμμα καλωδίωσης). Θα χρειαστεί να χρησιμοποιήσετε τον σωστό κατασκευαστή ή να περάσετε στο MCP41HVX1_PIN_NOT_CONFIGURED στον κατασκευαστή για να υποδείξετε ότι το SHDN είναι καλωδιωμένο. Είναι σημαντικό να σημειωθεί ότι εάν ακολουθείτε το παράδειγμα, πρέπει να χρησιμοποιήσετε το πλήρες διάγραμμα καλωδίωσης (βλ. Βήμα καλωδίωσης παραπάνω).

WLAT (Γράψτε το Latch)

Η εσωτερική αρχιτεκτονική αποτελείται από δύο στοιχεία σε ένα μόνο τσιπ. Ένα από τα στοιχεία είναι η διεπαφή SDI και ο καταχωρητής για να διατηρηθεί η τιμή του υαλοκαθαριστήρα. Το άλλο στοιχείο είναι το ίδιο το δίκτυο αντιστάσεων. Το WLAT συνδέει και τα δύο εσωτερικά στοιχεία μαζί.

Όταν το WLAT έχει οριστεί σε LOW οποιαδήποτε πληροφορία εντολής θέσης υαλοκαθαριστήρα διαβιβάζεται απευθείας στο δίκτυο αντιστάσεων και ενημερώνεται η θέση του υαλοκαθαριστήρα.

Εάν το WLAT έχει οριστεί σε Υ HIGHΗΛΟ, οι πληροφορίες θέσης υαλοκαθαριστήρων που διαβιβάζονται μέσω SPI διατηρούνται σε έναν εσωτερικό καταχωρητή αλλά δεν μεταβιβάζονται στο δίκτυο αντιστάσεων και επομένως η θέση του υαλοκαθαριστήρα δεν θα ενημερωθεί. Μόλις το WLAT ρυθμιστεί σε LOW, η τιμή μεταφέρεται από τον καταχωρητή στο δίκτυο αντιστάσεων.

Το WLAT είναι χρήσιμο εάν χρησιμοποιείτε πολλά digipot που πρέπει να διατηρήσετε σε συγχρονισμό. Η στρατηγική είναι να ορίσετε το WLAT σε HIGH σε όλα τα digipot και στη συνέχεια να ορίσετε την τιμή του υαλοκαθαριστήρα σε όλα τα τσιπ. Μόλις αποσταλεί η τιμή του υαλοκαθαριστήρα σε όλα τα digipot, το WLAT μπορεί να ρυθμιστεί σε LOW σε όλες τις συσκευές ταυτόχρονα, έτσι ώστε να μετακινούν όλοι τους υαλοκαθαριστήρες ταυτόχρονα.

Εάν ελέγχετε μόνο ένα DigiPot ή έχετε πολλαπλά αλλά δεν χρειάζεται να διατηρηθούν σε συγχρονισμό, πιθανότατα δεν θα χρειαστείτε αυτή τη λειτουργικότητα και ως εκ τούτου μπορείτε να συνδέσετε το WLAT απευθείας στο LOW (δείτε εναλλακτικό διάγραμμα καλωδίωσης). Θα χρειαστεί να χρησιμοποιήσετε τον σωστό κατασκευαστή ή να περάσετε στο MCP41HVX1_PIN_NOT_CONFIGURED στον κατασκευαστή για να υποδείξετε ότι το WLAT είναι καλωδιωμένο. Είναι σημαντικό να σημειωθεί ότι εάν ακολουθείτε το παράδειγμα, πρέπει να χρησιμοποιήσετε το πλήρες διάγραμμα καλωδίωσης (βλ. Βήμα καλωδίωσης παραπάνω).

Βήμα 10: Διάγραμμα εναλλακτικής καλωδίωσης

Καλωδίωση

Έχετε την επιλογή να συνδέσετε το WLAT από το digpot απευθείας στο LOW / GND αντί να συνδεθείτε σε ψηφιακό pin. Εάν το κάνετε αυτό, δεν θα μπορείτε να ελέγξετε το WLAT. Έχετε επίσης τη δυνατότητα να συνδέσετε το SHDN απευθείας στο HIGH αντί για ψηφιακή ακίδα. Εάν το κάνετε αυτό, δεν θα μπορείτε να ελέγξετε το SHDN.

Το WLAT και το SHDN είναι ανεξάρτητα το ένα από το άλλο, ώστε να μπορείτε να συνδέσετε σκληρά το ένα και να συνδέσετε το άλλο σε ψηφιακή ακίδα, να στερεώσετε και τα δύο ή να συνδέσετε και τα δύο σε ψηφιακές ακίδες, ώστε να μπορούν να ελεγχθούν. Ανατρέξτε στο εναλλακτικό διάγραμμα καλωδίωσης για αυτά που θέλετε να στερεώσετε και ανατρέξτε στο κύριο διάγραμμα καλωδίωσης στο βήμα 2 για καλωδίωση σε ελεγχόμενους ψηφιακούς πείρους.

Κατασκευαστές

Υπάρχουν τρεις κατασκευαστές στην κατηγορία MCP41HVX. Θα συζητήσουμε δύο από αυτά. Είναι όλα τεκμηριωμένα στο αρχείο README.md, οπότε αν ενδιαφέρεστε για τον τρίτο κατασκευαστή, ανατρέξτε στην τεκμηρίωση.

  • MCP41HVX1 (int nCSPin) - χρησιμοποιήστε αυτόν τον κατασκευαστή μόνο εάν τόσο το WLAT όσο και το SHDN είναι ενσύρματα.
  • MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin) - Χρησιμοποιήστε αυτόν τον κατασκευαστή εάν είτε WLAT είτε SHDN είναι ενσύρματα. Περάστε στη σταθερά MCP41HVX1_PIN_NOT_CONFIGURED εάν ο πείρος είναι καλωδιωμένος ή ο αριθμός καρφίτσας εάν είναι συνδεδεμένος σε ψηφιακή ακίδα.

Το nCSPin πρέπει να είναι συνδεδεμένο σε ψηφιακή ακίδα. Δεν είναι έγκυρο να περάσετε το MCP41HVX1_PIN_NOT_CONFIGURED στον κατασκευαστή για το nCSPin.

Τι γίνεται αν δεν χρησιμοποιώ Arduino Uno;

Το Arduino χρησιμοποιεί SPI για να επικοινωνήσει με το digipot. Οι ακίδες SPI είναι συγκεκριμένες ακίδες στον πίνακα Arduino. Οι ακίδες SPI στο Uno είναι:

  • SCK - ακίδα 13 στο Uno συνδεδεμένο με τον πείρο 2 στο digipot
  • MOSI - καρφίτσα 11 στο Uno συνδεδεμένο με τον πείρο 4 στο digipot
  • MISO - καρφίτσα 12 στο Uno συνδεδεμένο με τον πείρο 5 στο digipot

Εάν χρησιμοποιείτε ένα Arduino που δεν είναι Uno, θα πρέπει να καταλάβετε ποια καρφίτσα είναι SCK, MOSI και MISO και να τα συνδέσετε στο digipot.

Οι άλλες καρφίτσες που χρησιμοποιούνται στο σκίτσο είναι κανονικές ψηφιακές ακίδες, οπότε οποιαδήποτε ψηφιακή ακίδα θα λειτουργήσει. Θα χρειαστεί να τροποποιήσετε το σκίτσο για να καθορίσετε τις καρφίτσες που επιλέγετε στον πίνακα Arduino που χρησιμοποιείτε. Οι κανονικές ψηφιακές ακίδες είναι:

  • CS - καρφίτσα 10 στο Uno συνδεδεμένο στο pin 3 στο digipot (ενημέρωση CS_PIN στο σκίτσο με νέα τιμή)
  • WLAT - ακροδέκτης 8 στο Uno συνδεδεμένο στον ακροδέκτη 6 στο digipot (ενημέρωση WLAT_PIN στο σκίτσο με νέα τιμή)
  • SHDN - pin 9 στο Uno συνδεδεμένο στο pin 7 στο digipot (ενημέρωση SHDN_PIN στο σκίτσο με νέα τιμή)

Συνιστάται: