/* ΓΕΝΙΚΕΣ ΟΔΗΓΙΕΣ Ο κώδικας δεν είναι πλήρης :) Υπάρχουν κενά τα οποία συμπληρώνετε με κριτήριο το τι θέλετε να κάνει η ΔΙΚΗ ΣΑΣ εφαρμογή. Διαβάζετε τις οδηγίες που υπάρχουν μέσα στον κώδικα, κάνουν καλό :) */ // Το triggerPin είναι αυτό που όταν ενεργοποιηθεί, θα κάνει τον αισθητήρα // να στείλει το ηχητικό κύμα. Ο δικός μας κώδικας που τρέχει στο arduino // ενεργοποιεί με κάποια σήματα το triggerPin, άρα ο αισθητήρας με κάποιον // δικό του τρόπο εκμπέμπει ηχητικό κύμα. int trigPin = 12; // Το echoPin είναι αυτό που θα ενημερώσει το arduino ότι το ηχητικό κύμα // έχει επιστρέψει. Ο αισθητήρας δέχεται το ηχητικό κύμα και παράγει ένα // ηλεκτρικό σήμα και το δίνει στο arduino μέσω του echoPin. int echoPin = 11; // Στην μεταβλητή duration θα υπολογίσουμε το χρόνο που έκανε το ηχητικό κύμα // να επιστρέψει int duration; // Στην μεταβλητή distance θα υπολογίσουμε την απόσταση του κοντινότερου // εμποδίου που αναγνώρισε ο αιθητήρας. float distance; void setup() { // Έναρξη σειριακής επικοινωνίας με το PC για να μπορούμε να // βλέπουμε τιμές αισθητήρων, αλλά και να δίνουμε τιμές από το πληκτρολόγιο. // Μπορεί και να μην χρειαστεί, αλλά ας το έχουμε ως ρύθμιση. Serial.begin(9600); // Το trigger Pin θα λειτουργήσει ως έξοδος pinMode(........); // Το echo Pin θα λειτουργήσεις ως είσοδος pinMode(........); } void loop() { // Ο τρόπος για να κάνουμε τον αισθητήρα να εκπέμψει ηχητικό κύμα // είναι να γράψουμε LOW στο trigger pin για 2 μικροδευτερόλεπτα, // στη συνέχεια να γράψουμε HIGH για 10 μικροδευτερόλεπτα, // και μετά να ξαναγράψουμε LOW. digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Όταν το ηχητικό κύμα επιστρέψει, ο αισθητήρας φτιάχνει ένα ηλεκτρικό σήμα και μέσω // του echo pin ενημερώνει το arduino για την διάρκεια που χρειάστηκε ο ήχος να επιστρέψει. duration = pulseIn(echoPin, HIGH); // Αυτή την πληροφορία την παινουμε με την εντολή pulseIn // και την αποθηκεύουμε στην μεταβλητή duration. // Αν τώρα σκεφτείτε ότι η ταχύτητα του ήχου είναι 0.034 cm/μs και ότι είναι σταθερή (ΕΟΚ), // τότε για να υπολογίσουμε τη απόσταση που έκανε ο ήχος, αρκεί να πολλαπλασιάσουμε // χρόνο επί ταχύτητα. Σωστά; // Και διαιρούμε το αποτέλεσμα δια 2, διότι ο ήχος έκανε αυτή την απόσταση 2 φορές. distance = duration * 0.034 / 2; // Εμφάνιση της απόστασης που υπολογίσαμε στο Serial Monitor Serial.print(distance); Serial.println(" cm"); delay(500); // Στη συνέχεια, θα έχετε λογικά έναν κώδικα που θα ελέγχει την απόσταση // και η εφαρμογή σας κάτι θα κάνει ανά περίπτωση if (distance < 10) { ... } else if (distance < 40) { ... } else { ... } }