Ανιχνευτής δόνησης (tilt) με Arduino

Υλικό

  • Arduino
  • Καλώδιο USB
  • Breadboard
  • LED
  • Αντίσταση 220 Ω
  • Μονάδα ανιχνευτή δόνησης
  • Αντίσταση 10 ΚΩ

Προετοιμασία

  • Ανοίξτε το περιβάλλον Arduino web editor και συνδεθείτε
  • Επιβεβαιώστε ότι στον Η/Υ σας λειτουργεί το Arduino agent και ότι το Arduino web editor εντοπίζει τη συσκευή σας σε μία θύρα USB

Φάση 1

  • Αναγνωρίστε τις συνδέσεις του ανιχνευτή
  • Συνδέστε τον ανιχνευτή με το Arduino, συνδέοντας την έξοδό του στην είσοδο 2 του Arduino
  • Συνδέστε την αντίσταση 10 ΚΩ σαν pull-down στην είσοδο
  • Χρησιμοποιήστε τον παρακάτω κώδικα και δείτε τα αποτελέσματα στο Monitor του Arduino web editor
// Sketch for shock switch sensor in pull-down resistor configuration
// Pinout:   https://startingelectronics.org/pinout/shock-sensor/
// Tutorial: https://startingelectronics.org/tutorials/arduino/modules/shock-sensor/
// Change pin number that the shock sensor is connected to here
#define SHOCK_PIN 2

void setup() {
  // initialize serial communication @ 9600 baud:
  Serial.begin(9600);  
  pinMode(SHOCK_PIN, INPUT);          // shock sensor pin set to input
}

void loop() {
  if (digitalRead(SHOCK_PIN)) {       // shock detected?
    // shock detected with pull-down resistor
    Serial.println("Tilt!!!");        // Report tilt detection
    delay(2000);                      // leave LED on for period
  }
  else {
    // shock not detected with pull-down resistor
    Serial.println("Everything calm...");   // Report no tilt
  }
}

Φάση 2

  • Συνδέστε το LED με την αντίσταση σε μια έξοδο του Arduino.
  • Μετατρέψτε τον παραπάνω κώδικα ώστε το LED να ανάβει σε περίπτωση εντοπισμού δόνησης.

Στην ενότητα setup() του παραπάνω προγράμματος θα πρέπει να δηλώσετε ότι ένας ακροδέκτης του Arduino (πχ ο ακροδέκτης 6) θα χρησιμοποιείται ως έξοδος:

pinMode(6, OUTPUT);

Η εντολή που ενεργοποιεί την έξοδο 5V σε αυτό τον ακροδέκτη είναι:

digitalWrite(6, HIGH);

Για να επανέλθει η έξοδος στα 0V:

digitalWrite(6, LOW);

Προέλευση κώδικα: https://startingelectronics.org/tutorials/arduino/modules/shock-sensor/

Ανιχνευτής φλόγας με Arduino

Υλικό

  • Arduino
  • Καλώδιο USB
  • Breadboard
  • LED
  • Αντίσταση 220 Ω
  • Μονάδα ανιχνευτή φλόγας

Προετοιμασία

  • Ανοίξτε το περιβάλλον Arduino web editor και συνδεθείτε
  • Επιβεβαιώστε ότι στον Η/Υ σας λειτουργεί το Arduino agent και ότι το Arduino web editor εντοπίζει τη συσκευή σας σε μία θύρα USB

Φάση 1

  • Αναγνωρίστε τις συνδέσεις του ανιχνευτή
  • Συνδέστε τον ανιχνευτή με το Arduino, συνδέοντας την αναλογική έξοδο στην είσοδο A0 του Arduino
  • Χρησιμοποιήστε τον παρακάτω κώδικα και δείτε τα αποτελέσματα στο Monitor του Arduino web editor
// lowest and highest sensor readings:
const int sensorMin = 0;     // sensor minimum
const int sensorMax = 1024;  // sensor maximum

void setup() {
  // initialize serial communication @ 9600 baud:
  Serial.begin(9600);  
}
void loop() {
  // read the sensor on analog A0:
	int sensorReading = analogRead(A0);
  // map the sensor range (four options):
  // ex: 'long int map(long int, long int, long int, long int, long int)'
	int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
  
  // range value:
  switch (range) {
  case 0:    // A fire closer than 1.5 feet away.
    Serial.println("** Close Fire **");
    break;
  case 1:    // A fire between 1-3 feet away.
    Serial.println("** Distant Fire **");
    break;
  case 2:    // No fire detected.
    Serial.println("No Fire");
    break;
  }
  delay(1);  // delay between reads
}

Φάση 2

  • Συνδέστε το LED με την αντίσταση σε μια έξοδο του Arduino.
  • Μετατρέψτε τον παραπάνω κώδικα ώστε το LED να ανάβει σε περίπτωση εντοπισμού φλόγας.

Στην ενότητα setup() του παραπάνω προγράμματος θα πρέπει να δηλώσετε ότι ένας ακροδέκτης του Arduino (πχ ο ακροδέκτης 6) θα χρησιμοποιείται ως έξοδος:

pinMode(6, OUTPUT);

Η εντολή που ενεργοποιεί την έξοδο 5V σε αυτό τον ακροδέκτη είναι:

digitalWrite(6, HIGH);

Για να επανέλθει η έξοδος στα 0V:

digitalWrite(6, LOW);

Προέλευση κώδικα: https://create.arduino.cc/projecthub/SURYATEJA/arduino-modules-flame-sensor-6322fb

Μετασχηματισμός

Κάποτε ήταν ένα τετράγωνο
<div></div>


 
 
Είχε πλευρές 200 pixels και κόκκινο χρώμα
<div style="width: 200px; height: 200px; background: red;"></div>

 


 
 
Το όνομά του ήταν demo
<div id="demo" style="width: 200px; height: 200px; background: red;"></div>

 


 
 
Όταν του έκανες κλικ, πρασίνιζε
<div id="demo" style="width: 200px; height: 200px; background: red;"></div>
 
<script>
document.getElementById("demo").onclick = function() {
document.getElementById("demo").style.background="green";
}
</script>

<div id="demo" style="width: 200px; height: 200px; background: red;"></div>
 
<script>
document.getElementById("demo").onclick = function() {
if (document.getElementById("demo").style.background=="red") {
document.getElementById("demo").style.background="green";
} else if (document.getElementById("demo").style.borderRadius!="100px") {
document.getElementById("demo").style.borderRadius="100px";
} else {
document.getElementById("demo").style.background="red";
document.getElementById("demo").style.borderRadius="0px";
}
}
</script>


 


 
 
Και δε βιαζόταν…
<div id="demo" style="width: 200px; height: 200px; background: red;"></div>
 
<script>
document.getElementById("demo").onclick = function() {
document.getElementById("demo").style.transition = "all 2s";
if (document.getElementById("demo").style.background=="red") {
document.getElementById("demo").style.background="green";
} else if (document.getElementById("demo").style.borderRadius!="100px") {
document.getElementById("demo").style.borderRadius="100px";
} else {
document.getElementById("demo").style.background="red";
document.getElementById("demo").style.borderRadius="0px";
}
}
</script>