Oleh Muhammad Ilyasaa dalam Tutorial Arduino
Tahap Kesukaran : Pertengahan, Mempunyai Asas Arduino

Belum mempunyai asas arduino? Jika Ya, lakukan tutorial yang lebih mudah dahulu

>> Arduino Bagaimana Untuk Menggunakan Modul GSM SIM900A

>> Arduino Bagaimana Untuk Menggunakan Sensor Jarak Ultrasonik HC-SR04

Sistem di bawah ini tidaklah direka untuk kegunaan Sistem Pengeluar Tisu Automatik yang sebenar. Ianya direka untuk tujuan pembelajaran reka cipta elektronik. Walau bagaimanapun, konsep ini boleh diguna pakai dalam membina Sistem Pengeluar Tisu Automatik yang sebenar.

>> pengenalan <<

Untuk tutorial kali ini, kita akan membuat satu sistem untuk mengeluarkan tisu secara automatik daripada tempat simpanan tisu. Di dalam sistem ini, pengguna akan meletakkan tangan di hadapan sensor jarak jenis ultrasonik yang berada pada tempat simpanan tisu bagi memberi arahan untuk memusingkan motor servo 360 darjah lalu mengeluarkan tisu. Bilangan tisu yang dikeluarkan akan direkodkan ke dalam sistem. Pemilik sistem pengeluar tisu automatik boleh memadamkan rekod pusingan dengan menghantar mesej SMS Restart ke nombor kad SIM yang terdapat pada sistem. Sistem akan membalas mesej Phone Number Registered bagi menandakan rekod pusingan di dalam sistem telah berjaya dipadamkan dan rekod pusingan kembali menjadi kosong. Jika bilangan pusingan melebihi nilai yang ditetapkan di dalam kod, mesej Please Refill Your Tissue akan dihantarkan. Mesej ini akan dihantar setiap 8 minit selagi mesej Restart tidak dihantar. Ini bagi memberi amaran kepada pemilik sistem yang tempat simpanan tisu sudah kehabisan tisu.

>> Komponen Apa yang anda perlukan <<

Untuk tutorial ini, anda perlukan :

>> LITAR arduino <<

Litar skematik fritzing : Litar Skematik Fritzing.fzz

Litar skematik word : Litar Skematik Word.docx

>> Kod Arduino <<

/* Programmer : Muhammad Ilyasaa Bin Abdul Rahman
 * More info at https://www.nadieleczone.com.my
 */

// Library
#include <SoftwareSerial.h>
#include <String.h>
#include <EEPROM.h>
#include <NewPing.h>
#include <Servo.h>

// Servo
Servo myservo; 
int pinServo = 2;
int rotation = 0;
int rotationAlarm = 5;
int rotationTime = 500;
int rotationAngle = 180; //0 or 180
int alertSent = 0;
int firstSent = 0;

// Ultrasonic Sensor
#define TRIGGER_PIN  4
#define ECHO_PIN     3
#define MAX_DISTANCE 20
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int distance;

// GSM
SoftwareSerial gsmSerial(8, 7); // RX, TX
char phoneNumber[100];
int stopper1 = 0;
int stopper2 = 0;

//EEPROM
int address = 0;

void setup()
{
  // Prepare servo
  myservo.attach(pinServo);  
  myservo.write(90);

  // Prepare GSM
  .
  .
  .
  .
}
 
void loop()
{

  static unsigned long timer = millis();
  static int deciSeconds = 0;
    
  // GSM Read and Sent SMS
  String temp;

  while (gsmSerial.available())
  {
    char c = gsmSerial.read();
    temp.concat(c);
    delay(10);
  }      

  .
  .
  .
  . 
}

Library Arduino : NewPing.zip, Cara cara pemasangan library NewPing

Kod Penuh : tissue.ino

>> Sedikit penerangan tentang motor servo 180 darjah dan 360 darjah <<

