Ψηφιακή Είσοδος
ΠΕΡΙΓΡΑΦΗ
Στο προηγούμενο παράδειγμα είδαμε πώς μπορούμε να δηλώσουμε ένα pin του Arduino και να το χρησιμοποιήσουμε σαν έξοδο. Τώρα θα μελετήσουμε τον τρόπο που μπορούμε να εισάγουμε δεδομένα σε ένα pin. Όπως είδαμε στην έξοδο, έτσι και στην είσοδο η τιμές που μπορεί να δεχτεί ένα pin είναι HIGH ή LOW. Την τιμή HIGH μπορούμε να την πάρουμε από το pin 5V του Arduino ενώ την τιμή LOW μπορούμε να την πάρουμε από τα pin GND (ground, 0V). Για την επιλογή της τιμής 0V ή 5V θα μας βοηθήσει η χρήση ενός διακόπτη. Παρακάτω θα προσπαθήσουμε με την βοήθεια ενός διακόπτη να ανάβουμε ένα LED για ένα δευτερόλεπτο. Τα υλικά που θα χρειαστούμε σ’ αυτήν την εφαρμογή είναι: 1 breadboard, 1 LED, 1 αντίσταση 220Ω, 1 διακόπτης, 1 αντίσταση 10kΩ ( καφέ – μαύρο – πορτοκαλί). Η συνδεσμολογία που κάναμε φαίνεται στο παρακάτω σχήμα:

Εικόνα 3-3: Πολικότητα LED

Εικόνα 3-4: Αναπαράσταση β’ κυκλώματος
Το πρόγραμμα που φορτώσαμε στο Arduino είναι το παρακάτω:
int LEDPin = 13;
int inPin = 10;
void setup(){
pinMode(LEDPin, OUTPUT);
pinMode(inPin, INPUT);
}
void loop(){
if (digitalRead(inPin) == HIGH){
digitalWrite(LEDPin, HIGH);
delay(1000);
digitalWrite(LEDPin, LOW);
delay(1000);
}
}
Όπως παρατηρείτε, τις περισσότερες εντολές τις μελετήσαμε στο προηγούμενο παράδειγμα. Αυτό που μένει να μελετήσουμε είναι η συνθήκη if (digitalRead(inPin) == HIGH){} . Η εντολή digitalRead(inPin) διαβάζει τη κατάσταση του pin 10 του Arduino. Αν πιέσουμε τον διακόπτη το pin 10 παίρνει τη τιμή HIGH, δηλαδή κλείνει το κύκλωμα με 5V (βλ. Κύκλωμα), αν αφήσουμε τον διακόπτη τότε το pin γειώνετε (GND) άρα έχουμε κατάσταση LOW στο pin. Άρα όπως βλέπουμε ποιο πάνω, ο κώδικας που βρίσκετε μέσα στην if() θα εκτελεστεί μόλις ανιχνευτούν 5V στο ψηφιακό pin.