Ο φωτοαντιστάτης LDR είναι ένας αντιστάτης, που η τιμή της αντίστασης του εξαρτάται από το φως που πέφτει πάνω του. Όσο πιο έντονο το φως, τόσο μικρότερη η αντίσταση. Ο φωτοαντιστάτης κατασκευάζεται από ειδικό φωτοευαίσθητο υλικό.
Υλικά
Τα νέα υλικά που θα εισάγουμε σε αυτή την εφαρμογή είναι ένας φωτοαντιστάτης και μια αντίσταση 10 kΩ. Ε΅πίσης χρησιμοποιούνται τα ήδη γνωστά: Κόκκινο LED, αντίσταση 220Ω, καλώδια.
int a;
// εδώ θα κρατάμε την τιμή που διαβάζουμε από τον φωτοαντιστάτη
float b; // εδώ θα αποθηκεύουμε την τάση που έχει ο φωτοαντιστάτης στα άκρα του
float c; // εδώ θα αποθηκεύουμε την τιμή της αντίστασης του φωτοαντιστάτη
int d; // εδώ θα αποθηκεύσουμε την τιμή-όριο πάνω από την οποία θα ανάβουμε το LED
void setup() {
Serial.begin(9600); // ξεκινάμε το σειριακό μόνιτορ του Arduino IDE
d=500; // τιμή πάνω από την οποία θα ανάβουμε το LED
pinMode(6, OUTPUT); // το πιν 6 θα είναι ή ΕΞΟΔΟΣ που θα συνδέσουμε το LED
pinMode(4,OUTPUT);
}
void loop() {
a=analogRead(A0); // διάβασε την αναλογική είσοδο A0 και βάλε την τιμή στην a
Serial.print("Τιμή: "); // απεικόνισε την τιμή της a στο σειριακό μόνιτορ του Arduino IDΕ
Serial.print(a);
Serial.print("\t");
b=a*5.0/1023; // υπολόγισε την τιμή της τάσης στα άκρα του φωτοαντιστάτη (αντιστοιχία: 1023 --> 5V)
Serial.print("Τάση: ");
Serial.print(b); // απεικόνισε την τιμή της τάσης
Serial.print(" V \t");
c=b*10.0/(5-b); // υπολόγισε την αντίσταση του φωτοαντιστάτη σε kΩ
Serial.print(c);
Serial.println(" kΩ");
if(a>d) { // αν η τιμή του a είναι μεγαλύτερη από το d (όριο)
digitalWrite(6, HIGH);
digitalWrite(4, HIGH);// άναψε το LED
}
else // αλλιώς
{
digitalWrite(6, LOW);
digitalWrite(4, LOW);// σβήσε το LED
delay(500); // περίμενε εδώ 0,5 δευτερόλεπτο
}
}


Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου