Μετατροπή αναλογικού σήματος σε ψηφιακό (ADC)

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

Ο ADC (Analog to Digital Converter) είναι το κομμάτι του Arduino που του επιτρέπει να καταλαβαίνει αναλογικά σήματα — δηλαδή τάσεις που δεν είναι απλά ON/OFF αλλά έχουν ενδιάμεσες τιμές . Τέτοιες τάσεις θα μπορούσαν να προέρχονται από αισθητήρες ήχου, φωτός, θερμοκρασίας κτλ.

Το Arduino UNO διαθέτει 6 ADC εισόδους με ανάλυση  10bit (A0 – A5). Δηλαδή τάση 0–5V χωρίζεται σε 1024 βήματα. 210=1024 επίπεδα. Με βήμα τάσης 5V/1024 ≈ 0,0049V (4,9mV ανά μονάδα). Ενδεικτικά στο 0V → το Arduino διαβάζει 0,  2,5V → διαβάζει περίπου 512,  5V → διαβάζει 1023

Στο παράδειγμα μας θα χρησιμοποιήσουμε ένα ποτενσιόμετρο το οποίο θα δίνει τάση από 0 – 5V στην αναλογική είσοδο A0 του Arduino, το ADC θα την  διαβάζει και στη συνέχεια θα εμφανίζει τις ψηφιακές τιμές στο Serial Monitor του Arduino IDE.

Υλικά που θα χρειαστούμε

Το Arduino UNO, breadboard, καλώδια, ποτενσιόμετρο

To κύκλωμα μας

Arduino UNO, potentiometer, breadboard

Γράφουμε τον κώδικα

void setup() {

  int ADCvalue = 0; // Δημιουργία μεταβλητής για την τιμή του ADC

  Serial.begin(9600); // Εκκίνηση σειριακής επικοινωνίας στα 9600 bps

}

void loop() {

  int ADCvalue = analogRead(A0); // Ανάγνωση αναλογικής τιμής από το pin A0

  Serial.println(ADCvalue); // Εκτύπωση της τιμής στο Serial Monitor

  delay(100); // Αναμονή 100 ms πριν την επόμενη μέτρηση

}

Φορτώνουμε τον κώδικα στο Arduino και ανοίγουμε το Serial Monitor από το μενού πάνω. Tools –> Serial Monitor.

Γυρνώντας το ποτενσιόμετρο δεξιόστροφα η αριστερόστροφα η τάση στην έξοδο θα αλλάζει από 0 – 5V και θα μεταφράζεται σε ψηφιακές τιμές από 0 – 1023 στο Serial Monitor.

Serial Monitor - analog values

Στο επόμενο μάθημα θα δούμε πως μπορούμε να φτιάξουμε έναν απλό αυτοματισμό με έναν αισθητήρα φωτός ώστε όταν σκοτεινιάσει να ανάβει το LED.