Ringkasan Materi Informatika Semester 1 & 2

Ringkasan Materi Informatika Semester 1 & 2

Informatika

  1. Informatika, secara sederhana, adalah ilmu yang berkaitan dengan pengolahan, pengelolaan, dan pemanfaatan informasi menggunakan teknologi komputer. Bidang ini meliputi aspek pemrograman, analisis data, kecerdasan buatan (AI), keamanan cyber, jaringan komputer, dan berbagai topik lainnya yang terkait dengan teknologi informasi.
  2. Informatika memiliki peran besar di kehidupan modern seperti saat ini, hampir seluruh aspek kehidupan kita dipermudah dengan berkembangnya ilmu informatika.
  3. Informatika memainkan peran kunci dalam pengembangan teknologi komunikasi seperti internet, email, dan media sosial. teknologi ini memungkinkan orang untuk berkomunikasi secara instan dan efisien di seluruh dunia tanpa terkendala jarak dan waktu.
  4. Informatika telah mengubah cara kita belajar dan mengakses informasi. Adanya platform pembelajaran online, sumber daya digital, dan perangkat lunak pembelajaran membantu meningkatkan aksesibilitas pendidikan. Selain itu, kita juga memiliki akses ke sumber informasi dari berbagai belahan dunia dengan cepat dengan adanya mesin pencari.
  5. Dalam dunia bisnis, Informatika juga memainkan peran yang besar. Sistem manajemen bisnis, analisis data, e-commerce, dan perangkat lunak keuangan semuanya bergantung pada konsep-konsep informatika.
  6. Di bidang kesehatan, informatika digunakan untuk manajemen data pasien, pengembangan perangkat lunak medis, analisis genom, dan penelitian medis. Teknologi seperti telemedicine juga mengandalkan konsep informatika.
  7. Informatika adalah landasan dari pengembangan perangkat lunak. Dengan konsep-konsep seperti pemrograman komputer, pengujian perangkat lunak, dan pengelolaan proyek, informatika memungkinkan pembuatan berbagai jenis perangkat lunak.

Cara berfikir komputasional

  1. Berfikir komputasional adalah suatu pendekatan dalam menyelesaikan masalah atau memahami suatu konsep dengan cara yang mirip dengan cara/proses berpikir komputer. Konsep berfikir ini mencakup pemahaman algoritma, pemodelan data, pemecahan masalah sistematis, dan kemampuan untuk menerapkan konsep-konsep ini dalam situasi nyata.
  2. Keempat konsep utama dalam berfikir komputasional – dekomposisi, abstraksi, pola, dan algoritma – membentuk dasar untuk memecahkan masalah dengan pendekatan yang sistematis dan komputasional.
  3. Dekomposisi melibatkan pembagian masalah besar menjadi sub-masalah yang lebih kecil dan lebih mudah dikelola. Dengan memecah masalah kompleks menjadi bagian-bagian yang lebih kecil, kita dapat fokus pada setiap submasalah secara terpisah, membuat pemecahan masalah menjadi lebih efisien.
  4. Abstraksi adalah proses menyederhanakan kompleksitas atau kerumitan suatu masalah dengan mengabaikan detail atau bagian-bagian yang tidak relevan. cara memungkinkan kita untuk fokus pada aspek-aspek penting dari suatu masalah tanpa terjebak dalam kompleksitas yang tidak perlu. Dalam konteks berfikir komputasional, abstraksi dapat melibatkan penyederhanaan struktur data atau proses untuk memudahkan pemahaman dan implementasi.
  5. Mengidentifikasi pola melibatkan pemahaman tentang hubungan dan struktur dalam data atau masalah. Pola membantu kita memprediksi hasil, membuat generalisasi, dan memahami lebih baik cara suatu sistem bekerja.
  6. Algoritma adalah langkah-langkah terstruktur yang dirancang untuk menyelesaikan suatu masalah atau tugas. Algoritma bisa juga disebut sebagai panduan atau resep yang menunjukkan langkah-langkah yang harus diambil untuk mencapai hasil tertentu. Dalam berfikir komputasional, kemampuan untuk merancang algoritma yang efektif menjadi kunci. Algoritma harus efisien, dapat diulang, dan dapat diandalkan dalam menyelesaikan masalah tertentu.
  7. keempat konsep dalam berfikir komputasional dapat di integrasikan atau digabungkan agar penyelesaian masalah menjadi lebih cepat dan terstruktur.
    • a. Dekomposisi & Abstraksi: Saat mendekomposisi masalah, abstraksi membantu menyederhanakan setiap submasalah sehingga dapat dipecahkan dengan lebih mudah.
    • b. Dekomposisi & Algoritma: Submasalah yang dihasilkan dari dekomposisi dapat dipecahkan menggunakan algoritma yang sesuai untuk mencapai solusi keseluruhan.
    • c. Abstraksi & Pola: Abstraksi membantu dalam mengidentifikasi pola umum, memungkinkan kita untuk membuat generalisasi yang dapat diterapkan pada masalah serupa.
    • d. Pola & Algoritma: Identifikasi pola dapat membantu dalam merancang algoritma yang memanfaatkan pola tersebut untuk meningkatkan efisiensi dan akurasi solusi.

