Minggu, 28 April 2024

TUGAS PENDAHULUAN 2 MODUL 3




Tugas Pendahuluan 2 Modul 3
(Percobaan 2 Kondisi 3)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino Uno




Spesifikasi:




2. Seven Segment


















3. Dip Switch





Spesifikasi:





Diagram Blok  :








3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:











Rangkaian Simulasi Setelah dirunning:
















Prinsip Kerja : 

Pada percobaan ini kita menggunakan dip switch sebagai inputannya. Untuk outputnya kita menggunakan seven segment. Pada  percobaan ini kita menggunakan 2 buah arduino, arduino pertama berfungsi debagai master, sedangkan arduino kedua berfungsi sebagai slave.

MASTER:

1. Inisialisasi: Pada bagian setup(), komunikasi serial dimulai dengan kecepatan baud rate 9600. Selain itu, setiap pin input diprogram dengan mode INPUT_PULLUP untuk mengaktifkan resistor pull-up internal, sehingga ketika saklar terhubung, nilainya adalah LOW.

2. Pembacaan Saklar: Di dalam loop(), program membaca status saklar yang terhubung ke pin input. Ketika saklar aktif (terhubung), nilai LOW akan terdeteksi, dan nilai indeks saklar yang aktif disimpan dalam variabel x. Variabel activeSwitches digunakan untuk menghitung jumlah saklar yang aktif pada saat itu.

3. Komunikasi SPI: Jika jumlah saklar aktif adalah 3, maka program akan mengirimkan pesan ke perangkat slave melalui komunikasi SPI. Pesan yang dikirimkan adalah angka 3, yang kemudian ditampilkan pada perangkat slave sebagai respons atas kondisi saklar yang aktif. Kemudian terdapat logika yang akan mengatur tampilan di slave berdasarkan nilai pesan yang diterima.

4. Shift Bit: Jika jumlah saklar aktif adalah 4, program akan mengirimkan pesan berupa angka 4 ke perangkat slave melalui SPI. Namun, di sini, bit pesan akan di-shift kiri sebanyak 4 kali sebelum dikirimkan, yang artinya digit kedua akan diatur sebagai 4. Ini memungkinkan penggunaan digit pertama untuk menunjukkan jumlah saklar yang aktif dari 0 hingga 5.

Dengan cara ini, perangkat master mampu mendeteksi kondisi saklar yang aktif dan mengirimkan pesan ke perangkat slave untuk menampilkan respons yang sesuai.


SLAVE:

1. Inisialisasi: Pada bagian setup(), komunikasi serial dimulai dengan kecepatan baud rate 9600. Selain itu, pin-pins yang terhubung ke segmen-segmen dari display tujuh segmen diatur sebagai output.

2. SPI Slave Mode: Perangkat diatur dalam mode SPI slave. Ketika terjadi interupsi SPI (SPI_STC_vect), data yang diterima dari perangkat master disimpan dalam variabel Slavereceived.

3. Interupsi: Fungsi ISR (Interrupt Service Routine) dipanggil ketika data diterima dari perangkat master melalui SPI. Pada fungsi ISR, nilai yang diterima dari master disimpan dan flag received diatur menjadi true.

4. Logika Kontrol: Pada fungsi loop(), program memeriksa apakah data telah diterima dari perangkat master. Jika iya, maka nilai yang diterima diuji. Jika nilai adalah 3, maka display tujuh segmen akan menampilkan angka dari 0 hingga 5 secara berurutan, dengan digit kedua yang berubah setelah mencapai angka 5. Jika nilai adalah 4, maka display akan menampilkan angka dari 0 hingga 5 secara berurutan, tetapi dengan digit pertama yang berubah setelah mencapai angka 5. Jika nilai tidak 3 atau 4, display akan menampilkan angka dari 0 hingga 9 secara berurutan, dengan digit pertama yang berubah setelah mencapai angka 5.

