Βασικές αρχές υλικού: πώς λειτουργούν οι αντιστάσεις pull-down και pull-up

Εάν έχετε συνδέσει ποτέ ένα κουμπί σε ένα Arduino, έχετε συναντήσει αυτό το διάγραμμα:

Στην αρχή, αυτό μπορεί να προκαλέσει σύγχυση. Οι πρώτες σκέψεις μου: «Γιατί χρειάζομαι μια αντίσταση; Θέλω απλώς να μου πει εάν πατάτε το κουμπί. "

Μετά από πολλή ανάγνωση, δεν υπήρχε μια απλή εξήγηση.

Τι συμβαίνει εδώ

Σε αυτό το κουμπί - AKA ένας διακόπτης - τα καλώδια έχουν τη μορφή "H". Αλλά η μέση δεν είναι συνδεδεμένη - ή το κύκλωμα δεν είναι συνδεδεμένο - μέχρι να πατήσουμε το κουμπί.

Στην πραγματικότητα, θέλουμε να διαβάσουμε από το Arduino a 0όταν τίποτα δεν είναι συνδεδεμένο και 1πότε πατηθεί το κουμπί.

Στο Arduino, αυτό ονομάζεται General Purpose Input Output (GPIO).

Έτσι, μπορούμε να κάνουμε κάτι τέτοιο:

Συνδέουμε θετικά (5v, 3.3V ή VCC) στην αριστερή πλευρά του κυκλώματος.

Τώρα, όταν πατηθεί το κουμπί, το GPIO θα διαβάσει ένα 1και όλα είναι καλά.

Λοιπόν όχι. Ας ρίξουμε ξανά μια ματιά στο διάγραμμα 2:

Θέλαμε 0όταν δεν υπάρχει τίποτα συνδεδεμένο, αλλά πώς μπορείτε να το εγγυηθείτε; Προς το παρόν, δεν υπάρχει τρόπος να εγγυηθεί το GPIO να είναι 0.

Υπάρχουν επίσης ηλεκτρομαγνητικές συχνότητες στον αέρα που θα μπορούσαν να προσελκύσουν το GPIO σας 0ή 1. Θα μπορούσε ακόμη και να κυμαίνεται μεταξύ των δύο! Με αυτόν τον τρόπο, δεν μπορούμε να είμαστε θετικοί είναι 0(είμαι τόσο άσχημα στα πανκ). Αυτό είναι επίσης γνωστό ως λογικό 0.

Ένας τρόπος για να πάρετε μια λογική 0είναι να συνδέσετε τον πείρο στο έδαφος:

Ναι! Λοιπόν, τώρα είναι ένα εγγυημένο λογικό μηδέν. Ενώ πατάτε το κουμπί, θα είναι 1τώρα. Σωστά?

Λοιπόν όχι.

Μόλις δημιουργήσατε ένα βραχυκύκλωμα. ;

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

Η ηλεκτρική ενέργεια θα ακολουθήσει το δρόμο της ελάχιστης αντίστασης Το GPIO σας θα εγγραφεί τώρα 1όταν πατηθεί το κουμπί. Όπως:

Ουο Χου! Τώρα δουλεύουμε με κάτι.

Τώρα ας δούμε το αντίθετο: pull-up αντιστάσεις. Είναι το ίδιο πράγμα αλλά αντίστροφα. Ενώ δεν πατηθεί το κουμπί, το GPIO θα καταχωρήσει ένα 1. Όταν πατήσετε το κουμπί, το GPIO θα είναι 0.

Αν και δεν πιέζουμε, έχουμε το GPIO συνδεδεμένο στο θετικό (VCC). Έτσι, κάθε ρεύμα που υπάρχει θα τραβηχτεί έτσι ώστε το GPIO να καταγράφει μια λογική 1.

Είναι σημαντικό να σημειωθεί εδώ ότι, η ηλεκτρική ενέργεια θέλει πάντα να πάει στο έδαφος. Έτσι, όταν πατάμε το κουμπί, το ρεύμα που ρέει θα ρέει στο έδαφος. Έτσι, κάθε ρεύμα που θα πήγαινε στο GPIO πηγαίνει μαζί του, αφήνοντας το GPIO σε λογικό 0.

; Το τέλος.

Γιατί το έγραψα αυτό;

Μπήκα στο Losant τον Σεπτέμβριο του 2016 χωρίς εμπειρία υλικού. Κάθε μεμονωμένο κιτ εκκίνησης υλικού σας δίνει ένα κουμπί χωρίς εξήγηση αυτής της έννοιας. Ας ελπίσουμε ότι αυτό βοηθάει και τη λάμπα σας να σβήσει. ;

Αυτό γρατσουνίζει μόνο την επιφάνεια. Αν θέλετε να σκάψετε πιο βαθιά, δείτε αυτούς τους πόρους:

Αντίσταση Pull-up - Learn.sparkfun.com

Ένα άλλο πράγμα που πρέπει να επισημάνουμε είναι ότι όσο μεγαλύτερη είναι η αντίσταση για το pull-up, τόσο πιο αργή είναι η απόκριση του πείρου… Learn.sparkfun.com

Λατρεύω τα σχόλια. Λοιπόν, ενημερώστε με εάν αυτό θα μπορούσε να βελτιωθεί. Αν μου έλειπε εντελώς η μπάλα, ενημερώστε με! Θα ήθελα πολύ να το κάνω καλύτερο για τους άλλους.