Arduino

  1. Arduino adalah platform perangkat keras dan perangkat lunak open-source yang dirancang untuk membuat prototipe dan mengembangkan proyek elektronika. Platform ini menyediakan berbagai papan mikrokontroler yang dapat diprogram untuk melakukan berbagai tugas. Papan mikrokontroler Arduino memiliki input dan output yang dapat digunakan untuk berinteraksi dengan berbagai sensor, aktuator, dan perangkat lainnya.
  2. Arduino memiliki karakteristik antara lain:
    • a. Open Source: Desain perangkat keras dan perangkat lunak Arduino bersifat open-source, yang berarti bahwa semua informasi yang diperlukan untuk membuat dan mengembangkan proyek Arduino dapat diakses secara bebas. Pengguna dapat memodifikasi dan menyesuaikan perangkat keras dan perangkat lunak sesuai kebutuhan mereka.
    • b. Mikrokontroler: Papan Arduino dilengkapi dengan mikrokontroler yang berfungsi sebagai otak dari sistem. Mikrokontroler ini dapat diprogram untuk melakukan berbagai tugas sesuai dengan kebutuhan proyek.
    • c. Integrated Development Environment (IDE): Arduino IDE adalah lingkungan pengembangan terpadu yang digunakan untuk menulis, mengunggah, dan menjalankan kode pada papan Arduino. IDE menyederhanakan proses pengembangan dengan menyediakan berbagai fitur dan alat bantu.
    • d. Soket Input/Output (I/O): Arduino memiliki pin input/output yang dapat digunakan untuk menghubungkan sensor, aktuator, dan perangkat lainnya. Ini memungkinkan pengguna untuk berinteraksi dengan lingkungan sekitar.
    • e. Kemudahan Penggunaan: Arduino didesain agar mudah digunakan, bahkan bagi pemula dalam bidang elektronika dan pemrograman. Ada banyak sumber daya dan tutorial online yang mendukung pengguna dalam memahami dan menggunakan Arduino.
  3. Arduino memiliki banyak konektor-konektor yang disebut dengan “pin”. Pin-pin ini dapat dihubungkan ke berbagai sensor, aktuator dan komponen-komponen elektronika lainnya.
  4. Berikut adalah beberapa kelompok utama pin pada Arduino Uno:
    • Pin Digital (D0-D13):
      • D0-D13 digunakan sebagai pin digital input atau output.
      • D2 dan D3 dapat mendukung fungsi interrupt.
      • D3, D5, D6, D9, D10, dan D11 dapat digunakan untuk menghasilkan sinyal PWM.
    • Pin Analog (A0-A5):
      • A0-A5 digunakan sebagai pin input analog untuk membaca tegangan antara 0 hingga 5 volt.
      • A4 dan A5 juga digunakan sebagai pin I2C (Inter-Integrated Circuit).
    • Port Serial (RX, TX):
      • RX dan TX digunakan untuk komunikasi serial dengan perangkat eksternal.
    • Port USB:
      • Digunakan untuk menghubungkan Arduino ke komputer atau perangkat USB lainnya.
    • Port Catu Daya:
      • Vin: Tegangan input eksternal.
      • 5V: Tegangan output dari regulator.
      • 3.3V: Tegangan output tetap 3.3 volt.
      • GND: Ground atau negatif.
    • Port I2C (SDA, SCL):
      • Digunakan untuk komunikasi I2C.
    • Port SPI (MISO, MOSI, SCK, SS):
      • Digunakan untuk komunikasi SPI.
    • Sampai pada materi ini, kita sudah mengenal pin digital (pin 0-13) dan pin GND.

Pemrograman Arduino

  1. Arduino memliki 2 struktur program yang terdiri dari 2 fungsi utama yaitu : setup() dan loop().
  2. Fungsi setup() dieksekusi hanya sekali saat program dimulai, dan biasanya digunakan untuk mengaktifkan pin, dan perangkat lain yang terhubung ke Arduino agar bisa di program.
  3. Fungsi loop() dieksekusi secara terus-menerus setelah setup(), dan berisi kode utama program yang akan dijalankan berulang kali. Proses pengendalian utama suatu mesin / komponen elektronika yang terhubung ke Arduino hampir sepenuhnya dilakukan disini.
  1. Perintah-perintah dasar yang bisa digunakan adalah :

pinMode()

Deskripsi

pinMode berfungsi untuk mengkonfigurasikan atau mengaktifkan pin sebagai output ataupun input.

Syntax

pinMode(pin, mode);

Parameter
pinnomor pin pada Arduino, atau variabel yang berisi nomor pin
modemode pengaturan pin : OUTPUT, INPUT, INPUT_PULLUP
Contoh Penggunaan
pinMode(4, INPUT);Mengaktifkan pin 4 sebagai input (biasanya digunakan untuk membaca sensor)
pinMode(4, OUTPUT);Mengaktifkan pin 4 sebagai output
int ledPin = 4;
pinMode(ledPin, OUTPUT);
Mengaktifkan ledPin (pin 4) sebagai output)
pinMode(4, INPUT_PULLUP);mengaktifkan 4 sebagai input dengan pull up resistor internal

digitalWrite()

Deskripsi

Memberi nilai berupa HIGH atau LOW pada pin digital. Pin yang diberi nilai sebelumnya harus telah diaktifkan sebagai OUTPUT dengan pinMode. Nilai HIGH dan LOW bisa disamakan artinya dengan “on” dan “off”, “1” atau “0”, “hidup” dan “mati”.

Syntax

digitalWrite(pin, value);

Parameter
pinnomor pin pada Arduino, atau variabel yang berisi nomor pin
valueHIGH untuk membuat pin menjadi “on”
LOW untuk membuat pin menjadi “off”
Contoh Penggunaan
digitalWrite(4, HIGH);Perintah pin 4 “on”
digitalWrite(4,LOW);Perintah pin 4 “off”
int ledPin = 4;
digitalWrite (ledPin, HIGH);
perintah variabel ledPin (pin 4) “on”

Delay

Deskripsi

Menghentikan program sementara selama x milidetik (ms)

Syntax

delay(ms)

Parameter
msDiisi dengan nilai waktu dalam milidetik, misalnya 1000 = 1 detik, 500 = 1/2 detik, 2000 = 2 detik
Contoh Penggunaan
delay(1000);menghentikan pembacaan program selama 1 detik
delay(500);menghentikan pembacaan program selama 1/2 detik

Variabel

Penjelasan tentang variabel bisa dibaca pada tulisan dibawah ini:

JudulLink Bacaan
Menggunakan Variabelhttps://helmydx.my.id/2023/11/19/menggunakan-variabel/
Variabel dan Operator matematikahttps://helmydx.my.id/2023/11/23/variabel-dan-operator-aritmatika/

Fungsi Logika dan Perulangan

JudulLink Bacaan
Logika IF, IF-ELSE, ELSEhttps://helmydx.my.id/2023/11/24/logika-if/
Perulangan FOR dan Whilehttps://helmydx.my.id/2023/11/26/perulangan-for-dan-while/

KISI-KISI dan CONTOH SOAL dapat kalian download pada link dibawah ini:

https://docs.google.com/document/d/1d9mOmrlIFWuFzNB7_1PuiyntWD7tbq0Q/edit?usp=sharing&ouid=104727008984896572320&rtpof=true&sd=true

Selamat melaksanakan ujian

Perulangan FOR dan WHILE

Perulangan FOR dan WHILE

Kalau sebelumnya kita sudah mengetahui cara menggunakan fungsi logika IF da ELSE, maka kali ini kita akan mempelajari bagaimana caranya agar Arduino bisa melakukan kendali lebih dalam lagi dan menyederhanakan program kita buat. Pada akhir tulisan ini, kita akan bisa membuat animasi lampu LED seperti pada video yang ada dibawah ini:

Dari video diatas, secara sederhana kita bisa membuatnya dengan program seperti dibawah ini:

void loop () {
   digitalWrite(8, HIGH);
   delay(100);
   digitalWrite(8, LOW);
   delay (100);
// diketik ulang sampai 10 kali

   digitalWrite(9, HIGH);
   delay(100);
   digitalWrite(9, LOW);
   delay (100);
//diketik ulang sampai 10 kali

   digitalWrite(10, HIGH);
   delay(100);
   digitalWrite(10, LOW);
   delay (100);
//diketik ulang sampai 10 kali
}
  

Jika jumlah lampu LED yang digunakan hanya 2 atau 3 buah saja tentu akan sangat mudah, namun, bagaimana jika lampu LED yang kita gunakan berjumlah lebih dari 10? Tentu saja program yang akan kita ketik akan sangat panjang.

Untuk itu kita akan mempelajari cara melakukan perulangan pembacaan program dengan fungsi FOR agar program yang kita ketik akan lebih pendek dan sederhana.

FOR


FOR adalah salah satu jenis perulangan (loop) dalam pemrograman yang digunakan untuk mengulangi blok kode secara berulang.

Secara umum fungsi FOR akan dituliskan sebagai berikut:

  • Nilai awal adalah nilai permulaan hitungan perulangan, biasanya dituliskan dalam bentuk variabel angka (integer). Nilai awal ini digunakan sebagai titik awal perulangan. dalam hal ini nilai awal adalah: int i = 0; yang bisa diartikan sebagai “nilai awal adalah 0”
  • Kondisi yang akan diperiksa adalah kondisi yang akan terus dievaluasi setiap kali program diulang, jika kondisi ini masih “benar” atau “true” maka perulangan akan terjadi dan program akan dibaca oleh Arduino dan sebaliknya jika kondisi “false” atau “salah” maka perulangan akan berhenti dan Arduino aka melanjutkan pembacaan program ke baris berikutnya. kondisi yang akan dievaluasi dari contoh diatas adalah: i<10; yang bermakna “jika nilai i lebih dari 10”
  • Penambahan pada bagian akhir loop ditulis i++, yang artinya “nilai i ditambah 1”. nilai i akan bertambah 1 setiap kali perulangan sampai akhir nya nilai i < 10
  • perulangan program akan terus terjadi jika nilai i kurang dari 10, ketika nilai i sudah lebih dari 10 maka Arduino akan keluar dari perulangan dan baris berikutnya

Perhatikan contoh dibawah ini

for(int i = 0; i<10; i++) {
    digitalWrite(8, HIGH);
    delay(300);
    digitalWrite(8,LOW);
    delay(300);
}
delay(2000);

Program diatas akan mengedipkan lampu LED pada pin 8 sebanyak 10 kali lalu berhenti selama 2 detik dengan perulangan sebagai berikut:

  • pada putaran pertama nilai i adalah 0, program akan membaca barisan yang ada didalam blok sehingga LED akan berkedip hidup dan mati sekali dengan delay 300 setelah itu nilai i bertambah 1 sehingga i=1
  • pada putaran kedua fungsi for akan mengevaluasi kondisi variabel i apakah bernilai < 10, jika iya, program akan membaca barisan yang ada didalam blok sehingga LED akan berkedip hidup dan mati lagi dengan delay 300 dan nilai i akan bertambah lagi 1 sehingga i =2
  • putaran ketiga dan selanjutnya sama dengan putaran yang kedua, jika nilai i masih kurang dari 10, LED akan berkedip dan i ditambah satu.
  • Akhirnya pada putaran ke 11 nilai i sudah lebih dari 10, maka program akan keluar dari perulangan dan membaca baris berikutnya yaitu delay(2000);

perhatikan output nya pada video berikut

Jadi untuk menghidupkan 3 lampu secara bergantian dimana setiap lampu berkedip-kedip sebanyak 10 kali, program yang harus kita tulis adalah:

  for(int a=0; a<=10; a++){
    digitalWrite(8,HIGH);
    delay(200);
    digitalWrite(8,LOW);
    delay(200);
  }
  for(int b=0; b<=10; b++){
    digitalWrite(9,HIGH);
    delay(200);
    digitalWrite(9,LOW);
    delay(200);
  }
  for(int c=0; c<=10; c++){
    digitalWrite(10,HIGH);
    delay(200);
    digitalWrite(10,LOW);
    delay(200);
  }

delay(2000);

dan hasilnya akan terlihat seperti ini:

WHILE

Selain menggunakan FOR, kita bisa menggunakan fungsi WHILE untuk melakukan perulangan kondisional.

//WHILE

int a = 0;
while(a<20){
   digitalWrite(8, HIGH);
   delay(200);
   digitalWrite(8, LOW);
   delay(200);
   a++;
}

dan hasilnya sama dengan menggunakan FOR:

Logika IF, ELSE IF dan ELSE

white and green computer parts beside laptop

Program yang telah kita buat sebelumnya akan dibaca dan dilaksanakan oleh Arduino baris perbaris secara berurutan dan ketika program sudah sampai ke baris yang paling bawah maka Arduino akan membaca program dari atas kembali, perhatikan kembali program mengedipkan lampu dibawah ini:

int waktu = 100;
int Pin = 3;

void setup () {
   pinMode(Pin, OUTPUT); 
}

void loop () {
   digitalWrite(Pin, HIGH); 
   delay(waktu); 
   digitalWrite(Pin, LOW);
   delay(waktu);
   waktu=waktu + 50;
}

Pada program diatas digitalWrite(Pin, HIGH) akan pertama kali dibaca oleh Arduino lalu dilanjutkan ke baris berikutnya yakni delay(waktu). Begitu seterusnya sampai baris terakhir, lalu program akan membaca ulang dari atas kembali.

Waktu delay secara otomatis dan bertahap akan bertambah dengan penambahan nilai 50 setiap kali perulangan program yang mengakibatkan lama-kelamaan lampu akan kedipan lampu akan melambat seperti pada video dibawah ini:

Program diatas memiliki 1 kelemahan, yaitu nilai variabel “waktu” akan bertambah terus sampai akhirnya lampu LED tidak berkedip lagi. Pada tulisan ini, kita akan mencoba untuk menambah beberapa baris program agar nilai variabel “waktu” akan kembali ke nilai awal ketika mencapai kondisi tertentu.

Perhatikan program berikut ini:

int waktu = 100;
int Pin = 3;