5. Tampilan Karakter: Fungsi displayCharacter() mengubah karakter numerik menjadi pola bit yang sesuai untuk menyalakan segmen-segmen pada display tujuh segmen.

Dengan demikian, perangkat ini bertindak sebagai slave SPI yang menerima instruksi dari perangkat master melalui SPI dan menampilkan informasi yang sesuai pada display tujuh segmen berdasarkan instruksi yang diterima.


4. Flowchart dan Listing Program [Kembali]

Flowchart :

Flowchart di modul:
MASTER




SLAVE









Flowchart sesuai kondisi:
MASTER



SLAVE






Listing Program :

MASTER:


//Master Arduino
#include<SPI.h> //Library for SPI
int dip[] = {2,3,4,5,6,7,8,9};
int dipvalue[] = {};
void setup (){
Serial.begin(9600); //Starts Serial Communication at Baud Rate 115200
for(int i = 0; i < 8; i++){
pinMode(dip[i], INPUT_PULLUP);
}
SPI.begin(); //Begins the SPI commnuication
SPI.setClockDivider(SPI_CLOCK_DIV8); //Sets clock for SPI communication at 8 (16/8=2Mhz)
digitalWrite(SS,HIGH); // Setting SlaveSelect as HIGH (So master doesnt connnect with slave)
}

void loop(void) {
  byte Mastersend;
  int x = 1;
  int activeSwitches = 0; // variabel untuk menghitung jumlah saklar yang aktif

  // Membaca status saklar dan menghitung berapa yang aktif
  for (int i = 0; i < 8; i++) {
    dipvalue[i] = digitalRead(dip[i]);
    if (dipvalue[i] == LOW) {
      x = dip[i];
      activeSwitches++;
    }
  }

  // Jika 3 saklar aktif, tampilkan counter 0-5 di digit pertama, kemudian counting 6-9 di digit kedua
  if (activeSwitches == 3) {
    // Tampilkan counter 0-5 di digit pertama
      digitalWrite(SS, LOW);
      Mastersend = 3;
      Serial.println(Mastersend);
      SPI.transfer(Mastersend);
      delay(100);
    // Lanjutkan counting dari 6-9 di digit kedua
    //for (int i = 6; i <= 9; i++) {
     // digitalWrite(SS, LOW);
     // Mastersend = i;
      //Serial.println(Mastersend);
      //SPI.transfer(Mastersend);
      //delay(100);
    }
  //}
  
  // Jika 4 saklar aktif, tampilkan counter 0-5 di digit kedua, kemudian counting 6-9 di digit pertama
  else if (activeSwitches == 4) {
    // Tampilkan counter 0-5 di digit kedua
      digitalWrite(SS, LOW);
      Mastersend = 4; // Shift 4 bit ke kiri untuk menetapkan digit kedua
      Serial.println(Mastersend);
      SPI.transfer(Mastersend);
      delay(100);
    // Lanjutkan counting dari 6-9 di digit pertama
    //for (int i = 6; i <= 9; i++) {
     // digitalWrite(SS, LOW);
     // Mastersend = i << 4; // Shift 4 bit ke kiri untuk menetapkan digit kedua
     // Serial.println(Mastersend);
      //SPI.transfer(Mastersend);
      //delay(100);
    //}
  }
}


SLAVE:

#include <SPI.h>

const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2};
volatile boolean received = false;
volatile byte Slavereceived;
int index;
int dg1 = A1;
int dg2 = A0;

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
  pinMode(dg1, OUTPUT);
  pinMode(dg2, OUTPUT);
  SPCR |= _BV(SPE); // Turn on SPI in Slave Mode
  SPI.attachInterrupt(); // Interrupt ON is set for SPI communication
}

ISR (SPI_STC_vect) { // Interrupt routine function
  Slavereceived = SPDR; // Value received from master is stored in variable Slavereceived
  received = true; // Sets received as True
}