Kedudukan tanduk atau gear motor servo 180 darjah ditentukan oleh tempoh masa denyutan elektronik (electronic pulse) yang diberikan kepada motor servo. Motor servo akan memproses denyutan elektronik setiap 20 milisaat. Sekiranya denyutan elektronik yang diberikan kepada motor servo adalah 1 milisaat, maka kedudukan tanduk atau gear motor servo adalah pada sudut 0 darjah. Jika denyutan elektronik yang diberikan kepada motor servo adalah 1.5 milisaat, maka kedudukan tanduk atau gear motor servo adalah pada sudut 90 darjah. Jika denyutan elektronik yang diberikan kepada motor servo adalah 2 milisaat, maka kedudukan tanduk atau gear motor servo adalah pada sudut 180 darjah.

Bagi motor servo 360 darjah pula, ianya boleh berputar 360 darjah penuh mengikut arus jam mahupun melawan arus jam. Walaubagai manapun, kelemahan servo 360 darjah adalah ianya tidak boleh bergerak ke arah yang dikehendaki seperti motor servo 180 darjah. Ianya hanya boleh berpusing sama ada mengikut arus jam, melawan arus jam atau kekal di satu tempat (tidak bergerak).

Bagi mengawal servo 360 darjah ini, pengguna boleh memberikan denyutan elektronik selama 1.5 milisaat bagi mendapatkan kedudukan statik tidak bergerak. Denyutan elektronik yang lebih panjang akan memberikan putaran mengikut arah pusingan jam manakala denyutan elektronik yang lebih pendek akan memberikan putaran melawan arah pusingan jam. Jom kita tengok bagaimana cara untuk menggunakan sistem pengeluar tisu automatik ini pula …

>> memasukkan nombor telefon ke dalam arduino uno <<

>> Menggunakan sistem <<

Siapakan litar dan mula untuk memuat naik kod penuh Pengeluar Tisu Automatik Menggunakan Sensor Ultrasonik Dengan Motor Servo di atas ke dalam papan Arduino Uno. Selepas berjaya memuat naik, putuskan sambungan papan Arduino Uno dengan komputer dan hubungkan kabel USB papan Arduino Uno kepada Bekalan kuasa luar 5V. Hal ini kerana motor servo dan modul gsm memerlukan bekalan kuasa yang tinggi. USB port yang terdapat pada komputer atau laptop hanya mampu membekalkan bekalan kuasa yang rendah jika dibandingkan dengan bekalan kuasa luar yang mampu membekalkan arus setinggi 2 Ampere.

Nota : Bekalan kuasa luar 5V yang digunakan mempunyai USB port yang boleh terus dihubungkan kepada USB port papan Arduino Uno. Kami jarang menggunakan bekalan kuasa luar 9V atau 12V kerana Voltage Regulator di atas papan Arduino Uno akan menjadi panas apabila dihidupkan dalam jangka masa yang lama. Bagi mengelakkan hal ini berlaku, kami gemar menggunakan bekalan kuasa luar 5V yang langsung tidak menggunakan laluan Voltage Regulator di atas papan Arduino Uno dan secara terus mengelakkan Voltage Regulator tersebut menjadi panas.

>> Tahniah, anda hebat <<

Anda telah berjaya menyelesaikan tutorial Pengeluar Tisu Automatik Menggunakan Sensor Ultrasonik Dengan Motor Servo. Apa lagi yang ditunggu, menggunakan arahan yang terdapat pada Penggunaan Kali Pertama dan Cara Operasi, cuba bermain main dan lihat bagaimana sistem ini berfungsi. Jika anda ingin mengubah nilai maksimum pusingan motor servo 360 darjah sebelum sistem menghantar mesej amaran yang mengatakan tisu sudah habis, anda boleh mencari kod di bawah di dalam kod penuh dan mengubah nilai 5 kepada nilai yang anda kehendaki.

int rotationAlarm = 5;

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini