Αναλογικός ανιχνευτής μαγνητικού πεδίου με Arduino

Υλικό

  • Arduino
  • Καλώδιο USB
  • Breadboard
  • Μονάδα αναλογικού αισθητήρα Hall
  • Μοτέρ σέρβο SG90

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

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

Φάση 1

  • Αναγνωρίστε τις συνδέσεις του ανιχνευτή
  • Συνδέστε τον ανιχνευτή με το Arduino, συνδέοντας την αναλογική έξοδο στην είσοδο A0 του Arduino
  • Χρησιμοποιήστε τον παρακάτω κώδικα και δείτε τα αποτελέσματα στο Monitor του Arduino web editor
int sensorValue;

void setup() {
  pinMode(A0, INPUT);
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(A0) / 4;
  Serial.println(sensorValue, DEC);
  delay(100);
}

Φάση 2

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

Για να λειτουργήσει το μοτέρ θα πρέπει να προσθέσουμε τις παρακάτω δηλώσεις στην αρχή του προγράμματος:

#include <Servo.h>
Servo servo

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

servo.attach(9);

Η εντολή που περιστρέφει τον σερβοκινητήρα σε μια συγκεκριμένη γωνία είναι:

servo.write(γωνία);

Συνδεσμολογία σερβοκινητήρα: https://components101.com/motors/servo-motor-basics-pinout-datasheet

Πηγή κώδικα: https://create.arduino.cc/projecthub/arcaegecengiz/how-to-use-servo-motors-with-arduino-b02bed

Ανιχνευτής φωτός με Arduino

Υλικό

  • Arduino
  • Καλώδιο USB
  • Breadboard
  • Μονάδα φωτοαντίστασης
  • Ποτενσιόμετρο 10 ΚΩ

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

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

Φάση 1

  • Αναγνωρίστε τις συνδέσεις του ανιχνευτή
  • Συνδέστε τον ανιχνευτή με το Arduino, συνδέοντας την αναλογική έξοδο στην είσοδο A0 του Arduino
  • Χρησιμοποιήστε τον παρακάτω κώδικα και δείτε τα αποτελέσματα στο Monitor του Arduino web editor και στο ενσωματωμένο LED του Arduino
/*
Author: Danny van den Brande, Arduinosensors.nl. BlueCore Tech.
In this example we use the Photoresistor as a switch.
Its just some basic code, you can adjust the value at the if statement between 0 and 1023.
 */
int sensorValue;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(A0, INPUT);
  Serial.begin(9600);

}

void loop() {
  sensorValue = analogRead(A0);
  Serial.println(sensorValue, DEC);

  if(sensorValue > 200)
  {
    Serial.println("Dark");
    digitalWrite(LED_BUILTIN, HIGH);
  }
  else
  {
    Serial.println("Light");
    digitalWrite(LED_BUILTIN, LOW);
  }
  delay(100);
}

Φάση 2

  • Συνδέστε το ποτενσιόμετρο έτσι ώστε να δίνετε τάση μεταξύ 0V και 5V σε μια αναλογική είσοδο του Arduino.
  • Μετατρέψτε τον παραπάνω κώδικα έτσι ώστε το ποτενσιόμετρο να ελέγχει το κατώφλι ανάμεσα στον υψηλό και τον χαμηλό φωτισμό που ανιχνεύει η φωτοαντίσταση.

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

pinMode(A5, INPUT);

Η τιμή που διαβάζει αυτή η είσοδος εκφράζεται από την συνάρτηση:

analogRead(A5)

Προέλευση κώδικα: https://create.arduino.cc/projecthub/vandenbrande/arduino-photo-resistor-example-ky-018-4d2724

Ανιχνευτής δόνησης (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