void loop() {
  if (received) { // Logic to SET LED ON OR OFF depending upon the value received from master
    Serial.println(Slavereceived);
    if (Slavereceived == 3) {
      for(int i=0;i<=9;i++){
        if(i <= 5){
          digitalWrite(dg1,HIGH);
          digitalWrite(dg2,LOW);
          displayCharacter(i);
          delay (100);
        }
        else{
          digitalWrite(dg2, HIGH);
          digitalWrite(dg1,LOW);
          displayCharacter(i);
          delay (100);
        }
      }
      
    }
    else if (Slavereceived == 4) {
      for(int i=0;i<=9;i++){
        if(i <= 5){
          digitalWrite(dg1,LOW);
          digitalWrite(dg2,HIGH);
          displayCharacter(i);
          delay (100);
        }
     
        else{
          digitalWrite(dg2, LOW);
          digitalWrite(dg1, HIGH);
          displayCharacter(i);
          delay (100);
        }
      }}

      else {
      for(int i=0;i<=9;i++){
        if(i <= 5){
          digitalWrite(dg1,LOW);
          digitalWrite(dg2,HIGH);
          displayCharacter(i);
          delay (100);
        }
     
        else{
          digitalWrite(dg2, LOW);
          digitalWrite(dg1, HIGH);
          displayCharacter(i);
          delay (100);
        }
         
      }
    }
      
    }
    
    received = false; // Reset received flag
  }

void displayCharacter(int ch) {
  byte patterns[10][7] = {
    {0, 0, 0, 0, 0, 0, 1}, // 0
    {1, 0, 0, 1, 1, 1, 1}, // 1
    {0, 0, 1, 0, 0, 1, 0}, // 2
    {0, 0, 0, 0, 1, 1, 0}, // 3
    {1, 0, 0, 1, 1, 0, 0}, // 4
    {0, 1, 0, 0, 1, 0, 0}, // 5
    {0, 1, 0, 0, 0, 0, 0}, // 6
    {0, 0, 0, 1, 1, 1, 1}, // 7
    {0, 0, 0, 0, 0, 0, 0}, // 8
    {0, 0, 0, 0, 1, 0, 0}  // 9
  };

  if ((ch >= 0 && ch <= 9)) {
    // Get the digit index (0-9) from the character
    int index = ch;
    // Write the pattern to the segment pins
    for (int i = 0; i < 7; i++) {
      digitalWrite(segmentPins[i], patterns[index][i]);
    }
  }
}

5. Kondisi [Kembali]

Percobaan 2 Kondisi 3
Jika 3 Switch aktif maka counting 0 - 5 pada digit 1 dan 6 - 9 pada digit 2, Jika 4 Switch aktif maka counting 0 - 5 pada digit 2 dan 6 - 9 pada digit 1

6. Video Simulasi [Kembali]






7. Download File [Kembali]

HTML Download
File Rangkaian Download
Video Percobaan Download
Listing Program Download
Datasheet Arduino Download
Datasheet seven segment Download
Datasheet Dipswitch Download
















TUGAS PENDAHULUAN 1 MODUL 3




Tugas Pendahuluan 1 Modul 3
(Percobaan 1 Kondisi 5)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino Uno




Spesifikasi:



2. Power Supply


3. LED














4. Dip Switch





Spesifikasi:




5. Resistor






Diagram Blok  :








3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:









Rangkaian Simulasi Setelah dirunning:



















Prinsip Kerja : 

Pada percobaan ini kita menggunakan inputan berupa dip switch pull up dan dip switch pull down. Sedangkan untuk outputnya menggunakan LED. Kita menggunakan 2 buah arduino, arduino pertama berfungsi debagai master, sedangkan arduino kedua berfungsi sebagai slave.

