I. GURU PENGAJAR

BU RITA HARTATI

A. PENGERTIAN MIKROKONTROLER



Mikrokontroler adalah sistem komputer lengkap dalam satu chip yang dirancang untuk mengontrol perangkat elektronik. Biasanya, mikrokontroler terdiri dari:

  1. Unit Pemrosesan Pusat (CPU): Bagian yang melakukan pengolahan data dan instruksi.
  2. Memori:
    • RAM (Random Access Memory): Memori yang digunakan untuk menyimpan data sementara saat mikrokontroler beroperasi.
    • ROM (Read-Only Memory): Memori yang menyimpan program yang tidak berubah (firmware).
  3. I/O Ports: Antarmuka untuk berinteraksi dengan perangkat luar, seperti sensor, aktuator, dan perangkat lainnya.


B. FUNGSI MIKROKONTROLER
Mikrokontroler memiliki berbagai fungsi yang sangat penting dalam sistem elektronik. Berikut adalah beberapa fungsi utama mikrokontroler:

1. Pengolahan Data

Mikrokontroler dapat mengambil, memproses, dan menyimpan data. Ia menjalankan program yang ditulis dalam bahasa pemrograman untuk melakukan tugas tertentu.

2. Pengendalian Perangkat

Mikrokontroler mengendalikan perangkat keras lain, seperti motor, sensor, dan aktuator, dengan mengirimkan sinyal melalui pin I/O. Ini memungkinkan otomatisasi dan pengendalian proses.

3. Interaksi dengan Sensor

Mikrokontroler dapat membaca data dari berbagai sensor (misalnya, suhu, cahaya, dan gerakan) dan mengambil tindakan berdasarkan informasi yang diterima.

4. Komunikasi

Mikrokontroler dapat berkomunikasi dengan perangkat lain melalui berbagai protokol komunikasi, seperti UART, SPI, dan I2C. Ini memfasilitasi pertukaran data antara mikrokontroler dan perangkat eksternal.

5. Penyimpanan Data

Mikrokontroler dapat menyimpan data sementara di RAM dan data permanen di memori non-volatile (seperti EEPROM atau flash memory), yang memungkinkan penyimpanan pengaturan atau hasil pengukuran.

6. Penyelarasan Waktu

Banyak mikrokontroler dilengkapi dengan timer dan penghitung yang memungkinkan mereka untuk melakukan tugas dalam interval waktu tertentu, yang berguna untuk aplikasi yang memerlukan pengaturan waktu.

7. Pengelolaan Energi

Mikrokontroler sering dirancang untuk beroperasi dengan efisiensi energi yang tinggi, memungkinkan aplikasi dalam perangkat portabel dan sistem yang memerlukan penghematan daya.

8. Pengembangan Prototipe

Mikrokontroler digunakan secara luas dalam pengembangan prototipe untuk sistem elektronik baru, karena mudah diprogram dan fleksibel.

9. Implementasi Algoritma

Mikrokontroler dapat digunakan untuk menerapkan algoritma tertentu, seperti pengendalian PID dalam sistem otomasi, yang memungkinkan pengendalian presisi terhadap proses.

Aplikasi

Fungsi-fungsi ini memungkinkan mikrokontroler digunakan dalam berbagai aplikasi, termasuk:

  • Otomatisasi rumah (misalnya, sistem pencahayaan otomatis)
  • Robotika (mengontrol gerakan dan sensor)
  • Perangkat medis (monitoring kesehatan)
  • Peralatan rumah tangga (mesin cuci, microwave)
  • Sistem keamanan (alarm, pengawasan)

C. Arsitektur ATMega328p


Arsitektur ATmega328P adalah salah satu arsitektur mikrokontroler yang populer, sering digunakan dalam platform Arduino. Berikut adalah penjelasan mengenai arsitektur dan komponen utamanya:

1. Unit Pemrosesan Pusat (CPU)

  • 8-bit AVR CPU: ATmega328P menggunakan arsitektur RISC (Reduced Instruction Set Computing) yang memberikan efisiensi tinggi. CPU ini mendukung instruksi 8-bit dan memiliki register umum untuk pengolahan data.

2. Memori

  • Flash Memory: Kapasitas 32 KB untuk menyimpan program. Memori ini bersifat non-volatile, sehingga program tetap tersimpan meskipun mikrokontroler dimatikan.
  • SRAM: Terdapat 2 KB SRAM untuk penyimpanan data sementara saat program berjalan.
  • EEPROM: Terdapat 1 KB EEPROM yang digunakan untuk menyimpan data non-volatile, seperti pengaturan atau data pengguna yang perlu disimpan setelah perangkat dimatikan.