void setup () {
   pinMode(Pin, OUTPUT); 
}

void loop () {
   digitalWrite(Pin, HIGH); 
   delay(waktu); 
   digitalWrite(Pin, LOW); 
   delay(waktu); 
   waktu=waktu + 50; 

   if(waktu == 1000){
     waktu = 100; 
   }  
}

Penjelasan

Pada baris ke 13, nilai variabel “waktu” saat ini ditambah 50, sehingga setiap kali perulangan nilai “waktu” akan bertambah 50 menjadi 150, 200, 250 dst.

Pada baris ke 15 kita tambahkan fungsi logika IF:

if(waktu == 1000) {
   waktu = 100;
}

fungsi logika diatas bermakna “jika nilai variabel waktu sama dengan 1000, maka nilai variabel waktu kembali ke 100”. Dengan cara ini setiap kali nilai variabel “waktu” yang digunakan oleh delay mencapai nilai 1000, maka pada perulangan berikutnya akan kembali ke nilai 100 sehingga lampu LED berkedip cepat kembali. perhatikan video berikut ini:

Logika IF ini bisa diaplikasikan ke berbagai project seperti mengendalikan output berdasarkan hasil pembacaan sensor. Kita juga dapat membuat beberapa kondisi bertingkat dengan menambahkan ELSE. Sebagai contoh, kita bisa mengendalikan sebuah buah kipas angin dan sebuah AC berdasarkan kondisi suhu yang dirasakan sensor saat ini. perhatikan contoh dibawah ini.

if(suhu>=30){
  hidupkanAC;
  matikanKipas;
}
else {
  hidupkanKipas;
  matikanAC;
}

Jika (if) suhu ruangan lebih besar atau sama dengan 30 derajat celcius, maka hidupkan AC dan matikan kipas angin, jika lain daripada itu (else) hidupkan kipas angin dan matikan AC.

fungsi logika IF juga bisa terdiri dari banyak kondisi, misalnya kita akan mengendalikan kecepatan sebuah kipas angin berdasarkan jumlah orang yang masuk kedalam ruangan. Perhatikan lagi contoh program dibawah ini:

if (orang==1){
   kipasSpeed1;
}
else if (orang <=3) {
   kipasSpeed2;
}
else if (orang > 5) {
   kipasSpeed3;
}
else {
   matikanKipas;
}

Jika orang didalam ruangan berjumlah sama dengan 1 maka hidupkan kipas dengan kecepatan 1, jika orang kurang dari atau sama dengan 3 orang, maka kipas kecepatan 2, jika orang lebih dari 5, maka hidupkan kipas kecepatan 3, selain daripada itu matikan kipas.

Pada program diatas, kita menggunakan operator sama dengan (==), lebih kecil dari atau sama dengan (<=) dan lebih besar dari (>). Lambang lengkap dari operator-operator diatas beserta fungsinya bisa kita lihat pada tabel dibawah ini

OperatorArtiContohHasil
<Kurang dari7 < 8
8 > 7
true
false
>Lebih dari8 > 7
7 > 8
true
false
<=Kurang dari sama dengan8 <= 7
7 <=7
true
true
>=lebih dari sama dengan7 >= 7
8 >= 7
true
true
==Sama dengan8 == 8
8 == 9
True
False
!=tidak sama dengan8 != 8
8 != 9
false
true

Jadi, dengan logika IF, ELSE IF, dan ELSE kita bisa membuat sistem kendali Arduino dengan berbagai kondisi atau syarat sesuai keinginan kita atau sesuai pembacaan sensor.

Demikian tulisan ini, sampai jumpa di materi berikutnya yang akan membahas tentang fungsi perulangan for dan while.

Variabel dan Operator Aritmatika

Variabel dan Operator Aritmatika

Sebelumnya kita telah mengenal apa itu variabel dan cara menggunakannya untuk mengganti nilai delay() seperti pada program dibawah ini:

Pada program diatas, kita hanya butuh mengganti nilai variabel “waktu” dengan nilai angka yang kita ingikan. jika kita tuliskan int waktu = 100; maka secara otomatis nilai “waktu” yang terdapat didalam delay akan berubah menjadi 100 juga.

Selain itu, kita juga dapat memanipulasi data yang ada didalam variabel secara otomatis dengan cara melakukan operasi aritmatika didalam void loop. Perhatikan contoh berikut.

int waktu = 100;
int Pin = 3

void setup () {
   pinMode(Pin, OUTPUT);
}

void loop () {
   digitalWrite(Pin, HIGH);
   delay(waktu);
   digitalWrite(Pin, LOW);
   delay(waktu);
   waktu = waktu + 50;
}

Penjelasan

Pada baris pertama dan kedua kita deklarasikan variabel bernama waktu dan pin, dimana variabel waktu memiliki data angka bernilai 100 dan variabel pin bernilai 3. nilai pada variabel waktu akan kita gunakan sebagai nilai untuk parameter delay dan nilai pada varibel Pin akan kita gunakan untuk mendefinisikan nomor pin.

int waktu = 100;
int Pin = 3

Pada baris ke-5 kita tidak lagi menuliskan pinMode(3, OUTPUT), melainkan pinMode(Pin, OUTPUT). Begitu juga pada garis ke-9 dan 11 tidak lagi dituliskan sebagai digitalWrite(3, HIGH) atau digitalWrite(3, LOW), melainkan digitalWrite(Pin, LOW).

digitalWrite(Pin, HIGH);

Fungsi delay juga sudah menggunakan nilai variabel “waktu” sebagai nilai parameternya sehingga ditulis

delay(waktu);

Berikutnya pada baris ke-13, kita menemukan instruksi

waktu = waktu + 50;

Baris ini bermakna “nilai variabel waktu adalah sama dengan nilai saat ini ditambah 50” sehingga variabel “waktu” akan berubah nilainya secara otomatis dari yang awalnya bernilai 100 menjadi 150 (waktu + 50) dan karena operasi aritmatika digunakan di dalam void loop() maka setiap kali perulangan program terjadi nilai delay() akan bertambah 50, sehingga lama kelamaan LED akan berkedip lebih lambat dari sebelumnya. Perhatikan video berikut:

Selain penjumlahan, kita juga bisa menggunakan operator aritmatika lainnya yaitu:

OperatorLambang
Penjumlahan+
Pengurangan
Perkalian*
Pembagian/
Modulus / Sisa bagi%