MASTER:
Arduino master memiliki tanggung jawab untuk mengawasi masukan dari dipswitch dan mengirimkan pesan ke Arduino slave sesuai dengan kondisi yang terdeteksi. Delapan tombol switch terhubung ke pin input Arduino master, dengan empat tombol dalam kondisi pull-down dan empat lainnya dalam kondisi pull-up. Hal ini memungkinkan setiap tombol switch untuk menentukan apakah pin inputnya berlogika 1 atau 0. Arduino master secara terus-menerus memeriksa kondisi tombol menggunakan fungsi `digitalRead()` pada setiap pin input. Jika kondisi tombol memenuhi syarat untuk mengaktifkan running LED (dua tombol pull-down dan satu tombol pull-up), Arduino master akan mengirimkan pesan 'r' melalui komunikasi serial. Sedangkan jika kondisi tombol memenuhi syarat untuk mengaktifkan blinking LED (tiga tombol pull-down dan empat tombol pull-up), Arduino master akan mengirimkan pesan 'b' melalui komunikasi serial.

SLAVE:
Pada sisi Arduino slave, fungsinya adalah menerima pesan yang dikirim oleh Arduino master dan mengatur LED sesuai dengan pesan yang diterima. Terdapat delapan LED yang terhubung ke pin output Arduino slave yang akan dikendalikan berdasarkan pesan yang diterima. Arduino slave akan terus memonitor komunikasi serial untuk menerima pesan baru dari Arduino master. Ketika pesan 'r' diterima, Arduino slave akan mengaktifkan running LED dengan mengatur LED untuk menyala dan mematikan secara berurutan. Sebaliknya, ketika pesan 'b' diterima, Arduino slave akan mengaktifkan blinking LED dengan membuat LED berkedip secara bergantian antara nyala dan mati. Melalui mekanisme ini, Arduino master dan slave dapat berinteraksi dan mengontrol LED sesuai dengan input dari tombol yang ditekan pada Arduino master, memberikan respons melalui LED.


4. Flowchart dan Listing Program [Kembali]

Flowchart :

Flowchart di modul:
MASTER


SLAVE







Flowchart sesuai kondisi:


MASTER



SLAVE





Listing Program :

MASTER:

#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9

bool b1, b2, b3, b4, b5, b6, b7, b8;

void setup() {
  Serial.begin(9600);
  pinMode(DS1, INPUT_PULLUP);
  pinMode(DS2, INPUT_PULLUP);
  pinMode(DS3, INPUT_PULLUP);
  pinMode(DS4, INPUT_PULLUP);
  pinMode(DS5, INPUT);
  pinMode(DS6, INPUT);
  pinMode(DS7, INPUT);
  pinMode(DS8, INPUT);
}

void loop() {
  int b8 = digitalRead(DS8);
  int b7 = digitalRead(DS7);
  int b6 = digitalRead(DS6);
  int b5 = digitalRead(DS5);
  int b4 = digitalRead(DS4);
  int b3 = digitalRead(DS3);
  int b2 = digitalRead(DS2);
  int b1 = digitalRead(DS1);

  // Hidupkan LED sesuai dengan kondisi tombol yang ditekan
  if (b8 == HIGH && b7 == HIGH && b6 == LOW && b5 == LOW &&
      b4 == LOW && b3 == HIGH && b2 == HIGH && b1 == HIGH) {
    // Mengaktifkan running LED
    Serial.write('r');
  } else if (b8 == HIGH && b7 == HIGH && b6 == HIGH && b5 == LOW &&
             b4 == LOW && b3 == LOW && b2 == LOW && b1 == LOW) {
    // Mengaktifkan blinking LED
    Serial.write('b');
  }
  delay(20);
}

SLAVE:

int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(led[i], OUTPUT);
  }
}

void loop() {
  if (Serial.available()) {
    message = Serial.read();

    if (message == 'r') {
      // Mengaktifkan running LED
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], HIGH);
        delay(100);
        digitalWrite(led[i], LOW);
      }
    } else if (message == 'b') {
      // Mengaktifkan blinking LED
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], HIGH);
      }
      delay(500);
      for (int i = 0; i < 8; i++) {
        digitalWrite(led[i], LOW);
      }
      delay(500);
    }
  }
}