3. I/O Ports

  • Digital I/O: Terdapat 23 pin I/O yang dapat dikonfigurasi sebagai input atau output digital.
  • Analog Input: 6 saluran ADC (Analog-to-Digital Converter) dengan resolusi 10-bit, yang memungkinkan pembacaan sinyal analog.

4. Timer dan Penghitung

  • ATmega328P dilengkapi dengan tiga timer/penghitung:
    • Timer0: 8-bit
    • Timer1: 16-bit
    • Timer2: 8-bit
  • Timer ini digunakan untuk menghasilkan sinyal PWM, mengatur waktu, dan menghitung peristiwa.

5. Sistem Komunikasi

  • USART (Universal Synchronous Asynchronous Receiver Transmitter): Untuk komunikasi serial dengan perangkat lain.
  • SPI (Serial Peripheral Interface): Untuk komunikasi dengan perangkat lain secara cepat.
  • I2C (Inter-Integrated Circuit): Untuk komunikasi dengan perangkat lain menggunakan dua jalur (data dan clock).

6. Watchdog Timer

ATmega328P dilengkapi dengan watchdog timer yang dapat digunakan untuk mereset mikrokontroler jika program mengalami hang atau tidak merespons.

7. Fitur Lain

  • Interupsi: Mikrokontroler mendukung interupsi eksternal dan interupsi pin, memungkinkan respons cepat terhadap peristiwa luar.
  • Power Management: Memiliki mode tidur untuk menghemat energi, yang penting untuk aplikasi portabel.

D. ARDUINO UNO R3

Apa Itu Arduino?

Arduino adalah platform open-source yang digunakan untuk pengembangan perangkat elektronik. Ia terdiri dari perangkat keras (mikrokontroler) dan perangkat lunak (IDE) yang memungkinkan pengguna untuk memprogram dan mengontrol perangkat elektronik dengan mudah. Arduino sering digunakan dalam proyek-proyek prototyping, pendidikan, dan hobi.

Pembuat Arduino



Arduino pertama kali dikembangkan oleh sekelompok mahasiswa dan profesor di Interaction Design Institute Ivrea di Italia. Tim ini termasuk Massimo Banzi, David Cuartielles, Tom Igoe, Giorgio Olivero, dan Hiroshi Ishii.

Di Mana Arduino Dibuat?



Arduino dikembangkan di Ivrea, Italia, namun saat ini diproduksi di berbagai tempat di seluruh dunia. Arduino juga telah berkembang menjadi komunitas global dengan kontribusi dari banyak pengembang dan pengguna.

Sejarah Singkat Arduino Uno R3

  1. Peluncuran Awal: Arduino pertama kali diluncurkan pada tahun 2005. Arduino Uno adalah salah satu model yang paling populer, diluncurkan pada tahun 2010.

  2. Versi R3: Arduino Uno R3, versi ketiga dari Arduino Uno, dirilis pada tahun 2011. Ini memiliki beberapa peningkatan, termasuk:

    • Penambahan pin I/O untuk kompatibilitas dengan lebih banyak modul.
    • Komponen yang lebih baik dan koneksi USB yang lebih stabil.
  3. Fitur: Arduino Uno R3 dilengkapi dengan mikrokontroler ATmega328P, 14 pin digital I/O, 6 pin analog input, dan kemampuan komunikasi seperti UART, SPI, dan I2C. Ini juga memiliki koneksi USB untuk pemrograman dan daya.

  4. Popularitas: Arduino Uno R3 menjadi sangat populer di kalangan hobiis, pendidik, dan pengembang karena kemudahan penggunaan dan dukungan komunitas yang luas.

Arduino telah membuka peluang besar dalam dunia pemrograman dan elektronika, memungkinkan banyak orang untuk belajar dan berinovasi dalam bidang teknologi.


E. Struktur Program Arduino

