Denny Darlis [DYD] - DIPLOMA OF TELECOMMUNICATION TECHNOLOGY – MICROCONTROLLER DIGITAL SYSTEM AND MECHATRONICS APPLICATION LABORATORY – APPLIED VISIBLE LIGHT COMMUNICATION RESEARCH GROUP TELKOM UNIVERSITY
Sensor cahaya adalah sensor yang bisa mendeteksi perubahan cahaya. Salah satu yang biasa digunakan adalah modul sensor cahaya menggunakan LDR. Modul LDR, juga dikenal sebagai Light Dependent Resistor atau Photoresistor, adalah komponen yang dapat mendeteksi intensitas cahaya di lingkungan. komponen ini banyak digunakan dalam berbagai aplikasi seperti sistem pencahayaan otomatis, perangkat keamanan, dan pemantauan lingkungan.
Modul Sensor LDR terdiri dari fotoresistor yang resistansinya bervariasi dengan intensitas cahaya yang jatuh di atasnya. Saat dihubungkan dengan Arduino, sensor ini memungkinkan papan untuk mendeteksi dan merespons perubahan tingkat cahaya. Ini dapat berguna untuk proyek yang mengharuskan Arduino mengaktifkan atau menonaktifkan fungsi tertentu berdasarkan kondisi cahaya sekitar. Sepanjang panduan ini, kami akan membahas hal-hal penting untuk menghubungkan Modul Sensor LDR ke papan Arduino UNO, menulis kode untuk membaca tingkat intensitas cahaya, dan menerapkan aplikasi dasar seperti Lampu yang diaktifkan kegelapan (Dark Activated Light).
Modul Sensor LDR (Resistor Tergantung Cahaya)
Modul fotoresistor berfungsi sebagai perangkat pendeteksi intensitas cahaya di berbagai lingkungan. Ini memiliki banyak kegunaan, termasuk menyesuaikan kecerahan perangkat, membedakan antara siang dan malam, atau memicu sakelar lampu.
Pada inti modul ini terletak fotoresistor, resistor yang nilainya berubah dengan paparan cahaya. Saat intensitas cahaya meningkat, resistansi fotoresistor berkurang, menunjukkan fotokonduktivitas.
Dalam aplikasi praktis, fotoresistor merupakan bagian integral dari sirkuit yang sensitif terhadap cahaya, memungkinkan sakelar yang diaktifkan cahaya dan diaktifkan gelap dengan berfungsi sebagai semikonduktor resistif. Resistansinya dapat bervariasi secara signifikan berdasarkan kondisi cahaya, mencapai hingga beberapa megaohm (MΩ) dalam kegelapan, tetapi turun menjadi hanya beberapa ratus ohm dalam cahaya terang.
Di bawah ini adalah simbol elektronik yang mewakili fotoresistor.
Kerja LDR (Light Dependent Resistor)
Prinsip kerja sensor Light Dependent Resistor (LDR) didasarkan pada perubahan resistansinya sebagai respons terhadap intensitas cahaya yang bervariasi. LDR terutama terdiri dari fotoresistor, komponen yang resistansinya bervariasi dengan jumlah cahaya yang terpapar.
Dalam kondisi cahaya redup, fotoresistor memiliki resistansi tinggi, memungkinkan arus listrik minimal melewatinya. Saat intensitas cahaya meningkat, resistansi fotoresistor berkurang, memungkinkan lebih banyak arus mengalir. Karakteristik ini memungkinkan LDR bertindak sebagai perangkat yang peka terhadap cahaya.
Kemampuan LDR untuk mengubah resistensinya dengan perubahan kondisi cahaya dimanfaatkan dalam berbagai aplikasi, di mana ia bertindak sebagai sensor pasif, merespons perubahan cahaya lingkungan. Respons ini murni didasarkan pada sifat fotoresistif dari bahan yang digunakan dalam LDR, tanpa memerlukan sumber daya eksternal untuk memodifikasi sensitivitasnya. Kesederhanaan dan efektivitas prinsip ini membuat LDR banyak digunakan dalam sirkuit yang membutuhkan kemampuan penginderaan cahaya.
Skema Modul Sensor LDR
Fitur Modul Sensor LDR
Menggunakan sensor resistansi fotosensitif sensitif
Sinyal keluaran komparator bersih, bentuk gelombang yang baik, kemampuan mengemudi, lebih dari 15mA
Dengan potensiometer yang dapat disesuaikan untuk menyesuaikan kecerahan deteksi cahaya
Tegangan kerja adalah 3.3V-5V
Bentuk keluaran: Output switching digital DO (0 dan 1) dan output tegangan analog AO
Lubang baut tetap untuk pemasangan yang mudah
Menggunakan komparator LM393 tegangan lebar
Ukuran PCB: 3.1cm x 1.4cm
Pinout Modul Sensor LDR
Modul Sensor LDR memiliki 4 pin.
VCC: catu daya positif 3.3-5V
GND: catu daya negatif
LAKUKAN: Keluaran sinyal switching TTL
AO: Keluaran analog
Menghubungkan Modul Sensor LDR (Photoresistor) dengan Arduino
Sekarang mari kita antarmuka Modul Sensor LDR dengan Arduino untuk membuat Sistem Cahaya Aktif Gelap. Berikut adalah diagram koneksi sederhana.
Mulailah dengan menghubungkan pin VCC sensor LDR ke output 5V pada Arduino untuk mendapatkan daya. Kemudian, sambungkan pin GND LDR ke salah satu pin GND pada Arduino. Akhirnya sambungkan Pin Output Analog (A0) ke A0 Arduino.
Sebagai indikasi, kami menggunakan LED yang terhubung ke pin digital D2 Arduino melalui resistor 220-0hm.
Kode Sumber/Program
Bagian pengkodean dari proyek ini ditulis dalam Arduino. Mari kita lihat kode untuk menghubungkan Modul Sensor LDR (Photoresistor) dengan Arduino UNO. Kodenya sangat sederhana. Proyek ini adalah sistem sakelar kontrol cahaya. Ide utamanya adalah menggunakan modul sensor LDR untuk mendeteksi tingkat cahaya sekitar dan, berdasarkan deteksi ini, mengontrol LED. Jika cahaya sekitar berada di bawah ambang batas tertentu, LED dinyalakan. Sebaliknya, jika cahaya sekitar berada di atas ambang batas, LED dimatikan.
// Define pin numbers
const int ledPin = 2; // LED connected to digital pin 8
const int ldrPin = A0; // LDR connected to analog pin A0
void setup()
{
pinMode(ledPin, OUTPUT); // Set the LED pin as output
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop()
{
int ldrValue = analogRead(ldrPin); // Read the value from the LDR
Serial.println(ldrValue); // Print the value to the serial monitor
// Assuming a lower value means more light
if (ldrValue > 600)
{
digitalWrite(ledPin, HIGH); // Turn the LED on
}
else
{
digitalWrite(ledPin, LOW); // Turn the LED off
}
delay(500); // Wait for half a second
}
Dalam kode ini, Anda perlu mengatur nilai ambang batas LDR berdasarkan kondisi kerja cahaya ruangan atau lingkungan Anda.
Menguji Proyek LDR Arduino Bekerja
Setelah mengunggah kode ke Arduino UNO Board, perangkat siap untuk pengujian.
Untuk mengujinya, letakkan LDR di ruangan yang dipenuhi cahaya. Jika cahaya sekitar berada di atas ambang batas, LED tidak menyala.
Jika cahaya sekitar berada di bawah ambang batas, LED dinyalakan. Anda dapat meletakkan jari Anda pada sensor LDR untuk menghalangi cahaya yang jatuh di atasnya.
Beginilah cara Anda dapat menggunakan LDR Sensor Module (Photoresistor) dengan Arduino untuk membuat Dark Activated Light.
Salah satu jenis sensor untuk mengukur suhu dan kelembapan yang cukup banyak digunakan adalah Sensor DHT. DHT adalah singkatan dari Digital Humidity and Temperature. Sensor DHT adalah sensor digital murah untuk mengindera suhu dan kelembaban. Sensor ini dapat dengan mudah dihubungkan dengan mikro-pengontrol apa pun seperti Arduino, Raspberry Pi untuk mengukur kelembaban dan suhu secara instan. Ini dapat digunakan untuk sejumlah aplikasi seperti yang akan kita lihat nanti.
Dalam tutorial ini saya akan menunjukkan kepada Anda cara menggunakan sensor DHT11 dan DHT22 untuk mengukur suhu dan kelembaban dengan Arduino Uno.
Terdapat dua versi sensor DHT yaitu:
1. DHT11
2. DHT22
Mereka terlihat agak mirip dan memiliki pinout yang sama, tetapi memiliki karakteristik yang berbeda. Berikut adalah detail dari kedua sensor ini:
Karakteristik Sensor DHT
DHT22 sedikit lebih mahal karena memiliki spesifikasi yang lebih baik seperti lebih presisi, lebih akurat dan bekerja dalam kisaran suhu & kelembaban yang lebih besar. Kisaran pengukuran suhunya adalah dari -40 °C hingga +125 °C dengan akurasi +-0,5 derajat, sedangkan kisaran suhu DHT11 adalah dari 0 °C hingga 50 °C dengan akurasi +-2 derajat. Juga sensor DHT22 memiliki rentang pengukuran kelembaban yang lebih baik, dari 0 hingga 100% dengan akurasi 2-5%, sedangkan kisaran kelembaban DHT11 adalah dari 20 hingga 80% dengan akurasi 5%.
Ada beberapa hal di mana sensor DHT11 bisa menjadi pilihan yang lebih baik daripada sensor DHT22. Karena lebih murah, berukuran lebih kecil dan memiliki tingkat pengambilan sampel yang lebih tinggi. Sampling rate DHT11 adalah 1Hz yaitu satu pembacaan setiap detik, sedangkan sampling rate DHT22 adalah 0.5Hz yaitu satu pembacaan untuk setiap dua detik.
Prinsip Kerja Sensor DHT
Mari kita bongkar sensor DHT11 dan DHT22 dan lihat apa yang ada di dalamnya.
Sensor DHT terdiri dari elemen penginderaan kelembaban kapasitif dan termistor untuk penginderaan suhu. Kapasitor penginderaan kelembaban memiliki dua elektroda dengan substrat penahan kelembaban sebagai dielektrik di antara keduanya. Perubahan nilai kapasitansi terjadi dengan perubahan tingkat kelembaban..
Untuk mengukur suhu sensor ini menggunakan termistor NTC, Istilah “NTC” berarti “Koefisien Suhu Negatif”, yang berarti resistansi berkurang seiring dengan peningkatan suhu seperti yang ditunjukkan pada grafik di bawah ini. Untuk mendapatkan nilai resistansi yang lebih besar bahkan untuk perubahan suhu terkecil, sensor ini biasanya terdiri dari keramik semikonduktor atau polimer.
Di sisi lain, ada PCB kecil dengan IC kemasan SOIC-14 8-bit. IC ini mengukur dan memproses sinyal analog dengan koefisien kalibrasi yang disimpan, melakukan konversi analog ke digital dan memberikan sinyal digital dengan suhu dan kelembaban.
Pinout DHT11 dan DHT22
Baik Sensor DHT11 dan DHT22 memiliki 4 Pin, yaitu:
Pin VCC memasok daya untuk sensor. Meskipun tegangan suplai berkisar dari 3.3V hingga 5.5V, suplai 5V direkomendasikan.
Pin data digunakan untuk komunikasi antara sensor dan mikrokontroler.
NC Tidak terhubung.
Ground harus dihubungkan ke ground mikrokontroler yang Anda gunakan.
Deskripsi Sensor DHT11 dan DHT22
Sensor DHT11 dan DHT22 terdiri dari 3 komponen utama. Sensor kelembaban, termistor NTC (koefisien suhu negatif) dan mikrokontroler 8-bit, yang mengubah sinyal analog dari kedua sensor dan mengirimkan sinyal digital tunggal.
Data dari sensor DHT11 dan DHT22 terdiri dari 40 bit dan formatnya adalah sebagai berikut:
8 – Data bit untuk bagian integral dari nilai RH,
8 – Data bit untuk bagian desimal dari nilai RH,
8 – Data bit untuk bagian integral dari nilai Suhu,
8 – Data bit untuk bagian desimal dari nilai Suhu dan
8 – Data bit untuk checksum.
Jika transmisi data benar, check-sum harus berupa 8 Bit terakhir dari “8 Bit integral RH data + 8 Bit Bit desimal RH data + 8 Bit Bit integral T data + 8 Bit Bit desimal T data”.
Contoh
Misalnya data yang diterima dari Sensor DHT adalah
0011010100000000000110000000000001001101
Data ini dapat dipisahkan berdasarkan struktur yang disebutkan di atas sebagai berikut
Untuk memeriksa apakah data yang diterima benar atau tidak, kita perlu melakukan perhitungan kecil. Tambahkan semua nilai integral dan desimal dari RH dan Suhu dan periksa apakah jumlahnya sama dengan nilai checksum yaitu data 8 Bit terakhir.
Nilai ini sama dengan checksum dan karenanya data yang diterima valid. Sekarang untuk mendapatkan nilai RH dan Suhu, cukup konversi data biner menjadi data desimal.
Jika data yang diterima tidak benar maka terima data lagi anda dapat melihat datasheet sensor DHT11 dan DHT22 .
Menghubungkan Sensor DHT11 dan DHT22 dengan Arduino Uno
Sekarang kita memiliki pemahaman lengkap tentang prinsip kerja sensor ini. Sekarang saatnya mengintegrasikan sensor dengan Arduino untuk mengukur Suhu dan Humidity.So, mari kita lakukan.
Hubungkan Sensor dengan Arduino Uno seperti yang ditunjukkan pada gambar.
Kita perlu menempatkan resistor pull-up 10KΩ antara VCC dan jalur data sensor untuk menjaganya tetap TINGGI untuk komunikasi yang tepat antara sensor dan Microcontroller.When selesai dengan koneksi kita siap untuk mengunggah program di Arduino untuk melihat pembacaan Suhu dan Kelembaban pada Liquid Crystal Display.Now saya akan menunjukkan kepada Anda cara menulis kode untuk mengukur suhu dan kelembaban dengan dan tanpa menggunakan perpustakaan DHT dan Perhatikan bahwa dalam kedua kasus koneksi sirkuit tetap sama.
Antarmuka Sensor DHT tanpa menggunakan pustaka DHT
Meskipun ada perpustakaan khusus untuk sensor DHT yang disebut “DHT” . Dalam hal ini saya akan menunjukkan kepada Anda cara menulis program yang mengukur Kelembaban dan Suhu dari sensor DHT tanpa menggunakan perpustakaan DHT.
Untuk Memahami dan Menulis program tanpa menggunakan perpustakaan DHT, Anda wajib melalui Lembar Data sensor. Seperti yang ditulis program didasarkan pada diagram waktu data yang disediakan dalam lembar data.
Awalnya MCU mengirimkan sinyal mulai dalam keadaan rendah, DHT11 berubah dari mode konsumsi daya rendah ke mode berjalan, proses ini harus memakan waktu setidaknya 18ms untuk memastikan deteksi sinyal MCU oleh DHT, kemudian MCU akan menarik tegangan dan menunggu 20-40us untuk tanggapan DHT.
Kode:
pinMode (datapin, OUTPUT); Mendeklarasikan Datapin sebagai pin keluaran
digitalWrite(datapin, LOW); Sinyal rendah dari arduino ke Sensor untuk memulai proses
delay(20); Waktu retensi rendah 20 μs
digitalWrite(datapin, TINGGI); Mengatur datapin ke status tinggi
pinMode(datapin,INPUT_PULLUP); secara default akan menjadi tinggi karena pull up internal
Setelah DHT mendeteksi sinyal start, ia akan mengirimkan sinyal respons tingkat tegangan rendah, yang berlangsung 80us. Kemudian program DHT mengatur tingkat tegangan Data Single-bus dari rendah ke tinggi dan menyimpannya selama 80us untuk persiapan DHT untuk mengirim data. Ketika DATA Single-Bus berada pada tingkat tegangan rendah, ini berarti DHT mengirimkan sinyal respons. Setelah DHT mengirimkan sinyal respons, ia menarik tegangan dan menyimpannya selama 80us dan bersiap untuk transmisi data. Saat DHT mengirim data ke MCU, setiap bit data dimulai dengan level tegangan rendah 50us dan panjang sinyal tingkat tegangan tinggi berikut menentukan apakah bit data adalah “0” atau “1”.yaitu jika durasi tingkat tegangan tinggi membentuk sensor berada di antara 26μs hingga 28μs maka bit “0” diterima, dan jika durasi tinggitage tingkat membentuk sensor adalah 70μs maka bit “1” diterima seperti yang ditunjukkan pada gambar di bawah ini.
Code:
duration=pulseIn(datapin, LOW); //duration variable starts timing when sensor sends low voltage level response
if(duration <= 84 && duration >= 72)
{
while(1)
{
duration=pulseIn(datapin, HIGH); //duration variable starts timing when sensor sends High voltage level response
if(duration <= 26 && duration >= 20) //if duration is in between 26µs and 20µs then bit 0 is transmitted by sensor
{
value=0; //Bit 0 is received
}
else if(duration <;= 74 && duration >= 65) //if duration is in between 74µs and 65µs then bit 1 is transmitted by sensor
{
value=1; //Bit 1 is received
}
else if(z==40) //Come out of the loop when 40 bis of data is received
{
break;
}
i[z/8]| = value<<(7- (z%8)); //leftshift each bit of data
j[z]=value; //store the data in the array variable j
z++; //increment length
}
}
Proses Komunikasi Keseluruhan
Sekarang kita memiliki pemahaman lengkap tentang proses komunikasi, sekarang kita siap untuk mengunggah program yang diberikan di bawah ini dan mengukur suhu dan kelembaban sekitarnya.
Code:
#include <LiquidCrystal.h> //lcdlibrary
LiquidCrystal lcd(2,3,4,5,6,7); //<span class="wikiword">LiquidCrystal</span>(rs, enable, d4, d5, d6, d7)
int datapin=11; //Data Pin
volatile unsigned long duration=0;
unsigned char i[5]; //array to hold 5 formats of data
unsigned int j[40]; //declare a array of size 40 to store the 40bits of data from the sensor
unsigned char value=0; //Declare and initialize value Variable that is received
unsigned checksum=0; //Declare and initialize Checksum Variable
int z=0; //Declare and initialize length Variable
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print(" Selamat Datang "); //Welcome Note
lcd.setCursor(0, 1); //Set the location where the text needs to be displayed in LCD
lcd.print(" di D3TT-TelU ");
delay(2000);
}
void loop()
{
delay(1000);
while(1)
{
delay(1000);
pinMode(datapin,OUTPUT); //intially declaring datapin as the output pin
digitalWrite(datapin,LOW); //Arduino sends a start signal in low state ,this can be done by setting datapin in Low state
delay(20); //output is set to low, and low retention time can’ t be less than 18ms
digitalWrite(datapin,HIGH);
pinMode(datapin,INPUT_PULLUP); //by default it will become high due to internal pull up
duration=pulseIn(datapin, LOW);
if(duration <= 84 && duration >= 72)
{
while(1)
{
duration=pulseIn(datapin, HIGH); //duration variable starts timing when sensor sends High voltage level response
if(duration <= 26 && duration >= 20) //if duration is in between 26µs and 20µs then bit 0 is transmitted by sensor
{
value=0; //Bit 0 is received
}
else if(duration <= 74 && duration >= 65) //if duration is in between 74µs and 65µs then bit 1 is transmitted by sensor
{
value=1; //Bit 0 is received
}
else if(z==40)
{
break; //Come out of the loop when 40 bis of data is received
}
i[z/8]|=value<<(7- (z%8)); //leftshift each bit of data
j[z]=value; //store the data in the array variable j
z++; //increment length i.e z
}
}
checksum=i[0]+i[1]+i[2]+i[3]; //checksum should be equal to addition of high and low byte of humidity and temperature
if(checksum==i[4] && checksum!=0) //checksum should be equal to last byte of 40 bits data and it should not be 0
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp = ");
lcd.setCursor(7,0);
lcd.print(i[2]); //print high temperature byte in decimal form
lcd.print((char)223); //print degree symbol
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humidity = ");
lcd.setCursor(11,1);
lcd.print(i[0]); //print high Humidity byte in decimal form
lcd.setCursor(13,1);
lcd.print("%");
}
z=0; //set length of bits =0
i[0]=i[1]=i[2]=i[3]=i[4]=0; //set the 5 data formats to 0
}
}
Antarmuka Sensor DHT menggunakan pustaka DHT
DHT-11 antarmuka dengan Arduino juga dapat dilakukan dengan menggunakan library bernama DHT.h . Perpustakaan DHT.h yang memiliki banyak fungsi bawaan yang membuat kita mudah untuk menuliskan kode.
Sebelum mengunggah kode yang diberikan di bawah ini pastikan ada library DHT di IDE Arduino Anda, Jika tidak ada maka Anda dapat menginstalnya dengan mengikuti langkah-langkah: >Buka Sketch >>Pilih Sertakan Perpustakaan >>Pilih Kelola Perpustakaan >>Kemudian Ketik Perpustakaan sensor DHT di kotak pencarian >>Klik Instal. Dengan ini perpustakaan yang diperlukan akan diinstal, dan Anda dapat mulai mengunggah kode yang diberikan di bawah ini.
Code:
# include "DHT.h" //DHT library
# include "LiquidCrystal.h" //lcd library
# define DHTPIN 11 //DHT pin
//Uncomment whichever Type you are using
# define DHTTYPE DHT11
//# define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE); //Creating DHT object
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
float t; //temperature in celcius
float h; //humidity in percentage
void setup() //setup
{
Serial.begin(9600); //Setting Boudrate
dht.begin();
lcd.begin(16, 2); // Initializes the interface to the LCD screen
lcd.setCursor(0, 0);
lcd.print(" Welcome to ");
lcd.setCursor(0, 1); //Set the location where the text needs to be displayed in LCD
lcd.print("NerdyElectronics ");
delay(2000);
lcd.clear();
}
void loop() //loop
{
h = dht.readHumidity() ;
t = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t); //Prints the temperature value from the sensor
lcd.print("");
lcd.print((char)223); //shows degrees character
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humi: ");
lcd.print(h);
lcd.print("% ");
delay(5000);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(dht.convertCtoF(t)); //Inbuilt function to convert Temp in Celcius to Fahrenhit
lcd.print(" ");
lcd.print((char)223); //shows degrees character
lcd.print("F");
delay(5000);
}
Aplikasi Sensor DHT
1. Sensor DHT dapat digunakan sebagai kompensator dengan sensor ultrasonik untuk menentukan jarak dengan lebih tepat.Anda dapat menemukan aplikasi ini di tautan ini https://nerdyelectronics.com/embedded-systems/sensors/how-to-improve-readings-of-ultrasonic-sensor-temperature-and-humidity-compensation/
2. Sensor DHT digunakan dalam berbagai aplikasi seperti mengukur nilai kelembaban dan suhu dalam sistem pemanas, ventilasi dan pendingin udara (HVAC).
3. Sensor ini dapat digunakan di gudang karena tingkat kelembaban di udara mempengaruhi berbagai proses fisik, kimia dan biologis.
4. Stasiun cuaca juga menggunakan sensor ini untuk memprediksi kondisi cuaca.
Kit Pengembangan DE10-Standard menghadirkan platform desain perangkat keras tangguh yang dibangun di atas Intel System-on-Chip (SoC) FPGA, yang menggabungkan inti tertanam Cortex-A9 dual-core terbaru dengan logika terprogram terdepan di industri untuk fleksibilitas desain terbaik. Pengguna kini dapat memanfaatkan kekuatan konfigurasi ulang yang luar biasa yang dipadukan dengan sistem prosesor berkinerja tinggi dan berdaya rendah. SoC Altera mengintegrasikan sistem prosesor keras (HPS) berbasis ARM yang terdiri dari prosesor, periferal, dan antarmuka memori yang terhubung secara mulus dengan struktur FPGA menggunakan tulang punggung interkoneksi bandwidth tinggi. Papan pengembangan DE10-Standard mencakup perangkat keras seperti memori DDR3 berkecepatan tinggi, kemampuan video dan audio, jaringan Ethernet, dan banyak lagi.
Perbandingan dengan Papan Lainnya
Papan DE10-Standard board has many features that allow users to implement a wide range of designed circuits, from simple circuits to various multimedia projects.
The following hardware is provided on the board:
FPGA Device
Cyclone V SX SoC—5CSXFC6D6F31C6N
110K LEs, 41509 ALMs
5,761 Kbits embedded memory
6 FPGA PLLs and 3 HPS PLLs
2 Hard Memory Controllers
ARM-Based Hard Processor System (HPS)
925 MHz, Dual-Core ARM Cortex-A9 MPCore Processor
512 KB of Shared L2 Cache
64 KB of Scratch RAM
Multiport SDRAM Controller with Support for DDR2, DDR3, LPDDR1, and LPDDR2
8-Channel Direct Memory Access (DMA) Controller
Configuration and Debug
Serial Configuration Device – EPCS128 on FPGA
On-Board USB Blaster II (Normal Type B USB Connector)
Memory Device
64MB (32Mx16) SDRAM on FPGA
1GB (2x256Mx16) DDR3 SDRAM on HPS
MicroSD Card Socket on HPS
Communication
Two USB 2.0 Host Ports (ULPI Interface with USB Type A Connector) on HPS
USB to UART (Micro USB Type B Connector) on HPS
10/100/1000 Ethernet on HPS
PS/2 Mouse/Keyboard
IR Emitter/Receiver
Connectors
One 40-pin Expansion Header (Voltage Levels: 3.3V)
One HSMC Connector(Configurable I/O Standards 1.5/1.8/2.5/3.3V)
One 10-Pin ADC Input Header
One LTC Connector (One Serial Peripheral Interface (SPI) Master ,One I2C and One GPIO Interface ) on HPS
Display
24-bit VGA DAC
128×64 Dots LCD Module with Backlight on HPS
Audio
24-bit CODEC, Line-in, Line-out, and Microphone-In Jacks
Video Input
TV Decoder (NTSC/PAL/SECAM) and TV-In Connector
ADC
Sample Rate: 500 KSPS
Channel Number: 8
Resolution: 12 bits
Analog Input Range : 0 ~ 4.096 V
Switches, Buttons and Indicators
5 User Keys (FPGA x4, HPS x1)
10 User Switches (FPGA x10)
11 User LEDs (FPGA x10 ; HPS x 1)
2 HPS Reset Buttons (HPS_RST_n and HPS_WARM_RST_n)7-Segment Display x6
Kit Pengembangan dan Pendidikan Konektivitas Cloud FPGA dari Terasic.inc
Ulasan Singkat
FPGA Cloud Connectivity Kit memadukan kekayaan fleksibilitas Intel® Cyclone® V SoC FPGA dengan berbagai manfaat konektivitas cloud.
Saat ini, mudah untuk mengembangkan aplikasi berbasis FPGA Anda sendiri yang dapat mengumpulkan, menganalisis, dan merespons data dari perangkat IoT. Kit pengembangan ini telah disertifikasi oleh penyedia layanan cloud (CSP) terkemuka seperti Microsoft Azure dan dilengkapi dengan contoh desain sumber terbuka yang akan memandu pengguna baru dalam proses menghubungkan perangkat edge berbasis FPGA ke cloud untuk pertama kalinya.
Kit ini didasarkan pada Terasic DE10-Nano Kit yang sangat populer dan menambahkan komunikasi nirkabel Wi-Fi dan Bluetooth serta berbagai sensor seperti cahaya sekitar, sensor suhu dan kelembapan, akselerometer, dan giroskop.
Kit Konektivitas Cloud FPGA akan memungkinkan pengguna untuk menempatkan FPGA yang fleksibel dan dapat dikonfigurasi ulang di inti desain tepi IoT pintar mereka berikutnya.
Mohon dicatat bahwa semua kode sumber disediakan “apa adanya”. Untuk dukungan lebih lanjut atau modifikasi silahkan hubungi Terasic Support dan permintaan anda akan dikirimkan ke Terasic Design Service.
Sumber lainnya terkait IP dan Dev. Kit tersedia di Intel User Forums.
Selamat datang di materi pengenalan FPGA menggunakan Terasic DE10-Nano
Papan pengembangan Terasic DE10-Nano
Papan pengembangan DE10-Nano dari Terasic, yang menggunakan SoC FPGA dari Intel, menyediakan platform perancangan perangkat keras yang dapat dikonfigurasi ulang bagi pengoprek, pengembang IoT dan pendidik. Papan ini dilengkapi dengan dua header ekspansi GPIO, header Arduino, memori DDR3 kecepatan tinggi, sebuah port HDMI dan jaringan ethernet, sehingga papan ini menyediakan platform yang handal dan kaya fitur untuk menciptakan berbagai aplikasi IoT yang seru.
Para pengembang dan pengoprek dipersilahkan untuk menemukan performa prosesor tertanam berdaya rendah yang terintegrasi dengan fleksibilitas perangkat logika terprogram. Dibagi menjadi dua bagian terpisah, perangkat SoC Intel FPGA terdiri dari sebuah sistem prosesor keras (HPS) dan Susunan Lautan Gerbang yang dapat diProgram (FPGA). Sementara HPS merupakan sebuah prosesor tujuan umum (berbasis prosesor ARM Cortex-M9 dwi-inti), FPGAnya merupakan mesin pemroses paralel yang anda data gunakan untuk membuat Perangkat keras custom untuk mengakselerasi algoritma yang berfungsi tetap atau untuk memperpanjang kemampuan I/O suatu perangkat.
Apakah anda merupakan pengembang FPGA, pengembang perangkat lunak, pengoprek, pengembang IoT musiman, orang yang baru belajar koding, ataupun hanya tertarik dengan FPGA, kami berharap pengalaman anda dengan kit DE10-Nano dari Terasic bisa cukup informatif dan menyenangkan.
Daftar perangkat dalam Kit DE10-Nano dari Terasic
Sebelum kita mulai, pastikan isi dari kit yang kita miliki adalah sebagai berikut:
Isi
Terasic DE10-Nano Board
Quick Start Guide (paper pamphlet)
Type A to Micro-B USB Cable
For USB* OTG port
Type A to Mini-B USB Cable
Two functions: UART and USB Blaster
5V (2A) DC power supply
microSD* card
Bag of four rubber (silicon) foot stands
Kebutuhan Host System
Sistem Operasi yang kompatibel: Linux atau Windows®
USB 2.0 Port (untuk USB OTG Cable)
Catatan: The Intel® Quartus® Prime Software Suite mendukung Windows* 7, 8.1, dan Windows® 10.
Spesifikasi
Hard Processor System (HPS)
Processor
Dual-core ARM Cortex*-A9 MPCore processor at 800 MHz
neon™ framework media-processing engine with double-precision floating point unit (FPU)
32 KB L1 instruction cache
32 KB L1 data cache
512 KB shared L2 cache
Memory
64 KB on-chip SRAM
1 GB DDR3 SDRAM (32-bit data)
8 GB microSD* flash memory card
Processor I/O
1 gigabit Ethernet PHY with RJ45 connector
1 USB 2.0 On-The-Go (OTG) port, USB Micro-AB connector
microSD card interface and socket
Accelerometer (I2C interface plus interrupt)
UART to USB, USB Mini-B connector
Warm reset button, cold reset button
One user button and one user LED
Expansion header for use with Linear Technology* DC934A dual 16-bit digital-to-analog converter daughter card
Embedded Software
Linux kernel 4.1.33 LTSI
Angstrom 2016.12
Field Programmable Gate Array (FPGA)
Programmable Logic
Logic elements (LE): 110 K LE
5,570 kilobits memory
224 18 x 19 multipliers
112 variable precision DSP blocks
6 phased-locked loops (PLL)
145 user-defined I/O
Configuration Sources
Embedded USB-Blaster* II (JTAG) cable
Serial configuration flash – EPCS128
ARM Cortex*-A9 hard processor system (HPS)
I/O Interfaces
2 push buttons
4 slide switches
8 LEDs
3 clock sources (50 MHz) from the clock generator
2 expansion headers (40-pin) with diode protection
1 Arduino* expansion header compatible with Arduino UNO* R3 (can connect with Arduino shields)
1 analog input expansion header (10-pin) shared with Arduino analog input
Sensor ultrasonik bekerja dengan prinsip sistem SONAR dan RADAR yang digunakan untuk menentukan jarak sebuah obyek.
Spesifikasi Modul HCSR04:
Tegangan kerja: 5V DC
Arus kerja: 15mA
Jangkauan Maksimum: 4 m
Jangkauan Minimum: 2 cm
Sudut pengukuran: 15 derajat
Sinyal masukan pemicu: pulsa TTL 10 us
Resolusi: 1 cm
Frekuensi Ultrasonik: 40 kHz
Dimensi: 45 * 20 * 15 mm
Sensor ultrasonik membangkitkan gelombang suara frekuensi-tinggi (ultrasound). Ketika ultrasound menumbuk sebuah obyek, maka gelombang tersebut akan terpantul dalam bentuk gaung (echo) yang kemudian dirasakan oleh penerima seperti yang ditunjukkan pada Gambar di bawah ini.
Gambar 1. Prinsip kerja Ultrasonik
Dengan mengukur waktu yang diperlukan gaung dalam mencapai penerima, kita bisa menghitung jaraknya. Hal ini adalah dasar prinsip kerja modul Ultrasonik untuk mengukur jarak.
Modul Ultrasonik HC-SR04
Gambar 2. Modul Ultrasonik HC-SR04
Komponen utama modul HC-SR04:
STC11F (single-chip microcontroller, based on 1T architecture 80C51 CPU)
40-KHz ultrasonic transmitter and receiver pair (40T/R-B/W)
Skematik modul HC-SR04
HC-SR04 memiliki sebuah pengirim, penerima dan rangkaian pengendali ultrasonik.
Pada modul ultrasonik HC-SR04, kita harus memberikan pulsa pemicu (trigger), sehingga modul ini akan membangkitkan ultrasound dengan frekuensi 40 kHz. Setelah membangkitkan ultrasound yakni 8 pulsa 40kHz, modul ini akan membuat pin echo berlogika tinggi (high). Pin echo akan tetap tinggi sampai dengan tidak ada lagi gaung balik yang diterima. Sehingga lebar pulsa pin echo akan menjadi waktu yang dibutuhkan suara untuk sampai ke obyek dan balik lagi. Begitu kita mendapatkan waktunya kita bisa menghitung jarak, begitu kita mengetahui kecepatan suara.
HC-SR04 bisa mengukur jangkauan dari 2 cm hingga 400 cm.
Deskripsi Pin HC-SR04
Gambar 3. HC-SR04
VCC – catu daya +5 V
TRIG – masukan pemicu (Trigger) untuk sensor. Mikrokontroler perlu memberikan pulsa trigger selama 10 us ke modul ultrasonik HC-SR04.
ECHO – Keluaran Echo dari sensor. Mikrokontroler akan membaca/memantau pin ini untuk mendeteksi halangan atau mencari jarak.
GND – Ground
Prinsip Kerja HC-SR04
Gambar 4. Diagram pewaktuan Modul Ultrasonik HC-SR04
Kita perlu mengirimkan pulsa pemicu paling sedikit 10 us ke pin Trig HC-SR04.
Kemudian secara otomatis HC-SR04 mengirimkan Delapan gelombang suara 40 kHz dan menunggu keluaran sisi naik di pin Echo.
Apabila pengambilan sisi naik muncul di pin Echo, kita mulai Timer dan menunggu sisi turun di pin Echo.
Begitu sisi turun diambil dari pin Echo, kita baca hitungan Timer. Perhitungan waktu ini merupakan waktu yang dibutuhkan sensor untuk mendeteksi sebuah obyek dan kembali dari obyek tersebut.
Sekarang bagaimana caranya menghitung jarak?
Kita ketahui bahwa,
Jarak = Kecepatan x Waktu
Kecepatan gelombang suara adalah 343 m/dtk.
Sehingga,
Jarak Total = (343 x Waktu Pulsa Tinggi (Echo)) / 2
Jarak totalnya dibagi 2 karena sinyalnya merambat dari HC-SR04 ke obyek dan kembali lagi ke modul HC-SR04.DatasheetDownload
Sensor PIR (Passive Infra Red) merupakan sensor yang secara spesifik dirancang untuk mendeteksi sinyal berupa radiasi thermal pada panjang gelombang inframerah, yang dihasilkan oleh setiap makhluk hidup. Radiasi yang dimaksud berupa suhu tubuh yang lebih dari 0°C. Energi radiasinya tidak bisa dilihat oleh mata telanjang manusia. Kata pasif pada sensor PIR berarti sensor ini tidak membangkitkan atau meradiasikan energi apapun saat melakukan pendeteksian.
Sensor PIR tidak mengukur “KALOR”. Sensor ini hanya mendeteksi radiasi inframerah yang dipancarkan atau dipantulkan dari sebuah benda hidup.
Cara kerja Sensor PIR
Gambar 2 Blok Sensor PIRGambar 3 Bentuk Fisik Elemen PIR
Sensor PIR pada dasarnya dibuat menggunakan sensor pyroelectric, yang dapat mendeteksi tingkat radiasi inframerah
Pada gambar 3 di atas, komponen berupa kaleng logam bulat yang berisi kristal kotak di bagian tengahnya merupakan sensor PIR yang dimaksud.
Setiap benda hidup akan memancarkan radiasi inframerah tingkat rendah, namun benda yang lebih panas akan memancarkan radiasi lebih banyak.
Gambar 4 Dua slot sensor PIR
Sensornya sendiri sebenarnya terbagi menjadi dua slot, yang dihubungkan dengan kabel agar bisa saling menghilangkan satu sama lain.
Jika salah satu slot mendeteksi radiasi IR yang lebih banyak atau lebih sedikit dibanding yang lainnya, keluarannya akan menghasilkan tegangan yang mengayun tinggi atau rendah.
Sinyal masukan dari kedua terminal elemen PIR kemudian diperkuat menggunakan rangkaian penguat dan dibandingkan menggunakan rangkaian pembanding.
Elemen PIR diselubungi dengan sebuah lensa untuk meningkatkan jangkauan kerjanya.
Dalam kondisi diam
Sensor gerak PIR menggunakan elemen RE200B untuk mendeteksi inframerah. Kedua slot sensor ini terhubung ke penguat diferensial.
Ketika sensor dalam kondisi diam, kedua slot akan mendeteksi sejumlah radiasi IR yang sama.
Sehingga tidak ada sinyal galat di antara masukan diferensialnya. Akibatnya keluaran rangkaian pembandingnya adalah nol.
Dalam kondisi ada benda bergerak
Ketika suatu benda hidup lewat di depan sensor, kondisi ini akan mengganggu salah satu slot sensor PIR. Hal ini mengakibatkan perubahan diferensial positif di antara kedua slot. Perubahan tersebut ditunjukkan oleh bagian A pada gambar 5 di bawah ini.
Ketika sebuah benda hidup meninggalkan daerah penginderaan, sensor akan membangkitkan perubahan diferensial negatif. Perubahan ini ditunjukkan oleh bagian B pada gambar 5 di bawah ini.
Gambar 5 Perubahan diferensial di antara kedua slot
Kedua perubahan pulsa ini merupakan proses pendeteksian tubuh yang meradiasikan sinyal inframerah.
Deskripsi Pin
Gambar 6 Diagram pin modul sensor PIR
Pin 1 – GND : Kita harus menghubungkan pin ini ke Ground.
Pin 2 – Output : Pin ini menghasilkan keluaran (3.5V) ketika gerak terdeteksi
Pin 3 – VCC : Pin ini menyediakan catu daya (+5V) bagi elemen PIR dan rangkaian internal modul.
Bagian-Bagian Sensor PIR
Gambar berikut menunjukkan bagian-bagian dari sensor PIR yang perlu untuk diketahui
Bagian Sensor PIR
Pengatur Waktu Jeda : Digunakan untuk mengatur lama pulsa high setelah terdeteksi terjadi gerakan dan gerakan telah berahir. *
Pengatur Sensitivitas : Pengatur tingkat sensitivitas sensor PIR *
Regulator 3VDC : Penstabil tegangan menjadi 3V DC
Dioda Pengaman : Mengamankan sensor jika terjadi salah pengkabelan VCC dengan GND
DC Power : Input tegangan dengan range (3 – 12) VDC (direkekomendasikan menggunakan input 5VDC).
Output Digital : Output digital sensor
Ground : Hubungkan dengan ground (GND)
BISS0001 : IC Sensor PIR
Pengatur Jumper : Untuk mengatur output dari pin digital.
(*) Catatan: Pin nomor 1 dan 2 digunakan untuk melakukan kalibrasi sensor PIR dengan mengatur posisi potentiometer pada posisi label MIN atau MAX.
Mode operasi
Modul sensor PIR memiliki dua mode operasi, yaitu:
Mode Picu Tunggal (Single Trigger Mode)
Gambar 7 Diagram pewaktuan mode picu tunggal
Untuk memilih mode Picu Tunggal, jumper pada sensor PIR haruslah dijadikan rendah (LOW)
Pada kasus mode Picu Tunggal, keluarannya akan tinggi (HIGH) apabila gerakan terdeteksi
Setelah waktu jeda tertentu (tsel), keluarannya akan menjadi rendah (LOW) walaupun benda masih bergerak.
Keluaran akan menjadi LOW beberapa waktu dan kembali menjadi HIGH jika benda tetap bergerak.
Waktu jeda ini (tsel) diatur menggunakan potensiometer yang ada di modul sensor PIR.
Pada kondisi ini, sensor PIR memberikan pulsa HIGH/LOW jika benda terus menerus bergerak
Mode Picu Berulang (Repeat Trigger Mode)
Gambar 8 Diagram pewaktuan mode picu berulang
Untuk memilih mode Picu Berulang, jumper pada sensor PIR haruslah dijadikan tinggi (HIGH)
Pada kasus mode Picu Berulang, keluarannya akan tinggi (HIGH) apabila gerakan terdeteksi
Keluaran sensor PIR akan menjadi HIGH selama benda bergerak.
Ketika benda berhenti bergerak, atau menghilang dari daerah sensor, PIR akan melanjutkan kondisi HIGH selama waktu jeda (tsel) yang telah ditentukan.
Kita bisa menentukan waktu jeda ini (tsel) dengan mengatur potensiometer yang ada pada modul sensor PIR.
Pada kondisi ini, sensor PIR akan memberikan pulsa HIGH jika benda berada dalam kondisi bergerak.
Mengubah Sensitivitas dan Waktu Jeda
Terdapat dua buah potensiometer di modul sensor PIR yang digunakan untuk: Pengaturan Sensitivitas dan Pengaturan Waktu Jeda.
Kita bisa membuat sensor PIR menjadi lebih sensitif atau tidak cukup sensitif. Sensitivitas maksimum yang bisa dicapai adalah hingga 6 meter.
Potensiometer Pengatur Waktu Jeda digunakan untuk mengatur waktu tsel pada gambar diagram pewaktuan di atas
Pemutaran searah jarum jam membuat sensor PIR menjadi lebih sensitif.
Ada dua hal penting dalam pembuatan sensor PIR, yaitu: biaya rendah dan sensitivitas tinggi.
Kedua hal ini bisa dicapai secara ajaib menggunakan tutup lensa.
Lensa meningkatkan jangkauan kerja, meningkatkan sensitivitas dan mengubah pola penginderaan dengan mudah.
Pengujian sensor PIR
Gambar 9 Cara sederhana menguji sensor PIR
Kini, kapanpun sensor PIR mendeteksi gerakan, lampu LED akan menyala. Pada kondisi selain itu LED akan tetap mati seperti terlihat pada video singkat di bawah ini.
Visible Light Communication (VLC) atau Komunikasi Cahaya Tampak adalah sebuah istilah untuk teknologi komunikasi optik nirkabel point-to-point – yang secara esensial digunakan sebagai pengganti kabel – yang menggunakan gelombang elektromagnetik pada spektrum cahaya tampak sebagai media transmisinya. VLC menggunakan piranti LED untuk mengirimkan data di bagian pengirimnya dengan teknik Intensity Modulation (IM) serta piranti fotodiode untuk menerima data di bagian penerimanya menggunakan prinsip direct detection (DD). VLC biasanya diimplementasikan mengacu pada standar yang telah dibuat yakni IEEE.802.15.7. Namun tidak menutup kemungkinan mengacu standar lainnya. VLC dapat diimplementasilkan pada sistem terestrial, ruangan dan dalam air. Sehingga pada masing-masing sistem, masalah kanal yang harus dihadapi berbeda-beda.
Gambar 1. Blok pembangun dasar dari LiFi dan bidang penerapannya
Sumber : Haas, H; Yin, Liang; Wang, Yunlu; Chen, Cheng; “What is LiFi?“, Journal of Lightwave Technology. 2015
Sementara itu, LiFi adalah sebuah sistem lengkap jaringan nirkabel optikdalam ruangan berbasis VLC yang menyediakan sistem komunikasi bi-directional multiuser atau komunikasi pengguna jamak dan dwi-arah, yakni komunikasi point-to-multipoint dan multipoint-to-multipoint. Sementara ini, standarnya sedang diupayakan untuk masuk menjadi bagian dari standar VLC yang sudah ada. LiFi diajukan sejajar dengan WiFi sebagai standar jaringan komunikasi nirkabel lainnya, seperti Free-Space Optic yang menggunakan LASER, sebagai pelengkap akibat dari keterbatasan penggunaan spektrum frekuensi radio di dalam ruangan. Jaringan LiFi juga melibatkan beberapa access point yang membentuk jaringan nirkabel optik yangmenawarkan konsep attocell yang memberikan seamless handover karena menghasilkan cakupan jaringan yang lebih kecil daripada femtocell di teknologi RF. Artinya, LiFi juga harus dapat menangani mobilitas pengguna, sehingga membentuk lapisan jaringan baru di antara jaringan nirkabel yang heterogen.