5. Kondisi [Kembali]

Percobaan 1 Kondisi 5
4 switch dalam pull-down & 4 switch dalam pull-up, 2 switch pull-down dan 1 switch pull up mengaktifkan running led,3 switch pull down dan 4 switch pull up mengaktifkan blinking led

6. Video Simulasi [Kembali]






7. Download File [Kembali]

HTML Download
File Rangkaian Download
Video Percobaan Download
Listing Program Download
Datasheet Arduino Download
Datasheet LED Download
Datahseet resistor Download
Datasheet Dipswitch Download






















Minggu, 21 April 2024

MODUL 3 (COMMUNICATION)




1. Pendahuluan
[Kembali]

a) Asistensi dilakukan 1x 
b) Praktikum dilakukan 1x

Dalam dunia teknologi, komunikasi antar-perangkat elektronik merupakan hal yang sangat penting. Tanpa sistem komunikasi yang efisien, perangkat elektronik tidak akan dapat berinteraksi satu sama lain secara efektif. Salah satu metode komunikasi yang umum digunakan dalam mikrokontroler dan sistem tertanam (embedded systems) adalah melalui protokol UART (Universal Asynchronous Receiver-Transmitter), SPI (Serial Peripheral Interface), dan I2C (Inter-Integrated Circuit).

Protokol komunikasi seperti UART, SPI, dan I2C memungkinkan perangkat elektronik untuk bertukar data secara langsung atau melalui koneksi kabel dengan kecepatan dan keandalan tertentu. Setiap protokol memiliki karakteristik uniknya sendiri, memungkinkan pengembang untuk memilih protokol yang paling sesuai dengan kebutuhan aplikasi mereka.



2. Tujuan [Kembali]

a) Memahami prinsip kerja UART, SPI, dan I 2C 
b) Mengaplikasikan protokol komunikasi UART, SPI, dan I 2C

3. Alat dan bahan [Kembali]


a) Modul Arduino 



b) ESP 32




c) Dip Switch


d) LED



e) Seven Segment


f) Resistor 


g) Power Supply


4. Dasar Teori [Kembali]

1. Universal Asynchronous Receiver Transmitter (UART)

UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data bus penerima.

2. Serial Peripheral Interface (SPI)
Serial Peripheral Interface ( SPI ) merupakan salah satu mode komunikasi serial synchrounouskecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaituMOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroler. MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input. 
MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output. 
SCLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input. 
SS/CS : Slave Select/ Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.
Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akanmentransfer data ke master melalui MISO.

3. Inter Integrated Circuit (I2C)
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arahmenggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.

Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop. Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL. R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau memintadata dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave) ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telahditerima receiver.

4.Arduino 
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain. Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :







A. BAGIAN-BAGIAN ARDUINO UNO 
1. POWER USB Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB. 
2. POWER JACK Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V. 
3. Crystal Oscillator Kristal ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
4. Reset Digunakan untuk mengulang program Arduino dari awal atau Reset. 
5. Digital Pins I / O Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM. 
6. Analog Pins Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyalatau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital. 
7. LED Power Indicator Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.

B. BAGIAN-BAGIAN PENDUKUNG 
1. RAM 
RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory). 
2. ROM 
ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpandata secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM.

5. ESP 32

ESP32 adalah mikrokontroler yang dikenalkan oleh Espressif System merupakan penerus dari mikrokontroler ESP8266. Pada mikrokontroler ini sudah tersedia modul WiFi dalam chip sehingga sangat mendukung untuk membuat sistem aplikasi Internet of Things. ESP32 sendiri tidak jauh berbeda dengan ESP8266 yang familiar di pasaran, hanya saja ESP32 lebih komplek dibandingkan ESP8266, cocok untuk sobat dengan proyek yang besar.

