Projek Arduino Ghost Detector ( Detektor hantu)
Ini adalah projek benar benar sederhana yang tidak membutuhkan waktu lama untuk mempersiapkan, sehingga anda mulai mendeteksi hantu segera.
Komponen yang diperlukan :
1. Arduino board
2. Breadbords
3. Kabel jumper
4. 3 LED merah
5. 1 LED kuning
6. 6 LED hijau
7. 10 220 ohm resistor
8. Panjang 20 cm kawat inti tunggal
9. 1m ohm resistor
Cara Kerja :
Oke, jadi saya mungkin sedikit meregangkan dengan menyebut proyek ini sebagai pendeteksi hantu. Proyek ini sebenarnya mendeteksi medan elektromagnetik, tetapi banyak orang percaya ini adalah cara untuk mengetahui apakah ada hantu atau roh di sekitar.
Dalam proyek ini, Anda akan menyiapkan antena pendeteksi hantu dan sistem grafik batang LED untuk mengetahui apakah ada aktivitas elektro magnetik tingkat tinggi di sekitar. Seutas kawat telanjang bertindak sebagai antena untuk menangkap medan elektromagnetik dalam radius dua meter. Tergantung pada kekuatan sinyal, LED akan menyala secara berurutan: semakin kuat sinyal, semakin banyak LED yang menyala. Nyalakan Arduino, dan arahkan detektor Anda ke ruangan untuk mendeteksi keberadaan yang tidak biasa. Ketahuilah bahwa peralatan listrik seperti televisi akan menyebabkan detektor menari-nari karena sinyal yang dipancarkannya.
Cara membuat rangkaian projek :
1. Tempatkan LED ke breadborda dengan kaki di kedua sisi bagian tengah, seperti yang ditunjukkan pada Gambar. Saya mulai dengan LED kuning, kemudian menggunakan enam LED hijau dan tiga merah untuk membuat skala dari kiri ke kanan. Anda dapat menggunakan LED warna apa saja dan memposisikannya dalam urutan yang Anda inginkan.
Medan Elektromagnetik
Medan listrik diciptakan oleh perbedaan tegangan: semakin tinggi tegangan, semakin kuat medan yang dihasilkan. Medan magnet tercipta ketika arus listrik mengalir: semakin besar arus, semakin kuat medan magnet. Medan elektromagnetik (EMF) dapat dianggap sebagai kombinasi dari keduanya.
Medan elektromagnetik hadir di mana-mana di lingkungan tetapi tidak terlihat oleh mata manusia. Medan listrik dihasilkan oleh penumpukan muatan listrik lokal di atmosfer dan terkait dengan badai petir. Bumi terus-menerus memancarkan medan magnet. Ini digunakan oleh burung dan ikan untuk navigasi dan menyebabkan jarum kompas mengarah ke utara.
2. Hubungkan satu kaki resistor 220 ohm ke setiap kaki LED negatif, dan masukkan kaki resistor lainnya ke rel GND papan tempat memotong roti (lihat Gambar). Hubungkan setiap kaki LED positif ke pin digital 2 hingga 11 secara bergantian.
#define NUMREADINGS 25 // Raise number to increase data smoothing
int senseLimit = 1023; // Raise number to decrease sensitivity of
// the antenna (up to 1023 max)
int probePin = 5; // Set analog pin 5 as the antenna pin
int val = 0; // Reading from probePin
// Pin connections to LED bar graph with resistors in series
int LED1 = 11;
int LED2 = 10;
int LED3 = 9;
int LED4 = 8;
int LED5 = 7;
int LED6 = 6;
int LED7 = 5;
int LED8 = 4;
int LED9 = 3;
int LED10 = 2;
int readings[NUMREADINGS]; // Readings from the analog input
int index = 0; // Index of the current reading
int total = 0; // Running total
int average = 0; // Final average of the probe reading
void setup() {
pinMode(2, OUTPUT); // Set LED bar graph pins as outputs
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
Serial.pinMode(9600); // Initiate serial connection with IDE for
// debugging and so on
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; // Initialize all readings to 0
}
void loop() {
val = analogRead(probePin); // Take a reading from probe
if (val >= 1) { // If the reading isn't zero, proceed
val = constrain(val, 1, senseLimit); // If the reading is
// higher than the current
// senseLimit value, update
// senseLimit value with
// higher reading
val = map(val, 1, senseLimit, 1, 1023); // Remap the constrained
// value within a 1 to
// 1023 range
total -= readings[index]; // Subtract the last reading
readings[index] = val; // Read from the sensor
total += readings[index]; // Add the reading to the total
index = (index + 1); // Advance to the next index
if (index >= NUMREADINGS) // If we're at the end of the array
index = 0; // loop around to the beginning
average = total / NUMREADINGS; // Calculate the average reading
if (average > 50) { // If the average reading is higher than 50
digitalWrite(LED1, HIGH); // turn on the first LED
}
else { // If it's not
digitalWrite(LED1, LOW); // turn off that LED
}
if (average > 150) { // And so on
digitalWrite(LED2, HIGH);
}
else {
digitalWrite(LED2, LOW);
}
if (average > 250) {
digitalWrite(LED3, HIGH);
}
else {
digitalWrite(LED3, LOW);
}
if (average > 350) {
digitalWrite(LED4, HIGH);
}
else {
digitalWrite(LED4, LOW);
}
if (average > 450) {
digitalWrite(LED5, HIGH);
}
else {
digitalWrite(LED5, LOW);
}
if (average > 550) {
digitalWrite(LED6, HIGH);
}
else {
digitalWrite(LED6, LOW);
}
if (average > 650) {
digitalWrite(LED7, HIGH);
}
else {
digitalWrite(LED7, LOW);
}
if (average > 750) {
digitalWrite(LED8, HIGH);
}
else {
digitalWrite(LED8, LOW);
}
if (average > 850) {
digitalWrite(LED9, HIGH);
}
else {
digitalWrite(LED9, LOW);
}
if (average > 950) {
digitalWrite(LED10, HIGH);
}
else {
digitalWrite(LED10, LOW);
}
Serial.println(val); // Use output to aid in calibrating
}
}
1 Comments
Luar biasa projectnya, mantap mas aspul
ReplyDelete