You are on page 1of 8

ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ

Η εργασία μας έχει σκοπό να μιμηθεί έναν αισθητήρα <<Parktronic>>, ο οποίος


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

Για την εργασία μας χρησιμοποιήσαμε:

 1 Arduino UNO R3
 Ένα μικρό Breadboard
 Έναν βομβητή
 Έναν αισθητήρα κίνησης
 8 λαμπτήρες
 8 αντιστάσεις των 220 Ω
 1 αντίσταση των 100 Ω

Από την στιγμή που ενεργοποιηθεί ο κώδικας και υπάρχει κάποιο αντικείμενο εντός

εμβέλειας του αισθητήρα κίνησης, θα υπάρχουν από ένα εώς οκτώ λαμπτήρες αναμμένοι ανάλογα την
απόσταση, Όσο πιο κοντά βρίσκεται το αντικείμενο τόσα περισσότερα λαμπάκια θα είναι αναμμένα,
όταν φθάσει αρκετά κοντά το αντικείμενο οι λαμπτήρες θα αρχίσουν να αναβοσβήνουν σε κύκλο
παράλληλα με έναν χαρακτηριστικό ήχο που θα παράγει ο βομβητής.
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
ΕΙΚΟΝΑ:

ΚΩΔΙΚΑΣ:
int cm = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)

pinMode(triggerPin, OUTPUT);

digitalWrite(triggerPin, LOW);

delayMicroseconds(2);

// Το trigger pin γίνεηαι ζε καηάζηαζε HIGH για 10 microseconds

digitalWrite(triggerPin, HIGH);

delayMicroseconds(10);
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
digitalWrite(triggerPin, LOW);

pinMode(echoPin, INPUT);

// Διαβάδει ηο echo pin και επιζηπέθει ηο χπόνο που χπειάζηεκε για να

// ηαξιδέψει ηο κύμα ήχου ζε microsecond

return pulseIn(echoPin, HIGH);

void setup()

Serial.begin(9600);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

pinMode(11, OUTPUT);

pinMode(12, OUTPUT);

void loop()

// measure the ping time in cm

cm = 0.01723 * readUltrasonicDistance(6, 7);

Serial.print("Distance: ");

Serial.print(cm);

Serial.println(" cm");
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
if (cm < 40 && cm > 0) {

tone(12, 261);

digitalWrite(11, HIGH);

delay(100);

digitalWrite(10, HIGH);

digitalWrite(11, LOW);

delay(100);

digitalWrite(9, HIGH);

digitalWrite(10, LOW);

delay(100);

digitalWrite(8, HIGH);

digitalWrite(9, LOW);

delay(100);

digitalWrite(5, HIGH);

digitalWrite(8, LOW);

delay(100);

digitalWrite(4, HIGH);

digitalWrite(5, LOW);

delay(100);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

delay(100);

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

delay(100);

digitalWrite(2, LOW);

}
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
else {

noTone(12);

if (cm > 40 && cm < 80) {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, LOW);

if (cm > 80 && cm < 120) {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

if (cm > 120 && cm < 160) {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
digitalWrite(8, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

if (cm > 160 && cm < 200) {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

if (cm > 200 && cm < 240) {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

delay(200);

}
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
if (cm > 240 && cm < 280) {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

if (cm > 280 && cm < 320) {

digitalWrite(11, HIGH);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

if (cm > 320) {

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);
ΕΡΓΑΣΙΑ Β΄ ΤΕΤΡΑΜΗΝΟΥ
digitalWrite(3, LOW);

digitalWrite(2, LOW);

You might also like