Akhirnya, semoga tulisan ini dapat dipahami dan menjadi sumber pengetahuan bagi kita semua. Pada tulisan berikutnya kita akan pengendalian dengan menggunakan logika dan algoritma perulangan dan mengimplementasikannya ke pengendalian LED.

Menggunakan Variabel

Menggunakan Variabel

Sebelumnya kita telah mempelajari dan mempraktekkan bagaimana cara mengendalikan lima buah lampu LED. Pada praktikum tersebut, kalian menuliskan program untuk menghidupkan LED secara berurutan sebagai berikut:

Pada program yang ditulis diatas, kita menuliskan delay(1000) sebanyak 6 kali dan setiap kali kita ingin menambah kecepatan kedipan lampu maka kita harus mengganti nilai 1000 yang ada didalam delay ke nilai yang lebih kecil. Penggantian nilai ini cukup memakan waktu karena kita harus mengganti nilai yang ada didalam delay satu persatu. Belum lagi jika kemudian baris program yang kita buat semakin banyak, misalnya sampai 300-an baris, maka kita akan mendapatkan kesulitan. oleh karena itu, untuk mempersingkat waktu perbaikan atau perubahan nilai, maka kita dapat menggunakan variabel untuk menyimpan suatu data yang mana nilainya bisa dipanggil dan digunakan baris lainnya didalam program.

variabel

Variabel adalah suatu simbol atau nama yang digunakan untuk merepresentasikan atau menyimpan nilai atau data dalam suatu program komputer atau dalam konteks matematika. Dalam pemrograman, variabel digunakan untuk menyimpan informasi yang dapat diakses dan diubah selama eksekusi program.

Setiap variabel memiliki tipe data yang menentukan jenis nilai yang dapat disimpan di dalamnya, seperti bilangan bulat, pecahan, string, atau jenis data lainnya. Selain itu, variabel juga memiliki cakupan (scope), yang mengindikasikan bagian dari program di mana variabel dapat diakses.

Penggunaan variabel dalam pemrogramman sama dengan penggunaannya dalam ilmu matematika, misalnya:

A + B = C

dimana A, B dan C adalah variabel yang masing-masing memiliki nilai.

A = 10

B = 20

Jadi, A + B = C sama artinya dengan 10 + 20 = 30.

Begitu pula dengan penggunaan varibel dalam programming. perhatikan contoh program berikut ini:

Keterangan program:

  1. baris 1-3 adalah pendefinisian variabel, masing-masing diberi nama A, B dan C.
  2. Pada baris ke 6, Arduino di instruksikan untuk menampilkan nilai variabel C pada serial monitor dan ketika instruksi ini dijalankan, pada serial monitor akan tampil nilai 0.
  3. Baris ke 7 kita menginstruksikan Arduino untuk melakukan operasi matematika A + B = C
  4. Pada baris ke 8 kita kembali menampilkan nilai variabel C pada serial monitor dan kali ini nilai C sudah berubah menjadi 30 yang berasal dari penjumlahan A+ B (10+20).

Menggunakan variabel untuk mengubah nilai delay( )

Dengan pengetahuan dasar kita tentang variabel, maka kita bisa memodifikasi program yang telah kita buat sebelumnya agar lebih mudah diubah nilai delay ( ) nya menjadi seperti ini:

Pada program diatas, kita menambahkan variabel bernama “waktu” pada baris pertama dan variabel ini memiliki data atau nilai sebesar 500. Selanjutnya, pada penulisan delay, kita menuliskan delay(waktu) yang artinya sama dengan delay(500) karena nilai variabel waktu adalah 500. Jika kita mengganti nilai variabel “waktu” ke nilai lainnya, misalnya 300, maka seluruh nilai pada delay akan berubah secara otomatis mengikuti nilai variabel “waktu” sehingga kita tidak lagi mengganti nilai delay satu persatu seperti sebelumnya.

Nah, itu saja penjelasan saya tentang penggunaan variabel dan pada tulisan berikutnya kita akan mengenal jenis-jenis variabel dan tipe-tipe data nya. Sekian dan terima kasih

Praktikum 2 – Mengendalikan lebih dari 3 buah LED dengan Arduino

Praktikum 2 – Mengendalikan lebih dari 3 buah LED dengan Arduino

Sebelumnya kalian sudah memperagakan cara mengendalikan 1 sampai 3 buah lampu LED dengan menggunakan Arduino. Kalian sudah mengenal beberapa fungsi dasar pada saaat memprogram Arduino yaitu setup(), loop(), pinMode(), digitalWrite() dan delay(). Selain itu, kalian juga sudah mempelajari bagaimana cara membuat rangkaian elektronik dengan menggunakan Arduino dan kabel jumper.

Pada praktikum kali ini kita akan menjelajahi penggunaan breadboard lebih dalam lagi. Untuk itu, penting bagi kalian untuk membaca tulisan ini dan tulisan sebelumnya tentang Praktikum Arduino – Blink supaya kalian lebih memahami cara kerja Arduino, breadboard dan rangkaian elektronik.

GND

Pada praktikum sebelumnya tentang Blink kalian sudah membuat rangkaian yang terdiri dari arduino dan LED. pada rangkaian itu, kaki LED yang panjang (+) dihubungkan ke salah satu pin pada Arduino dan kaki LED yang pendek dihubungkan ke resistor secara seri lalu dihubungkan lagi ke pin GND pada Arduino seperti pada gambar dibawah ini:

Jika kita ingin mengontrol LED lainnya, kita tinggal menambahkan LED dan menghubungkannya ke pin-pin yang tidak terpakai antara pin 1 sampai 13 dan ke pin GND. Namun demikian, ketika kalian akan menghubungkan lebih dari 3 LED ke Arduino, maka kalian akan menemukan masalah yaitu kurangnya pin GND. Hal ini dikarenakan Arduino hanya memiliki 3 pin GND saja yaitu pada sisi kanan atas bersebelahan dengan pin 13 dan 2 buah lagi berada di barisan power.

Untuk mengatasi hal tersebut diatas, maka kita bisa menggunakan 1 pin GND saja untuk semua sambungan yang memiliki anotasi negatif (-) dengan cara mencabangkan pin GND dengan menggunakan breadboard. perhatikan gambar dibawah ini

Pada gambar diatas, kita cukup menghubungkan satu pin GND ke salah satu titik lubang yang memiliki tanda garis biru (-) dan secara otomatis semua titik yang ada pada barisan tersebut akan menjadi GND.

Rangkaian 5 LED dengan menggunakan Arduino

