Πάτα το κουμπί...

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

Σε αυτό το παράδειγμα θα προσπαθήσουμε να ανάβουμε ένα LED κάθε φορά που πιέζουμε ένα κουμπί πίεσης. Ονομάζεται έτσι, επειδή συνδέονται τα πόδια του κουμπιού όταν κάποιος το πιέζει για μια στιγμή και αφαιρεί τη σύνδεση όταν το κουμπί δεν πιέζεται πια.


http://thumbs3.ebaystatic.com/d/l225/m/mdqVKBu1On7rLNet7EIPtHw.jpg

Τα ηλεκτρονικά στοιχεία θα συνδεθούν στο breadboard όπως φαίνεται παρακάτω:


Παρατηρούμε εδώ ότι χρησιμοποιούμε το D0 (επαφή 16) ως επαφή εισόδου για να δέχεται εντολές από το κουμπί και το D1 (επαφή 5) ως μία επαφή εξόδου για την αποστολή σημάτων προς το LED για το αναβο-σβήσιμο!

Στο κύκλωμά μας, όταν το κουμπί δεν πιέζεται, δεν υπάρχει σύνδεση μεταξύ των δύο ποδιών του κουμπιού, οπότε η είσοδος συνδέεται με τη γείωση και διαβάζουμε ένα LOW. Όταν το κουμπί είναι πατημένο, κάνει μια σύνδεση μεταξύ των δύο ποδιών του, συνδέοντας τον ακροδέκτη στα 3.3 βολτ, έτσι ώστε να διαβάζουμε ένα HIGH.

Όσον αφορά τον κώδικα για τα παραπάνω, θα φαίνεται όπως παρακάτω:

int ledPin = 5; // choose the pin for the LED
int inPin = 16;   // choose the input pin (for a pushbutton)
int val = 0;     // variable for reading the pin status

void setup() {
  pinMode(ledPin, OUTPUT);  // declare LED as output
  pinMode(inPin, INPUT);    // declare pushbutton as input
}

void loop(){
  val = digitalRead(inPin);  // read input value
  if (val == LOW) {         // check if the input is LOW (button released)
    digitalWrite(ledPin, LOW);  // turn LED OFF
  } else {
    digitalWrite(ledPin, HIGH);  // turn LED ON
  }
}

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

Μια άλλη νέα δομή που παρατηρούμε στον κώδικα μας είναι η δομή IF. Με αυτή, μπορούμε να αποφασίσουμε ποιες ενέργειες επιλέγουμε με βάση μια συνθήκη. Έτσι στο παράδειγμα μας, πρώτα διαβάσαμε την κατάσταση του ακροδέκτη 16 και αν είναι ΧΑΜΗΛΗ (δεν πατιέται) τότε σβήνουμε τη λυχνία LED (ακροδέκτης 5). Εάν όχι, ανάβουμε τη λυχνία LED.

Αντιγράψτε λοιπόν τον κώδικα στο Arduino IDE, ανεβάστε τον στο NodeMCU και.....παίξτε με το κουμπί!