Απαντώντας στις ερωτήσεις οι μαθητές κάνουν υποθέσεις για το ποιες πιστεύουν ότι είναι οι μέγιστες και ελάχιστες τιμές στις μεταβλητές που εμφανίζονται και στο serial monitor πριν το προγραμματισμό και τις ενδείξεις της οθόνης LCD.
Κύκλωμα και κώδικας Παρατηρήστε αυτό το κύκλωμα και τον κώδικα που ακολουθεί. Στη συνέχεια θα διατυπωθούν υποθέσεις.
Διαβάστε προσεκτικά το παρακάτω πρόγραμμα και τα σχόλια για την κάθε εντολή.
int sensorPin = 0; // Δήλωση μεταβλητής sensorPin int reading = 0; // Δήλωση μεταβλητής reading int volt = 0; // Δήλωση μεταβλητής volt int temp = 0; // Δήλωση μεταβλητής temp #include <LiquidCrystal.h> // Εισαγωγή βιβλιοθήκης LiquidCrystal.h LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // Δήλωση pin σύνδεσης του LCD void setup() // Αρχή ρυθμίσεων { Serial.begin(9600); // Έναρξη σειριακής επικοινωνίας data rate 9600bps lcd.begin(16,2); // Έναρξη αποστολής δεδομένων στο LCD (στήλες, γραμμές) } void loop() // Αρχή προγράμματος { reading = analogRead(0); // Διάβασε από Α0 και αποθήκευσε στη reading volt=map(reading,0,1024,0,500); //Αντιστοίχισε στη volt(0-500) τις τιμές της reading(0-1024). Serial.print((float)volt/100); // Εμφάνισε στη σειριακή επικοινωνία το αποτέλεσμα volt/100 Serial.print(" Volts "); // Εμφάνισε στη σειριακή επικοινωνία “ Volt ” temp=map(volt,10,175,-40,125); // Αντιστοίχισε στη temp(-40-125) τις τιμές της volt(10-175). Serial.print(temp); // Εμφάνισε στη σειριακή επικοινωνία το περιεχόμενο της temp. Serial.println(" Celcius"); // Εμφάνισε στη σειριακή επικοινωνία " Celcius" και άλλαξε σειρά lcd.setCursor(0,0); // Ο δρομέας οθόνης στην θέση (0,0) στο LCD lcd.print("Temperature:"); // Εμφάνισε στην οθόνη “ Temperature: ” lcd.print(temp); // Εμφάνισε στην οθόνη το περιεχόμενο της temp. lcd.print("Celsius"); // Εμφάνισε στην οθόνη “ Celcius” delay(1000); // Περίμενε 1000msec } // Τέλος προγράμματος
|
|
| Υπόθεση 1 Υπόθεση 1η Λειτουργία μεταβλητών στον κώδικα και το εύρος των τιμών που μπορούν να πάρουν. |
|
| Υπόθεση 2 Υπόθεση 2η Λειτουργία της οθόνης LCD. |
|