Setalah memahami cara mencabangkan pin GND agar bisa dipakai bersama-sama oleh banyak komponen, maka sekarang kita sudah bisa membuat rangkaian dengan menggunakan 5 LED dengan menggunakan Arduino.

Peragakanlah rangkaian berikut ini:

Setelah rangkaian selesai dibuat, buka aplikasi Arduino IDE pada komputer atau laptop kalian, lalu programlah Arduino agar bisa menyalakan ke 5 LED secara bergantian dari lampu 1 ke lampu 5. Sebagai referensi, kalian bisa buka kembali tulisan sebelumnya disini : praktikum-arduino-blink

Silahkan diperagakan dan semoga berhasil.

Mengendalikan Motor DC dengan modul L298N dan Arduino

boy in denim jacket holding a toy with electric wires and wheel

Motor DC adalah mesin listrik yang mengubah energi listrik menjadi energi mekanik/gerakan. Motor DC sangat cocok untuk digunakan untuk menggerakkan roda robot. Pada tulisan ini, kita akan mempelajari cara mengendalikan motor DC dengan menggunakan modul L298N dan Arduino.

Pinout Modul L298N

Keterangan Gambar

Motor OutKonektor untuk menghubungkan motor
VCCInput tegangan dari power supply atau baterai
GNDGND
5VInput Logic 5V
ENA & ENBDigunakan untuk mengontrol menghidupkan/mematikan dan mengatur kecepatan motor
IN1 & IN2Kontrol arah putaran motor 1
IN3 & IN4Kontrol arah putaran motor 2

Cara Kerja Modul

INPUT 1INPUT 2Arah Putaran
LOWLOWMati
HIGHLOWMaju
LOWHIGHMundur
HIGHHIGHMati

Gambar Rangkaian

Coding

// Motor A
int enA = 9;
int in1 = 8;
int in2 = 7;
// Motor B
int enB = 3;
int in3 = 5;
int in4 = 4;

void setup() {
	//Semua pin motor sebagai output
	pinMode(enA, OUTPUT);
	pinMode(enB, OUTPUT);
	pinMode(in1, OUTPUT);
	pinMode(in2, OUTPUT);
	pinMode(in3, OUTPUT);
	pinMode(in4, OUTPUT);
	
	// motor dimatikan di awal
	digitalWrite(in1, LOW);
	digitalWrite(in2, LOW);
	digitalWrite(in3, LOW);
	digitalWrite(in4, LOW);
}

void loop() {
	directionControl();
	delay(1000);
	speedControl();
	delay(1000);
}

// fungsi dibawah ini digunakan untuk mengontrol arah putaran motor
void directionControl() {
	// kecepatan maksimum (bisa diatur antara 0-255)
	analogWrite(enA, 255);
	analogWrite(enB, 255);

	// arah maju
	digitalWrite(in1, HIGH);
	digitalWrite(in2, LOW);
	digitalWrite(in3, HIGH);
	digitalWrite(in4, LOW);
	delay(2000);
	
	// arah mundur
	digitalWrite(in1, LOW);
	digitalWrite(in2, HIGH);
	digitalWrite(in3, LOW);
	digitalWrite(in4, HIGH);
	delay(2000);
	
	// motor mati
	digitalWrite(in1, LOW);
	digitalWrite(in2, LOW);
	digitalWrite(in3, LOW);
	digitalWrite(in4, LOW);
}

// fungsi untuk mengatur kecepatan motor
void speedControl() {
	// hidupkan motor
	digitalWrite(in1, LOW);
	digitalWrite(in2, HIGH);
	digitalWrite(in3, LOW);
	digitalWrite(in4, HIGH);
	
	// Perputaran mulai dari lambat ke cepat
	for (int i = 0; i < 256; i++) {
		analogWrite(enA, i);
		analogWrite(enB, i);
		delay(20);
	}
	
	// Perputaran mulai dari cepat ke lambat
	for (int i = 255; i >= 0; --i) {
		analogWrite(enA, i);
		analogWrite(enB, i);
		delay(20);
	}
	
	// Matikan motor
	digitalWrite(in1, LOW);
	digitalWrite(in2, LOW);
	digitalWrite(in3, LOW);
	digitalWrite(in4, LOW);
}
//ulang kembali

Setelah rangkaian dan coding selesai dikerjakan, langkah berikutnya adalah mengupload program yang kita buat tadi lalu menghubungkan rangkaian ke powersupply atau baterai 12 V. Perhatikan gerakan motor dan bandingkan dengan coding yang telah kita buat.

Sekian dan terima kasih.

Praktikum Arduino – Blink

Praktikum Arduino – Blink

Seperti yang kita telah pahami bersama, Arduino adalah sebuah papan mikrokontroler yang dapat digunakan untuk mengendalikan berbagai macam sensor dan komponen elektronik sesuai dengan perintah-perintah yang kita berikan lewat penulisan program.

Pada tulisan ini, kita akan memahami dan memperagakan cara mengendalikan sebuah LED dengan Arduino. Kita akan menyalakan dan mematikan LED tersebut secara otomatis dengan rentang waktu tertentu. Dalam peragaan ini juga kita akan mempelajari cara penulisan program Arduino yang kita kenal sebagai sketch dan pengenalan beberapa fungsi-fungsi yang sering digunakan dalam pemrograman. kamu juga dapat menonton video dibawah ini untuk mempermudah pembelajaran secara visual.

Sebelum kita masuk ke bagian utama dari peragaan ini, kita membutuhkan beberapa alat dan bahan, yaitu:

Arduino UNO1 buah
Breadboard1 buah
LED (Light Emitting Diode)1 buah
Resistor 220 Ohm1 buah
Kabel JumperSecukupnya
Kabel USB1 buah
Laptop / PC1 buah

Cara Menggunakan Breadboard

Breadboard disebut juga sebagai papan uji coba elektronik. papan ini digunakan untuk mempermudah kita menguji sebuah rangkaian elektronik tanpa harus melakukan proses soldering. Selain itu, penggunaan breadboard juga memungkinkan kita untuk melakukan penggantian maupun penambahan komponen dengan mudah.

Kalau kita perhatikan gambar diatas, sebuah breadboard terdiri dari lubang-lubang kecil yang tersusun rapi dan memiliki 4 kelompok berbeda. 2 kelompok yang berada di sisi breadboard disebut dengan Power Rails, dan 2 kelompok yang ada dibagian tengah disebut dengan DIP support.

Power Rails berfungsi sebagai penghubung sumber tenaga listrik. Lubang-lubang pada power rail ini terhubung satu sama lain secara horizontal. perhatikan gambar berikut:

