Projek Arduino Fortune Teller




Komponen yang diperlukan :

1. Arduino board 

2. Breadbord 

3. Kabel Jumper 

4. 16x2 LCD screen (Hitachi HD44780 compatible)

5. Tilt ball switch

6. 50k-ohm potentiometer

7. 1k-ohm resistor

Diperlukan librari LiquidCristal


Cara Kerja :

The Magic 8 Ball, mainan baru yang dibuat pada 1950-an, terbuat dari bola berongga di mana dadu 20 sisi mengapung dalam alkohol. Saat Anda mengajukan pertanyaan kepada bola dan menggoyangnya, satu sisi dadu mengapung dan menampilkan jawaban Anda di jendela bola.

Untuk projek ini, Anda akan menggunakan sakelar kemiringan bola, yang ditunjukkan pada Gambar. Sakelar bola miring terdiri dari bola logam di dalam selubung logam yang membuat sambungan saat sakelar dalam posisi tegak. Jika Anda memiringkan sakelar, bola bergeser dan sambungan terputus. Ada banyak sakelar kemiringan yang tersedia, dan semuanya melakukan pekerjaan yang sama. Dalam proyek ini, Anda akan mengajukan pertanyaan dan menggoyang saklar. Ketika sakelar kembali tegak, ia terhubung ke Arduino, yang kemudian secara acak memilih respons dari delapan jawaban yang telah ditetapkan dan menampilkannya di layar LCD.


Potensiometer mengontrol kontras layar LCD.


Cara membuat rangkaian :

1. Siapkan layar LCD.

2. Tempatkan layar LCD Anda di breadbord, masukkan pin header ke dalam lubang breadbord. Tempatkan juga potensiometer di breadbord, dan gunakan breadbord dan kabel jumper untuk menghubungkan layar LCD Anda, Arduino, dan potensiometer.


3. Ingatlah untuk menggunakan rel breadbord untuk membuat beberapa koneksi ke pin Arduino GND, seperti yang ditunjukkan pada Gambar.


4. Anda seharusnya sudah menghubungkan pin tengah potensiometer 10k ohm ke pin LCD 3 (VO). Sekarang hubungkan salah satu pin luar ke GND dan yang lainnya ke +5V. Ini mengontrol kontras layar LCD Anda.

5. Masukkan sakelar kemiringan ke breadbord Anda dan pasang satu sisi ke pin 6 Arduino melalui resistor 1k-ohm dan sisi lainnya ke GND.

6. Hubungkan rel breadbord Anda ke Arduino +5V dan GND untuk daya.
7. Konfirmasikan bahwa pengaturan Anda cocok dengan Gambar, dan unggah kode di "Sketsa".

Sketch program arduino :

Kode untuk proyek ini cukup sederhana. Saat Anda menyalakan Arduino, layar LCD menampilkan pesan Ajukan Pertanyaan. Menggoyangkan sakelar kemiringan akan mengaktifkan sketsa, dan Arduino memilih jawaban acak dari delapan jawaban yang tersedia (kasus 0-7).

Inilah baris dalam kode yang melakukan ini:

reply = random(8);


Untuk menambahkan respons Anda sendiri, ubah nilai 8 ke jumlah kemungkinan respons, lalu tambahkan respons Anda (atau kasus) dengan gaya yang sama seperti yang lain:


case 8:

 lcd.print("You betcha");

 break;


Berikut sketsa lengkapnya:



#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Pins attached to LCD screen
const int switchPin = 6; // Pin attached to tilt switch
int switchState = 0;
int prevSwitchState = 0;
int reply;
void setup() {
lcd.begin(16, 2);
pinMode(switchPin, INPUT); // Set tilt switch pin as an input
lcd.print("FORTUNE TELLER"); // Print this on line 1
lcd.setCursor(0, 1);
lcd.print("Ask a Question"); // Print this on line 2
}
void loop() {
switchState = digitalRead(switchPin); // Read tilt switch pin
if (switchState != prevSwitchState) {
if (switchState == LOW) { // If circuit is broken, give answer
reply = random(8); // Reply is 1 of 8 random cases as below
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("The answer is: "); // Print this to the screen
lcd.setCursor(0, 1);

switch (reply) { // Reply will be one of the following cases
case 0:
lcd.print("Yes");
break;

case 1:
lcd.print("Probably");
break;

case 2:
lcd.print("Definitely");
break;

case 3:
lcd.print("Don't be silly");
break;

case 4:
lcd.print("Of course");
break;

case 5:
lcd.print("Ask again");
break;

case 6:
lcd.print("Doubtful");
break;

case 7:
lcd.print("No");
break;
}
}
}
prevSwitchState = switchState; // Reset the switch
}

Demikianlah projek arduino Fortune Teller, selamat mencoba dan semoga bermanfaat.