berikut ini merupakan spesifikasi yang dimiliki oleh mikrokontroler ESP32 :

  • Prosesor: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz.
  • Memori: 520 KB SRAM.
  • Wireless connectivity: Wi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR and BLE (shares the radio with Wi-Fi).
  • Peripheral I/O: 12-bit SAR ADC (up to 18 channels), 2x 8-bit DACs, 10x touch sensors (capacitive sensing GPIOs), 4x SPI, 2x I2S interfaces, 2x I2C interfaces, 3x UART, SD/SDIO/CE-ATA/MMC/eMMC host controller, SDIO/SPI slave controller, Ethernet MAC interface, CAN bus 2.0, infrared remote controller (TX/RX, up to 8 channels), motor PWM, LED PWM (up to 16 channels), hall effect sensor, ultra low power analog pre-amplifier.
  • Security : IEEE 802.11 standard security, secure boot, flash, encryption, 1024-bit, OTP (up to 768-bit for customers), cryptographic hardware acceleration (AES, SHA-2, RSA, ECC), random number generator (RNG).

Mikrokontroler ESP32 ini dapat diprogram dengan menggunakan C++, C, Python, Lua, dll. untuk menjalankan program mikrokontroler ESP32 ini memerlukan suatu software pemrograman, berikut ini adalah contoh softwarenya untuk menjalankan program mikrokontroler ESP32, diantaranya sebagai berikut :

  • Arduino Promini.
  • Arduino IDE.
  • Ubuntu 14.04 LTS.
  • ESP-IDF Visual Studio Code Extension.
  • Espressif IoT Development Framework.

Implementasi mikrokontroler ESP32 dengan contoh penggunaannya

Mikrokontroler ESP32 banyak digunakan dan sangat mendukung untuk pembuatan sistem aplikasi Internet of Things (IoT). Berikut ini merupakan contoh penggunaannya, sebagai berikut :

  • Smart Security, Salah satu contoh perangkat smart security yang paling umum adalah kunci rumah yang menggunakan biometrik seperti sidik jari atau kode otentikasi. kegunaan alat tersebut untuk mengurangi pembobolan, kemalingan rumah, dan memperketat keamanan rumah dari orang yang ingin berbuat jahat. Selain itu juga untuk mengatasi beberapa ‘kecelakaan’ kecil seperti kehilangan kunci, akses rumah oleh tamu, dan akses ruangan yang memerlukan otorisasi khusus seperti kamar orang tua.
  • Smart City,  Di skala yang lebih luas, teknologi IoT juga menyentuh urusan tata kota. kegunaannya smart city ini untuk  mengintegrasikan semua permasalahan kota menjadi satu. contohnya sepert CCTV, lampu lalu lintas, sampai integrasi sistem transportasi dalam kota. Semuanya bisa diakses langsung lewat smartphone yang terhubung ke internet.

 

 6. Dip Switch



    DIP switch, atau Dual Inline Package switch, adalah jenis saklar yang terdiri dari beberapa saklar kecil yang terpasang dalam paket berbentuk baris ganda pada rangkaian elektronik terpadu atau modul. Setiap saklar memiliki dua posisi, ON dan OFF, yang digunakan untuk konfigurasi atau pengaturan pada perangkat elektronik, seperti menetapkan alamat atau parameter lainnya. DIP switch umumnya memberikan kemudahan penggunaan tanpa memerlukan keahlian khusus dalam pengaturan, meskipun beberapa pengembang kini beralih ke metode konfigurasi yang lebih canggih.

    DIP switch, atau Dual Inline Package switch, bekerja berdasarkan prinsip sederhana saklar elektronik yang dapat berada dalam dua posisi, ON (hidup) atau OFF (mati). Dalam konteks penggunaannya pada rangkaian terpadu atau modul, setiap saklar DIP switch merepresentasikan satu bit informasi. Ketika saklar dalam posisi ON, itu menghubungkan pin terkait, sementara posisi OFF memutuskan hubungan. Pengaturan atau konfigurasi tertentu dapat dicapai dengan mengatur posisi ON atau OFF dari masing-masing saklar DIP switch sesuai dengan kebutuhan aplikasi. DIP switch sering digunakan untuk pengaturan alamat atau parameter lainnya dalam rangkaian elektronik tanpa memerlukan pemrograman atau perangkat lunak tambahan.