Setiap titik kuning pada gambar diatas menandakan bahwa titik-titik tersebut terhubung satu sama lainnya.

Gambar rangkaian dengan dan tanpa breadboard

Gambar diatas adalah gambar rangkaian antara Arduino, LED dan Resistor tanpa menggunakan breadboard. Sedangkan gambar dibawah ini adalah gambar skema rangkaian dengan menggunakan breadboard. Perhatikan kembali jalur-jalur yang terdapat pada breadboard

Praktikum Arduino – Blink

Untuk memprogram sebuah Arduino, dibutuhkan sebuah aplikasi yang bernama Arduino IDE. Aplikasi ini harus terinstal di laptop atau PC sebelum kita melakukan coding. Arduino IDE dapat di download lewat link https://www.arduino.cc/en/software.

Setelah Arduino IDE berhasil di download dan sudah terinstal, maka kita bisa langsung melakukan coding Arduino.

setup() dan loop()

langkah berikutnya, kita akan melakukan penulisan perintah-perintah agar Arduino bisa melakukan tugasnya sesuai dengan yang kita inginkan (coding). Untuk melakukannya, pertama-tama kita buka aplikasi Arduino IDE yang sudah kita instal sebelumya. Aplikasi Arduino IDE yang sudah terbuka akan terlihat seperti gambar dibawah ini:

Pada lembar kerja terlihat dua baris fungsi yaitu void setup() dan void loop(). Kedua fungsi tersebut merupakan fungsi dasar yang harus ada setiap kali kita memprogram Arduino. Jika salah satu atau kedua fungsi tersebut tidak ada atau hilang, maka kita akan mengalami error ketika akan mengupload program ke Arduino.

void setup() adalah fungsi yang perintah-perintah didalamnya hanya di eksekusi atau dijalankan sekali saja oleh Arduino yaitu saat Arduino dihidupkan atau di restart. Karena hanya akan dijalankan sekali saja, perintah-perintah yang ditulis didalamnya biasanya berisi perintah-perintah yang berupa pengaturan dasar misalnya penentuan mode pin sebagai input / output, mengaktifkan komunikasi serial, mengaktifkan sensor, display dsb.

void loop() adalah fungsi yang perintah-perintah didalamnya akan dijalankan berulang-ulang selama Arduino aktif dan hanya akan berhenti jika Arduino diaktifkan atau di restart. semua perintah dalam void loop() akan dieksekusi secara berurutan mulai dari perintah yang paling atas sampai kebawah. Setalah semua perintah di laksanakan, Arduino akan mengulang lagi perintah yang diberikan dari atas dan seterusnya sampai arduio di matikan atau di reset.

Blink

Setelah memahami kedua fungsi diatas, langkah berikutnya kita akan menuliskan perintah-perintah program dengan mengetikkan program dibawah ini langsung ke Arduino IDE:

Perhatikan kembali program yang telah ditulis, pastikan tidak ada error atau kesalahan misalnya kesalahan tulisan, huruf besar/kecil, titik koma, tanda kurung buka dan tutup dll secara manual. Setelah itu, klik tombol centang untuk memeriksa error secara otomatis. Jika tidak terdapat error maka lanjutkan ke proses upload dengan menekan tombol upload (tombol dengan tanda panah), pastikan Arduino sudah dihubungkan ke laptop atau PC dan juga sudah memilih jenis board dan port dengan benar pada aplikasi Arduino IDE lalu tunggu sampai selesai.

Penjelasan Program

Selain setup() dan loop(), pada penulisan program kita menemukan beberapa fungsi lainnya yaitu pinMode, digitalWrite dan delay yang masing-masing memiliki kegunaan yang berbeda-beda. Dibawah ini, kita akan membahas fungsi-fungsi tersebut satu persatu dengan lengkap agar dapat diaplikasikan kembali pada pemrograman berikutnya.

pinMode()

Deskripsi

pinMode berfungsi untuk mengkonfigurasikan atau mengaktifkan pin sebagai output ataupun input.

Syntax

pinMode(pin, mode);

Parameter
pinnomor pin pada Arduino, atau variabel yang berisi nomor pin
modemode pengaturan pin : OUTPUT, INPUT, INPUT_PULLUP
Contoh Penggunaan
pinMode(4, INPUT);Mengaktifkan pin 4 sebagai input (biasanya digunakan untuk membaca sensor)
pinMode(4, OUTPUT);Mengaktifkan pin 4 sebagai output
int ledPin = 4;
pinMode(ledPin, OUTPUT);
Mengaktifkan ledPin (pin 4) sebagai output)
pinMode(4, INPUT_PULLUP);mengaktifkan 4 sebagai input dengan pull up resistor internal

digitalWrite()

Deskripsi

Memberi nilai berupa HIGH atau LOW pada pin digital. Pin yang diberi nilai sebelumnya harus telah diaktifkan sebagai OUTPUT dengan pinMode. Nilai HIGH dan LOW bisa disamakan artinya dengan “on” dan “off”, “1” atau “0”, “hidup” dan “mati”.

Syntax

digitalWrite(pin, value);

Parameter
pinnomor pin pada Arduino, atau variabel yang berisi nomor pin
valueHIGH untuk membuat pin menjadi “on”
LOW untuk membuat pin menjadi “off”
Contoh Penggunaan
digitalWrite(4, HIGH);Perintah pin 4 “on”
digitalWrite(4,LOW);Perintah pin 4 “off”
int ledPin = 4;
digitalWrite (ledPin, HIGH);
perintah variabel ledPin (pin 4) “on”

Delay

Deskripsi

Menghentikan program sementara selama x milidetik (ms)

Syntax

delay(ms)

Parameter
msDiisi dengan nilai waktu dalam milidetik, misalnya 1000 = 1 detik, 500 = 1/2 detik, 2000 = 2 detik
Contoh Penggunaan
delay(1000);menghentikan pembacaan program selama 1 detik
delay(500);menghentikan pembacaan program selama 1/2 detik

Membaca intensitas cahaya dengan menggunakan LDR

Membaca intensitas cahaya dengan menggunakan LDR

LDR (Light Dependent Resistor) adalah sejenis resistor variabel yang nilai hambatannya berubah-ubah sesuai intensitas atau tingkat kecerahan cahaya. Ketika cahaya mengenai permukaan LDR, maka konduktivitas atau kekuatan hantaran listrik pada bahan LDR akan meningkat. Begitu pula sebaliknya, kemampuan menghantarkan listrik akan menurun apabila LDR tidak terpapar cahaya.

