microdev.gr




Περιγραφή-Σκοπός της εφαρμογής

Όλοι γνωρίζουμε ότι το Arduino μπορεί να ρυθμίζει τη στάθμη σήματος σε έναν ψηφιακό ακροδέκτη στα 0V ή 5V. Όμως, πολλές εξωτερικές διατάξεις απαιτούν αναλογικό σήμα για τον έλεγχό τους. Από τι εξαρτάται η φωτεινότητα ενός LED; Φυσικά, από το ρεύμα που το διαρρέει. Αυτό μπορεί να γίνει μεταβάλλοντας την αντίσταση ή μεταβάλλοντας την τάση του κυκλώματος, δηλαδή την τάση στον αντίστοιχο ψηφιακό ακροδέκτη. Ο μικροελεγκτής του Arduino υποστηρίζει την τεχνική PWM με την οποία μπορεί να αλλάζει η χρονική διάρκεια των 5V σε ένα σήμα που εναλλάσσεται μεταξύ 0V και 5V. Αν αυτή η εναλλαγή γίνεται αρκετά γρήγορα, τότε η συνδεδεμένη διάταξη αντιλαμβάνεται ότι τροφοδοτείται με τάση που παίρνει και ενδιάμεσες τιμές μεταξύ των 0V και 5V. Για παράδειγμα, αν το PWM είναι ρυθμισμένο στο 75%, τότε 0.75x5V=3.75V, και η εξωτερική διάταξη αντιλαμβάνεται ότι τροφοδοτείται με αυτή την τάση. Επειδή βέβαια στην πραγματικότητα δεν υφίσταται αυτή η τάση από κάποιο ψηφιακό ακροδέκτη, ονομάζεται ψευδοαναλογική τάση. Σε αυτή την εφαρμογή, χρησιμοποιούμε αυτή την τεχνική για να αυξομειώσουμε την ένταση φωτός ενός LED. Θα πρέπει να τονιστεί ότι, συγκεκριμένοι ακροδέκτες του Arduino υποστηρίζουν αυτή την τεχνική (σημάδι ~ πάνω στην πλακέτα).

Κύκλωμα


Κώδικας

int led=7;
int invalue=0;
int br=0;
void setup()
{
  pinMode(led, OUTPUT);
}

void loop()
{
  invalue=analogRead(0);
  br=map(invalue,0,1023,0,255);
  analogWrite(led,br);
}