Setiap sketsa Arduino memiliki struktur dasar yang terdiri dari dua fungsi utama:

  • setup():

    • Fungsi ini dijalankan satu kali saat papan Arduino dinyalakan.
    • Biasanya digunakan untuk menginisialisasi pengaturan pin dan konfigurasi lainnya.
    cpp
    void setup() { pinMode(LED_BUILTIN, OUTPUT); // Mengatur pin LED sebagai output }
  • loop():

    • Fungsi ini dijalankan berulang kali setelah fungsi setup().
    • Ini adalah tempat logika utama program diletakkan.
    cpp
    void loop() { digitalWrite(LED_BUILTIN, HIGH); // Menghidupkan LED delay(1000); // Menunggu 1 detik digitalWrite(LED_BUILTIN, LOW); // Mematikan LED delay(1000); // Menunggu 1 detik }

5. Pin I/O

Arduino memiliki beberapa pin yang dapat dikonfigurasi sebagai input atau output.

  • Digital Pins:

    • Dapat digunakan untuk membaca atau menulis nilai HIGH (1) atau LOW (0).
    • Fungsi untuk mengatur pin: pinMode(pin, mode).
    • Fungsi untuk membaca nilai: digitalRead(pin).
    • Fungsi untuk menulis nilai: digitalWrite(pin, value).
  • Analog Pins:

    • Tersedia untuk membaca sinyal analog dengan menggunakan fungsi analogRead(pin), yang memberikan nilai antara 0 dan 1023 (10-bit).

6. Fungsi Tambahan

Arduino menyediakan berbagai fungsi untuk memperluas fungsionalitas:

  • PWM (Pulse Width Modulation):

    • Menggunakan analogWrite(pin, value) untuk mengendalikan perangkat seperti motor dan LED dengan mengubah lebar pulsa.
  • Delay dan Timing:

    • delay(ms): Menghentikan program untuk sejumlah milidetik.
    • millis(): Mengembalikan jumlah milidetik sejak papan dinyalakan, berguna untuk pengaturan waktu non-blok.
  • Interupsi:

    • Menggunakan attachInterrupt() untuk menangani peristiwa eksternal dengan respons cepat.

7. Penggunaan Library

Library adalah koleksi fungsi yang menyediakan fungsionalitas tambahan:

  • Wire.h: Untuk komunikasi I2C.
  • SPI.h: Untuk komunikasi SPI.
  • Servo.h: Untuk mengontrol motor servo.

Cara menggunakan library:

cpp
#include <Servo.h> Servo myServo; void setup() { myServo.attach(9); // Menghubungkan servo ke pin 9 } void loop() { myServo.write(90); // Mengatur posisi servo delay(1000); // Tunggu 1 detik }

8. Meng-upload Kode

Setelah menulis sketsa, Anda dapat meng-upload kode ke papan Arduino:

  1. Hubungkan papan ke komputer menggunakan kabel USB.
  2. Pilih jenis papan dan port yang sesuai di menu Tools di IDE.
  3. Klik tombol Upload (ikon panah ke kanan).
  4. Setelah proses upload selesai, papan akan menjalankan program secara otomatis.

9. Debugging

Debugging adalah proses menemukan dan memperbaiki kesalahan dalam program. Beberapa teknik debugging di Arduino meliputi:

  • Serial Monitor: Menggunakan Serial.begin(baudrate) untuk menginisialisasi komunikasi serial, dan Serial.print() untuk mencetak informasi ke Serial Monitor.

    cpp
    void setup() { Serial.begin(9600); // Menginisialisasi komunikasi serial } void loop() { Serial.println("Hello, Arduino!"); // Mencetak pesan delay(1000); // Tunggu 1 detik }
  • LED Indikator: Menggunakan LED untuk memberikan umpan balik visual tentang status program.

10. Contoh Proyek Sederhana

Menghidupkan dan Mematikan LED

Berikut adalah sketsa sederhana untuk menghidupkan dan mematikan LED pada pin 13 setiap detik:

cpp
void setup() { pinMode(13, OUTPUT); // Set pin 13 sebagai output } void loop() { digitalWrite(13, HIGH); // Hidupkan LED delay(1000); // Tunggu 1 detik digitalWrite(13, LOW); // Matikan LED delay(1000); // Tunggu 1 detik }

Kesimpulan

Pemrograman mikrokontroler menggunakan Arduino adalah cara yang efektif dan intuitif untuk mengembangkan proyek elektronik. Dengan dukungan komunitas yang luas dan banyak sumber daya, Arduino memungkinkan individu dari berbagai latar belakang untuk belajar dan berinovasi dalam bidang teknologi. Dengan memahami dasar-dasar pemrograman, pin I/O, fungsi tambahan, dan penggunaan library, Anda dapat menciptakan berbagai aplikasi menarik dan interaktif.