berdasarkan sifatnya ini, kita bisa menggunakannya sebagai sensor peka cahaya yang bisa dimanfaatkan untuk berbagai inovasi elektronik misalnya lampu jalan otomatis atau jendela otomatis.

Penggunaan LDR sebagai sensor dengan Arduino

LDR merupakan komponen analog, karena LDR menaikkan dan menurunkan daya hantar listrik dengan cara merubah nilai hambatan karena perubahan cahaya. Oleh karena itu, LDR akan dihubungkan ke pin Analog input pada Arduino. Perhatikan rangkaian berikut ini:

Setelah rangkaian selesai dibuat, buka software Arduino IDE dan ketikkan program dibawah ini:

int sensorPin = A0; 

int sensorValue = 0;
void setup() {
Serial.begin(9600); 
}
void loop() {
sensorValue = analogRead(sensorPin); 
Serial.println(sensorValue); 

delay(100);

}

Setelah itu, hubungkan Arduino ke komputer atau laptop kamu dan upload program yang telah ditulis tadi. Berikutnya, perhatikan hasil output lewat serial monitor sambil perlahan-lahan menutupi LDR yang terpapar cahaya dengan menggunaan tangan atau benda lainnya.

Proyek membuat lampu otomatis dengan LDR

Setelah kita memperhatikan dan memahami cara kerja LDR, berikutnya kita akan menggunakan sifat-sifat LDR ini untuk mengontrol lampu agar hidup dan mati sesuai dengan intensitas cahaya yang diterima nya. Perhatikan gambar dan kode dibawah ini:

int sensorPin = A0; //pin analog yang digunakan untuk membaca LDR
int ledPin = 7; //pin LED

int nilaiSensor = 0; //nilai awal sensor LDR

void setup() {
pinMode(ledPin,OUTPUT); //mengaktifkan pin "ledPin" sebagai output
Serial.begin(9600); //mengaktifkan serial monitor untuk membaca nilai dari sensor
}

void loop() {
nilaiSensor = analogRead(sensorPin); //membaca nilai yang dihasilkan oleh sensor
Serial.println(nilaiSensor); //menampilkan hasil pembacaan nilai sensor ke serial monitor
  if(nilaiSensor < 600){ //jika nilai sensor mencapai kurang dari 600, maka.....
    digitalWrite(ledPin,HIGH); //lampu akan dihidupkan
  }
    else{ //jika tidak.....
      digitalWrite(ledPin,LOW); //maka lampu akan dimatikan
    }
      
delay(100);

}

Program diatas sudah dilengkapi dengan penjelasan di tiap baris nya, silahkan dipahami dan diperagakan sesuai dengan hasil pengamatan yang telah dilakukan.

Demikian tulisan ini, semoga bermanfaat, selamat bereksperimen.

Sinyal Analog dan Digital

macbook pro on brown wooden table

Belakangan ini dengan terjadinya proses migrasi siaran televisi analog menjadi siaran televisi digital, istilah “analog” dan “digital” menjadi perbincangan dimana-mana. Selain itu, sesuai materi pembelajaran kita, Arduino memiliki pin-pin yang diberi label “digital” dan “analog”. Apa itu “digital” dan “analog”? Mengapa kita harus mempelajarinya?

Sinyal Analog

Sinyal analog adalah sinyal yang memiliki bentuk gelombang yang kontinu atau berkelanjutan dan tidak terputus untuk membawa informasi. Informasi yang dibawa oleh sinyal analog dapat diterjemahkan berdasarkan perubahan bentuk gelombang terhadap waktu. Sinyal analog ini biasanya direpresentasikan sebagai sinyal yang bersifat natural atau berasal dari alam misalnya gelombang suara, getaran, arus dan tegangan listrik, gelombang radio dan lain-lain. Salah satu kelemahan utama dari sinyal analog adalah sinyal analog sangat mudah terganggu oleh kondisi lingkungan sekitarnya seperti hambatan listrik, elektromagnetik atau gelombang analog lainnya sehingga menyebabkan turunnya kualitas informasi yang diterima. Hal ini bisa kita rasakan ketika kita menonton televisi atau siaran radio yang masih menggunakan teknologi analog sebagai medianya. Dimana kualitas gambar atau suara akan terganggu ketika cuaca mendung atau sedang hujan.

black rotary phone
Photo by Pixabay on Pexels.com

Sinyal Digital

Sinyal digital adalah sinyal yang bersifat diskrit atau terputus-putus yang memiliki bentuk gelombang berbentuk kotak. sinyal digital ini biasanya hanya memiliki 2 nilai saja yaitu 1 atau 0, “on” atau “off”, “high” atau “low” yang akan diterjemahkan oleh komputer sebagai data dan merubahnya menjadi output berupa suara dan gambar berdasarkan instruksi dari program komputer. Sinyal digital merupakan sinyal yang tidak mudah terkena gangguan dari luar sehingga lebih stabil sehingga kualitas informasinya terjaga. Contoh perangkat yang menggunakan sinyal digital antara lain adalah komputer dan mikrokontroler.

macbook pro on brown wooden table
Photo by Andrew Neel on Pexels.com

Perbedaan Sinyal Analog dan Sinyal Digital

Sinyal analogSinyal Digital
Bersifat kontinu atau terus menerusBersifat diskrit atau terputus-putus
Memiliki nilai yang bervariasi misalnya dari 0 – 1024Hanya memiliki 2 nilai yaitu 1 dan 0
Memiliki sinyal berbentuk gelombang sinusMemiliki bentuk gelombang kotak
Suara, gelombang radio, elektromagnetik, suara alat musik, getaran dllKomputer, perangkat optik (CD, DVD), mikrokontroler, USB
Merekam gelombang suara dan membawanya secara langsungMerubah gelombang suara menjadi data digital
Mudah terganggu oleh sinyal lainTidak mudah terganggu

Arduino adalah sebuah papan mikrokontroler yang memiliki kemampuan membaca sinyal analog dan digital dari berbagai macam sensor dan komponen elektronika lainnya. Pin analog pada arduino bisa digunakan untuk membaca sinyal-sinyal analog berupa perubahan tegangan listrik yang berasal dari sensor atau modul elektronik misalnya resistor, LDR dan potensiometer, sedangkan pin digital digunakan untuk membaca sinyal-sinyal digital berupa nilai 1 dan 0 yang berasal dari sensor-sensor yang bersifat digital.