REKA BENTUK
ELEKTRONIK
Mikroprosesas digunakan
Merupakan satu cip di di dalam peranti
peranti mikropengawal mikropengawal sebagai
unit pemprosesan.
CPU RAM
INPUT &
ROM
OUTPUT
8051
•Merupakan produk Intel
•8 –bit mikropengawal dan mempunyai 40 pin.
•Serta 4kb ROM, 128 bit RAM dan 16 bit pemasa.
Dilengkapi dengan
perumah bagi Mempunyai 6 analog dan
memastikan ia tidak 13 digital input/output
mudah pecah
Akhirnya pemasangan
telah siap dan boleh Klik “Yes” dan setuju Klik dua kali di tetikus
melakukan segala pertannyaan untuk melakukan
pengaturcaraan di Ketika pemasangan. pemasangan.
Arduino IDE
MODUL
PENDERIA
KIT DI
LATIHAN
DALAMREKA
MIKROPENGAWAL
BENTUK ELEKTRONIK
ARDUINO 11
1.5 Komponen Pada Arduino UNO
Pengatur 16 MHz
Voltan Crystal
Butang Reset
MIKRO-
INPUT PENGAWAL OUTPUT
LDR
LED MOTOR
KAMERA
LCD
ANALOG DIGITAL
Ultrasonic Sensor
IR Sensor
Sound Sensor (HC-SR04)
Penerangan
• HC-SR505 Mini PIR Motion Sensor adalah berdasarkan
teknologi inframerah, dengan kawalan automatik, kepekaan
tinggi dan penggunaan tenaga yang rendah
Aplikasi
• Lampu
• Permainan
• Produk keselamatan
• Kawalan di industri
Spesifikasi
• Voltan DC : 5V
• Masa : 8S +- 30%
• Saiz : 10 X 23mm
• Jarak pengesan : 3 meter
• Ketahanan suhu : -20 hingga 80 darjah Celsius
Penerangan
• IR Sensor merupakan penderia pengesan halangan dan
disertakan pelaras kepekaan. Ia menggunakan teknologi
pantulan apabila halangan berlaku di hadapannya.
Aplikasi
• Sebagai produk keselamatan
• Pengesan barangan di pasar raya
• Digunakan di industri
• Suis lampu
Spesifikasi
• Voltan DC : 5V
• Darjah kepekaan : 35 darjah
• Saiz : 3.1cm X 1.5cm
• Jarak pengesan : 2cm hingga 10cm
• Ketahanan suhu : -40 hingga 65 darjah Celsius
Penerangan
• LDR (LIGHT DEPENDENT RESISTOR) Sensor merupakan
penderia yang digunakan untuk mengesan kehadiran cahaya.
Amat peka pada cahaya dan mempunyai pelaras kepekaan pada
cahaya
Aplikasi
• Suis lampu jalan raya
• Digunakan di lampu kenderaan
• Sebagai produk keselamatan
Spesifikasi
• Voltan DC : 3.3V-5V
• Arus :15mA
• Rintangan kepekaan : 50Ω hingga100kΩ
• Saiz : 3.2cm X 1.4cm
• Ketahanan suhu : -25 hingga 75 darjah Celsius
- (Ground)
Digital signal output
+ (Positive power supply)
Penerangan
• Modul DS18B20 merupakan penderia suhu keluaran Maxim
yang menggunakan keluaran signal digital dan mempunyai reka
bentuk hampir sama dengan LM35 yang dibangunkan oleh
Texas yang menggunakan keluaran signal analog.
Aplikasi
• Bagi mengenalpasti suhu bilik
• Sistem pencegahan kebakaran
• Sistem penyejukan
Spesifikasi
• Voltan DC : 3.0V-5V
• Kepekaan suhu: -55 hingga 125 darjah celcius
• Saiz : 3.0cm X 1.0cm X 2.0cm
• Mempunyai keluaran signal digital di modul
MODUL
PENDERIA
KIT DI
LATIHAN
DALAMREKA
MIKROPENGAWAL
BENTUK ELEKTRONIK
ARDUINO 20
2.2 Jenis dan Fungsi Deria
- (Ground)
+ (Positive power supply)
Analog signal output
Penerangan
• Penderia air merupakan sebuah peranti yang boleh mengesan
air. Perintang 1MΩ di beberapa bahagian dan beberapa
bahagian sebagai tiada pengalir. Penderia ini juga menggunakan
analog sebagai isyarat signal.
Aplikasi
• Mengesan kebocoran air
• Penggeras paras air
• Pengesan air hujan
Spesifikasi
• Voltan DC : 5V
• Arus : <20mA
• Suhu operasi: 10 hingga 30 darjah celcius
• Saiz : 6.5cm X 2.0cm x 0.8cm
• Voltan signal : 0 hingga 4.2V
int
• Simpanan nombor 16 bit yang kecil dan boleh memberikan nama kepada nilai sebelum
pengaturcaraan bermula
long
• Simpanan nombor yang lebih besar bagi 32 bit
float
• Apabila terdapat perpuluhan di dalam nombor
Boolean
• Adanya salah atau betul
char
• Simpanan huruf yang menggunakan 8 bit
{ } (curly braces)
• Sebagai pembuka kod yang dimulakan dengan { dan diakhiri } .
; (semicolon)
• Untuk menamatkan program dan kod.
#define
• membolehkan pengaturcara memberi nama kepada nilai tetap sebelum bermula
#include
• Digunakan apabila libraries luar diguna seperti penggunaan LCD dan bergantung pada jenis
sensor.
Pastikan ada
hubungan Internet Klik Tools yang berada
Buka Arduino IDE
sebelum memulakan di atas kiri
pemasangan Libraries.
void setup()
{
Serial.begin(9600); //baud serial monitor
pinMode(PIR_Sensor, INPUT); //PIR_Sensor sebagai signal masukan
pinMode (LED, OUTPUT); //LED sebagai hasil keluaran
}
void loop() {
if(digitalRead(PIR_Sensor)==HIGH) { //apabila signal PIR Sensor dihantar
digitalWrite(LED, HIGH); //LED menyala dengan arahan HIGH
Serial.println("Terdapat Pergerakan"); //Tindak balas serial monitor
} else { //jika tidak
Serial.println("Tiada Pergerakan"); //tindak balas serial monitor
digitalWrite(LED, LOW); //LED tidak menyala dengan arahan
LOW
}
delay(1000); //proses terhenti 1 saat
}
• Kemudian, muat naik kod kedalam Arduino UNO dengan klik butang
upload. Semakin panjang kod, semaking tinggi masa di ambil untuk
muat naik kod.
• Uji litar anda dengan melakukan Gerakan tangan di hadapan
penderia pergerakan bagi memerhati tindak balas.
void setup()
{
Serial.begin(9600); //baud serial monitor
pinMode(IR_Sensor, INPUT); //PIR_Sensor sebagai signal masukan
pinMode (LED, OUTPUT); //LED sebagai hasil keluaran
}
void loop() {
if(digitalRead(IR_Sensor)==LOW) { //apabila signal PIR Sensor dihantar
digitalWrite(LED, HIGH); //LED menyala dengan arahan HIGH
Serial.println(“Ada halangan"); //Tindak balas serial monitor
} else { //jika tidak
Serial.println("Tiada halangan"); //tindak balas serial monitor
digitalWrite(LED, LOW); //LED tidak menyala dengan arahan
LOW
}
delay(1000); //proses terhenti 1 saat
}
• Kemudian, muat naik kod kedalam Arduino UNO dengan klik butang
upload. Semakin panjang kod, semaking tinggi masa di ambil untuk
muat naik kod.
• Uji litar anda dengan melakukan halangan dihadapan penderia bagi
melihat tidak balas litar anda.
void loop() {
int val = digitalRead(LDR_Sensor);
Serial.println(val);
if( val == HIGH) { //apabila signal LDR Sensor dihantar
digitalWrite(LED, HIGH); //LED menyala dengan arahan HIGH
Serial.println(“Ada cahaya"); //Tindak balas serial monitor
} else { //jika tidak
Serial.println("Tiada cahaya"); //tindak balas serial monitor
digitalWrite(LED, LOW); //LED tidak menyala dengan arahan LOW
}
delay(1000); //proses terhenti 1 saat
}
• Kemudian, muat naik kod kedalam Arduino UNO dengan klik butang
upload. Semakin panjang kod, semaking tinggi masa di ambil untuk
muat naik kod.
• Uji litar anda dengan melakukan halangan cahaya terhadap penderia.
Pastikan halangan tersebut betul-betul gelap bagi menghalang
kemasakukan cahaya
OneWire oneWire(Sensor_Suhu);
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(9600); //baud serial monitor
sensors.begin(); //sensor mula
}
void loop(void) {
sensors.requestTemperatures(); //permintaan suhu
Serial.println();
Serial.print("Suhu ialah: "); //text
Serial.print(sensors.getTempCByIndex(0)); //bacaan suhu
delay(1000); } //terhenti 1 saat
• Kemudian, muat naik kod kedalam Arduino UNO dengan klik butang
upload. Semakin panjang kod, semaking tinggi masa di ambil untuk
muat naik kod.
• Uji litar anda dengan melakukan bacaan suhu bilik. Bacaan boleh
dilakukan dengan menekan butang Serial Monitor.
void setup()
{
Serial.begin(9600); //baud serial monitor
pinMode(Power, OUTPUT); //bekalan keluaran di penderia air
digitalWrite(Sensor_Air, LOW); //penderia air tidak aktif
}
void loop() {
digitalWrite(Power, HIGH); //bekalan dimasukkan
delay(10); //terhenti 10 millisaat
value = analogRead(Sensor_Air); //nilai diambil
digitalWrite(Power, LOW); //bekalan ditutup
Serial.print(“Nilai penderia: "); //teks
Serial.println(value); //nilai air
delay(1000); //terhenti 1 saat
}
• Kemudian, muat naik kod kedalam Arduino UNO dengan klik butang
upload. Semakin panjang kod, semaking tinggi masa di ambil untuk
muat naik kod.
• Uji litar anda dengan melakukan bacaan nilai penderia air. Bacaan
boleh dilakukan dengan menekan butang Serial Monitor. Amaran,
lakukan dengan berhati-hati.
• Sambungan
• Di dalam kod ini, anda dapat memahami cara void bekerja dan cara
delay beroperasi.
int value = 0;
void setup()
{
Serial.begin(9600);
pinMode(BUZZER, OUTPUT); // buzzer sebagai keluaran
pinMode(POWER, OUTPUT); // power sebagai keluaran di penderia air
pinMode(LED, OUTPUT); // LED sebagai keluaran
digitalWrite(POWER, LOW); // penderia air ditutup
digitalWrite(BUZZER, LOW); // buzzer ditutup
}
void loop()
{
digitalWrite(POWER, HIGH); // penderia air dihidupkan
delay(10); // tunggu 10 milliseconds
value = analogRead(SENSOR_AIR); // signal analog daripada penderia air
digitalWrite(POWER, LOW); // penderia air ditutup
• Sambungan
else
{
digitalWrite(BUZZER, LOW); // selain itu, ia buzzer dimatikan
digitalWrite(LED, LOW); // LED dimatikan
}
}
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define Sensor_Suhu 2
float temp;
LiquidCrystal_I2C lcd(0x27, 16, 2);
OneWire oneWire(Sensor_Suhu);
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
Serial.println();
Serial.print("Suhu sekarang: ");
Serial.print(sensors.getTempCByIndex(0));
Serial.print(" C");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu sekarang: ");
lcd.setCursor(0, 1);
lcd.print(sensors.getTempCByIndex(0));
lcd.print(" C");
delay(5000); }
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define IRSensor 8 //pin penderia inframerah
int count = 0; //pengiraan bermula daripada 0
boolean state = true;
LiquidCrystal_I2C lcd(0x27, 16, 2); //nyatakan saiz LCD anda
void setup()
{
Serial.begin(9600); //serial monitor
lcd.init ();
lcd.begin(16,2);
pinMode(IRSensor, INPUT); //penderia inframerah sebagai input
lcd.backlight(); //lampu LCD menyala
lcd.clear(); //paparan kosong di LCD
lcd.setCursor(1,0); //baris pertama
lcd.print("Kira Bilangan : "); //teks pengiraan
}
void loop()
{
if (!digitalRead(IRSensor) && state){ //jika ada signal di penderia
count++; //penambahan berlaku
state = false;
lcd.setCursor(1,1); //Baris kedua
lcd.print(count); //hasil kiraan
delay(10); }
if (digitalRead(IRSensor)) {
state = true;
delay(10);
} }
void setup()
{
Serial.begin(9600);
PinMode(PIR, INPUT); //PIR sebagai masukan
PinMode(LDR, INPUT); //LDR sebagai masukan
PinMode(LED, INPUT); //LED sebagai keluaran
}
void loop()
{
int val = digitalRead (LDR); //LDR sebagai digital
Serial.println (val); //nilai 0 sebagai tiada cahaya
if(digitalRead(LDR)==HIGH) //sekiranya LDR nilai 1
if(digitalRead(PIR)==HIGH) //PIR juga ada signal masukan
{
digitalWrite(LED, HIGH); //lampu LED hidup
Serial.println("Lampu Dibuka");
}
else {
Serial.println("Lampu tidak buka");
digitalWrite(LED, LOW); //lampu LED tidak hidup
}
delay(1000); //lewat 1 saat
}