arduino εντολή pinMode()

Πως δηλώνουμε το pinMode()

Η εντολή pinMode() μας επιτρέπει να ορίσουμε τον τύπο ενός pin του arduino. Ορίζοντας συγκεκριμένους τύπους στα pin, έχουμε την δυνατότητα να χρησιμοποιήσουμε ένα pin είτε ως είσοδο, είτε ως έξοδο.

Αναφερόμαστε στις ψηφιακές εισόδους / εξόδους.


Περιγραφή

Ρυθμίζει ένα συγκεκριμένο pin ώστε να συμπεριφέρεται είτε ως είσοδος είτε ως έξοδος. Περισσότερες λεπτομέρειες για την λειτουργικότητα των pin θα βρείτε στην ενότητα Ψηφιακά pin (digital pins).

Μετά την έκδοση 1.0.1, είναι εφικτό να ενεργοποιήσουμε τις εσωτερικές αντιστάσεις ανόρθωσης (pullup) με την επιλογή INPUT_PULLUP. Επιπρόσθετα, όταν χρησιμοποιούμε το mode INPUΤ αυτομάτως απενεργοποιούνται τα εσωτερικά pullups.

Σύνταξη

pinMode(pin, mode)

Παράμετροι

pin = Ο αριθμός του pin στο arduino

mode = INPUT, OUTPUT, INPUT_PULLUP.

Η συγκεκριμένη εντολή δεν επιστρέφει κάτι.

Παράδειγμα

void setup() 
{ 
  pinMode(13, OUTPUT); // Ορίζει το pin 13 ως έξοδο
}
 void loop() 
{
  digitalWrite(13, HIGH); // Θέτει την ψηφιακή έξοδο 13 σε HIGH STATE (στέλνει 5V) 
  delay(1000); // Αναμονή ενός δευτερολέπτου (1000 μιλισεκόντ) 
  digitalWrite(13, LOW); // Θέτει την ψηφιακή έξοδο 13 σε LOW STATE (σταματά να στέλνει 5V) 
  delay(1000); // Αναμονή ενός δευτερολέπτου (1000 μιλισεκόντ) 
}

Με το παραπάνω παράδειγμα ορίζουμε ως έξοδο ένα pin και μπορούμε να του στέλνουμε 5V.

Εναλλακτικά αν το ορίσουμε ως είσοδο, τότε για να ενεργοποιηθεί να πρέπει να του δώσουμε εμείς 5V ώστε να πάρει την κατάσταση HIGH. Διαφορετικά έχει LOW.


Ψηφιακά pin (digital pins)

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

Ιδιότητες που έχει ένα pin όταν ορίζεται ως INPUT

Το arduino (Atmega) έχει ως προκαθορισμένο mode το INPUT για τα pin. Έτσι δεν χρειάζεται να δηλώσετε ένα pin ως INPUT αν θέλετε να το χρησιμοποιήσετε έτσι. Τα pin που είναι σε INPUT mode έχουν μηδαμινό κόστος στο κύκλωμα. Είναι σαν να έχουμε μία αντίσταση 100MΩ (ναι, 100 Μεγαώμ!) σε σειρά με την είσοδο. Πρακτικά αυτό σημαίνει ότι χρειάζεται ελάχιστη διακύμανση του ρεύματος για να αλλάξει από την μία κατάσταση στην άλλη (HIGH, LOW).

Αυτό καθιστά το συγκεκριμένο mode κατάλληλο για εφαρμογές όπως η ανάγνωση μίας φωτοαντίστασης ή ενός αισθητήρα αφής.

Η μεγάλη ευαισθησία στις μικροσκοπικές διακυμάνσεις του ρεύματος έχει ένα σημαντικό μειονέκτημα. Μπορεί τα pin αυτά να αλλάζουν τυχαία κατάσταση από LOW σε HIGH με τις ηλεκτρικές συχνότητες που πιάνουν από την ατμόσφαιρα ή από χωρητική ζεύξη μίας αλλαγής κατάστασης από ένα γειτονικό pin.

Ιδιότητες που έχει ένα pin όταν ορίζεται ως INPUT_PULLUP

Ο εγκέφαλος του arduino Atmega έχει ενσωματωμένες αντιστάσεις ανόρθωσης σε τιμές των 20KΩ οι οποίες είναι προσβάσιμες με προγραμματιστικό τρόπο. Όταν ορίζουμε το mode ενός pin σε INPUT_PULLUP, η κατάσταση HIGH, LOW αντιστρέφεται!

αυτό σημαίνει ότι στην κατάσταση HIGH ο αισθητήρας είναι κλειστός και στην κατάσταση LOW θα είναι ανοιχτός.

Οι τιμές των εσωτερικών αντιστάσεων διαφέρουν στις εκδόσεις των arduino. Αν και στις περισσότερες εκδόσεις είναι 20KΩ, στην έκδοση arduino due είναι μεταξύ 50-150ΚΩ. Πριν χρησιμοποιήσετε τις αντιστάσεις, συμβουλευτείτε τις τεχνικές προδιαγραφές του υλικού σας.

Όταν συνδέετε έναν αισθητήρα σε ένα pin που έχει δηλωθεί ως INPUT_PULLUP, το άλλο άκρο του αισθητήρα θα πρέπει να συνδεθεί στην γείωση (GND ή GROUND ή 0V)

Ιδιότητες που έχει ένα pin όταν ορίζεται ως OUTPUT

Τα pin που ορίζονται ως έξοδοι – OUTPUT, μπορούν να παρέχουν σημαντικό ρεύμα σε άλλα κυκλώματα που συνδέονται σε αυτό το pin. Μία έξοδος από τον μικροελεγκτή Atmega μπορεί να φτάσει μέχρι και τα 40mA. Το ρεύμα αυτό είναι αρκετό ώστε να ανάψει έντονα ένα LED ή να τρέξει αρκετούς αισθητήρες. Δυστυχώς δεν μπορεί να τροφοδοτήσει ένα relay (ρελέ) ή μία μαγνητική βαλβίδα ειδικά αν στην επαφή του υπάρχει φορτίο. Όταν δηλώνουμε ένα Pin σε OUTPUT mode καλά είναι να το συνδέουμε σε σειρά με μία αντίσταση 470Ω, εκτός και αν χρειαζόμαστε το μέγιστο ρεύμα από το pin ή τα pin.

Σημείωση: Δεν είναι καλή πρακτική να βραχυκυκλώσουμε τα pin ώστε να τραβήξουμε περισσότερο ρεύμα καθώς αυτό ενέχει κίνδυνο για τον μικροελεγκτή. Το αποτέλεσμα μπορεί να είναι να καταστρέψουμε ένα από τα pin.
Επιστροφή στη λίστα εντολών

Δεκέμβριος 24, 2018

0 Απαντήσεις στο "arduino εντολή pinMode()"

    Αφήστε ένα μήνυμα

    Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

    Σχεδιασμός © GetCert. Με επιφύλαξη παντός δικαιώματος.