7. LED (Light Emiting Diode)


LED adalah suaatu semikonduktor yang memancarkan cahaya, LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.

8. Seven Segment


Layar tujuh segmen ini seringkali digunakan pada jam digital, meteran elektronik, dan perangkat elektronik lainnya yang menampilkan informasi numerik. Layar tujuh segmen ini terdiri dari 7 buah LED yang membentuk angka 8 dan 1 LED untuk titik/DP. Angka yang ditampilkan di seven segmen ini dari 0-9. Cara kerja dari seven segmen disesuaikan dengan LED. LED merupakan komponen diode yang dapat memancarkan cahaya. kondisi dalam keadaan ON jika sisi anode mendapatkan sumber positif dari Vcc dan katode mendapatkan sumber negatif dari ground.

9. Resistor

Resistor merupakan komponen penting dan sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di perusahaan perakitan Elektronik maupun yang menggunakan peralatan Elektronik tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada ditubuh Resistor itu sendiri.

Seperti yang dikatakan sebelumnya, nilai Resistor yang berbentuk Axial adalah diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada juga yang 5 Gelang.

Gelang warna Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang bersangkutan.

Tabel dibawah ini adalah warna-warna yang terdapat di Tubuh Resistor :
Tabel Kode Warna Resistor

Perhitungan untuk Resistor dengan 4 Gelang warna :
Cara menghitung nilai resistor 4 gelang

Masukkan angka langsung dari kode warna Gelang ke-1 (pertama)
Masukkan angka langsung dari kode warna Gelang ke-2
Masukkan Jumlah nol dari kode warna Gelang ke-3 atau pangkatkan angka tersebut dengan 10 (10n)
Merupakan Toleransi dari nilai Resistor tersebut

Contoh :

Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 4 : Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.

Perhitungan untuk Resistor dengan 5 Gelang warna :
Cara Menghitung Nilai Resistor 5 Gelang Warna

Masukkan angka langsung dari kode warna Gelang ke-1 (pertama)
Masukkan angka langsung dari kode warna Gelang ke-2
Masukkan angka langsung dari kode warna Gelang ke-3
Masukkan Jumlah nol dari kode warna Gelang ke-4 atau pangkatkan angka tersebut dengan 10 (10n)
Merupakan Toleransi dari nilai Resistor tersebut

Contoh :

Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau = 5
Gelang ke 4 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 5 : Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah 105 * 105 = 10.500.000 Ohm atau 10,5 MOhm dengan toleransi 10%.



Contoh-contoh perhitungan lainnya :

Merah, Merah, Merah, Emas → 22 * 10² = 2.200 Ohm atau 2,2 Kilo Ohm dengan 5% toleransi
Kuning, Ungu, Orange, Perak → 47 * 10³ = 47.000 Ohm atau 47 Kilo Ohm dengan 10% toleransi

Cara menghitung Toleransi :
2.200 Ohm dengan Toleransi 5% =
2200 – 5% = 2.090
2200 + 5% = 2.310
ini artinya nilai Resistor tersebut akan berkisar antara 2.090 Ohm ~ 2.310 Ohm

10. Power Supply

Vcc berfungsi untuk memberikan tegangan kepada input, dimana disini diberikan kepada switch.


Entri yang Diunggulkan

TUGAS BESAR PRAKTIKUM UP & UC (MODUL 4)

  [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percob...