Rabu, 20 Maret 2024

TUGAS PENDAHULUAN 1 MODUL 2




Tugas Pendahuluan 1 Modul 2
(Percobaan 3 Kondisi 2)

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.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino Uno




2. Dip Switch




3. 7 Segment 2 Digit



4. Resistor

Diagram Blok:



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :

Prinsip Kerja :
 
Rangkaian ini terdiri dari 4 buah kompnen yaitu Arduino, 7-Segment 2 digit, Dipswitch, dan Resistor. Dipswith berguna sebagai input dari Arduino yang dihubungkan ke kaki A0-A3 arduino. sedangkan untuk outputnya yaitu 7-segment 2 digit yang masing masing pinnya dihubungkan ke pin 4-13 Arduino. 

Ketika 2 buah dipswitch on, maka arduino akan mengeluarkan output berupa counting pada 7-segment dari angka 15 hingga 0 lalu reset counting lagi ke 15. karena 7-segement ini tidak bisa menampilkan 2 digit angka sekaligus maka, kami memprogram pada arduino menggunakan bilangan heksa 0-F dan bergantian di setiap digitnya

4. Flowchart dan Listing Program [Kembali]

Flowchart :


Listing Program :

#define a 6
#define b 7
#define c 8
#define d 9
#define e 10
#define f 11
#define g 12
#define dp 13
#define D1 4
#define D2 5
#define Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3
bool sw1, sw2, sw3, sw4;
int segments[] = {a, b, c, d, e, f, g};
byte digitPatterns[16][7] = {
    {1, 1, 1, 1, 1, 1, 0}, // 0
    {0, 1, 1, 0, 0, 0, 0}, // 1
    {1, 1, 0, 1, 1, 0, 1}, // 2
    {1, 1, 1, 1, 0, 0, 1}, // 3
    {0, 1, 1, 0, 0, 1, 1}, // 4
    {1, 0, 1, 1, 0, 1, 1}, // 5
    {1, 0, 1, 1, 1, 1, 1}, // 6
    {1, 1, 1, 0, 0, 0, 0}, // 7
    {1, 1, 1, 1, 1, 1, 1}, // 8
    {1, 1, 1, 1, 0, 1, 1}, // 9
    {1, 1, 1, 0, 1, 1, 1}, // 10 (A)
    {0, 0, 1, 1, 1, 1, 1}, // 11 (B)
    {1, 0, 0, 1, 1, 1, 0}, // 12 (C)
    {0, 1, 1, 1, 1, 0, 1}, // 13 (D)
    {1, 0, 0, 1, 1, 1, 1}, // 14 (E)
    {1, 0, 0, 0, 1, 1, 1}  // 15 (F)
};
void setup()
{
    for (int i = 0; i < 7; i++)
    {
        pinMode(segments[i], OUTPUT);
    }
    pinMode(dp, OUTPUT);
    pinMode(D1, OUTPUT);
    pinMode(D2, OUTPUT);
    pinMode(Dsw1, INPUT_PULLUP);
    pinMode(Dsw2, INPUT_PULLUP);
    pinMode(Dsw3, INPUT_PULLUP);
    pinMode(Dsw4, INPUT_PULLUP);
    Serial.begin(9600);
}
void number(int display)
{
    if (display >= 0 && display <= 15)
    {
        for (int i = 0; i < 7; i++)
        {
            digitalWrite(segments[i], digitPatterns[display][i]);
        }
    }
}
void loop()
{
    int sw1 = digitalRead(Dsw1);
    int sw2 = digitalRead(Dsw2);
    int sw3 = digitalRead(Dsw3);
    int sw4 = digitalRead(Dsw4);
    static int digit = 1;      // Digit yang sedang ditampilkan (1 atau 2)
    static int count = 15;     // Counter untuk digit
    static unsigned long lastTime = 0; // Waktu terakhir pembacaan tombol
    if (sw1 == LOW && sw2 == LOW) // Check both switches active
    {
        if (millis() - lastTime > 250) // Debouncing
        {
            lastTime = millis();
            count--;
            if (count < 0)
            {
                count = 15;
            }
            if (digit == 1)
            {
                digitalWrite(D1, HIGH);
                digitalWrite(D2, LOW);
                number(count);
                digit = 2;
            }
            else
            {
                digitalWrite(D1, LOW);
                digitalWrite(D2, HIGH);
                number(count);
                digit = 1;
            }
        }
    }
}

5. Kondisi [Kembali]

Percobaan 3 Kondisi 2
Ketika 2 switch aktif 7-Segment menghitung mundur dari 15

6. Video Simulasi [Kembali]




7. Download File [Kembali]

File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Datasheet Led klik disini
Datasheet Resistor klik disini

Kamis, 14 Maret 2024

MODUL 2 PRAKTIKUM MIKRO




Modul II

PWM, ADC dan Interrupt


1. Pendahuluan
[Kembali]

Pada sehari-hari banyak motor dan sensor yang digunakan untuak banyak kegunaan, oleh karena itu kita harus memahi cara penggunaannya pada arduino uno. cara penggunaannya berfokus pada Pulse Width Modulation (PWM) dan Analog to Digital Converter (ADC). Dimana PWM berfungsi untuk penggunaan motor sedangkan ADC digunakan untuk sensor.

2. Tujuan [Kembali]

a) Memahami prinsip kerja PWM pada mikrokontroler 
b) Memahami prinsip kerja ADC pada mikrokontroler
c) Memahamai prinsip Interupt pada mikrokontroler
d) Menggunakan PWM dan ADC pada Arduino

3. Alat dan bahan [Kembali]
a) Modul Arduino 



b) Motor DC 




c) Servo


d) StepperMotor 



e) Driver Motor L293D


f) Seven Segment 


g) Dipswitch



h) Keypad 




i) Dot Matrix 


j) Sensor Infrared



4. Dasar Teori [Kembali]

1. Pulse Width Modulation 

PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi.

Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).

Duty Cycle = tON / ttotal 
tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1) 
tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0) 
ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut jugadengan “periode satu gelombang”

Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite(); 

PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik. 


2. Analog to Digital Converter 
ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi. 

Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 padaArduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin); 

3.Interupt 
Interupsi adalah proses dalam sistem mikrokontroler yang menghentikan prosea program utama akibat terjadinya pemicu tertentu dari suatu sumber interupsi dan memaksa sistem mikrokontroler untuk mengeksekusi blok program layanan interupsi. Bila terjadi interupsi, mikroprosesor akan menghentikan dahulu apa yang sedang dikerjakannya dan mengerjakan permintaan khusus tersebut.

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 denganbaik. 

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 menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM.




Senin, 04 Maret 2024

LAPORAN AKHIR 2 MODUL 1




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.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. LCD 2X16
2. Arduino Uno
3. Keypad

Diagram Blok:

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :


Prinsip Kerja :
Pertama, hubungkan mikrokontroler Arduino dengan keypad dan layar LCD sesuai modul Praktikum. Hubungkan sesuai dengan pin pin yang ada di modul. Setelah itu, kita akan mengunggah kode yang telah disiapkan ke dalam mikrokontroler atau arduino uno. Proses inisialisasi akan dimulai, di mana pin untuk keypad dan layar LCD akan dikonfigurasi, Lalu mikrokontroler akan mulai memantau input dari keypad. Saat tombol pada keypad ditekan, mikrokontroler akan mendeteksi sinyal yang masuk dari pin yang terhubung ke keypad. Nilai tersebut akan ditampilkan di layar LCD. Proses ini akan berulang terus menerus, sehingga setiap interaksi dengan keypad akan menghasilkan respons yang sesuai di layar LCD. Misal jika ditekan tanda 6 maka akan keluar angka 6 di LCD
 
4. Flowchart dan Listing Program [Kembali]

Flowchart:


Listing Program:

#include <Keypad.h> // Memanggil library Keypad
#include <LiquidCrystal.h> // Memanggil library LCD

// Menentukan besaran keypad
const byte ROWS = 4;
const byte COLS = 4;
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); // Mendeklarasikan pin pin pada LCD

// Menentukan besaran dari keypad
char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
 
// Mengkoneksikan keypad ke pin arduino
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
 
// Mendeklarasikan keypad ke arduino
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
 
void setup() {
  // Setup serial monitor
  Serial.begin(9600);
  lcd.begin(16, 2);
}
 
void loop() {
  // Membaca tombol yang di tekan
  char customKey = customKeypad.getKey();
 
  if (customKey) {
    // melakukan printing ke LCD tombol yang di pencet
    lcd.setCursor(0, 0);
    lcd.print("Tombol :");
    lcd.print(customKey);
  }
}

5. Kondisi [Kembali]

Percobaan 4 pada modul 1

6. Video Demo [Kembali]


7. Soal Analisa [Kembali]

1. Analisa kenapa data pin yang kita gunakan hanya dari D4- D7!
Jawab :
Karena kita hanya membutuhkan 4 bit dari 8 bit data yang disediakan oleh pin LCD. Hal ini karena output yang dikirim ke LCD hanya berupa data yang besarnya 4 bit yang berasal dari keypad.

2. Analisa bagaimana cara kerja dari keypad sehingga bisa menampilkan hasil pada LCD, jelaskan kenapa!
Jawab :
Cara kerja keypad adalah sebagai akar yang mampu memberikan nilai output. Ketika salah satu tombol keypad tertekan, akan ada dua hambatan yang akan terhubung. Dalam pencarian data, kita perlu menghubungkan bit-bit yang ada pada keypad. Saat ada satu tombol tekan, bit-bit yang terhubung akan menghasilkan nilai output yang dapat dikirim ke microcontroller. Microcontroller akan menerima nilai output tersebut dan melakukan proses pengolahan data. Setelah proses pengolahan data selesai, hasilnya akan diterbitkan ke LCD

8. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Demo Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet LCD 2X16 klik disini

LAPORAN AKHIR 1 MODUL 1




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.

2. Hardware dan Diagram Blok [Kembali]

Hardware :


1.  LED
2. Arduino Uno
3. 8x Switch SPDT

Diagram Blok:

                


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :


Prinsip Kerja :

Pada rangkaian tersebut, button berperan sebagai input pada yang dihubunghkan dengan pin A0,A1,A2,A3,12,13 pada arduino. Kemudian ada 8 buah LED yang terhubung pada pin 2,3,4,5,6,7,8,9 pada arduino yang berperan sebagai output. Kondisi Awal dari rangkaian yaitu semua LED dalam kondisi hidup karena pada program diatur untuk hidup terlebih dahulu. Pada saat button 1 ditekan maka LED1 akan padam, begitupun ketika menekan button 2 sampai button 8 akan terjadi hal yang sama.
 
4. Flowchart dan Listing Program [Kembali]

Flowchart :

Listing Program :

int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
#define PB1 A0
#define PB2 A1
#define PB3 A2
#define PB4 A3
#define PB5 A4
#define PB6 A5
#define PB7 12
#define PB8 13
void setup() 
 Serial.begin(9600);
 pinMode(PB1, INPUT);
 pinMode(PB2, INPUT);
 pinMode(PB3, INPUT);
 pinMode(PB4, INPUT);
 pinMode(PB5, INPUT);
 pinMode(PB6, INPUT);
 pinMode(PB7, INPUT);
 pinMode(PB8, INPUT);
 
 for (int i = 0; i < 8; i++) 
 {
 pinMode(led[i], OUTPUT); 
 } 
}
void loop()
{
 int b7 = digitalRead(PB7);
 int b8 = digitalRead(PB8);
 int b6 = digitalRead(PB6);
 int b5 = digitalRead(PB5);
 int b4 = digitalRead(PB4);
 int b3 = digitalRead(PB3);
 int b2 = digitalRead(PB2);
 int b1 = digitalRead(PB1);
 // Matikan semua LED terlebih dahulu
 for (int i = 0; i < 8; i++) 
 {
 digitalWrite(led[i], HIGH); 
 }
 // Hidupkan LED sesuai dengan tombol yang ditekan
 if (b8 == HIGH) digitalWrite(led[7], HIGH);
 if (b7 == HIGH) digitalWrite(led[6], HIGH);
 if (b6 == HIGH) digitalWrite(led[5], HIGH);
 if (b5 == HIGH) digitalWrite(led[4], HIGH);
 if (b4 == HIGH) digitalWrite(led[3], HIGH);
 if (b3 == HIGH) digitalWrite(led[2], HIGH);
 if (b2 == HIGH) digitalWrite(led[1], HIGH);
 if (b1 == HIGH) digitalWrite(led[0], HIGH);
}

5. Kondisi [Kembali]

Percobaan 1 dari modul

6. Video Demo [Kembali]


7. Soal Analisa [Kembali]

1. Analisa bagaimana cara kerja swtich spdt sehingga bisa mempengaruhi LED!
Jawab :
Switch SPDT bekerja sesuai dengan program yang ditetatpkan pada arduino uno yang berperan sebagai otak dari sistem. Dimana pada prgram dijelaskan jika button ditekan maka LED akan hidup. Namun kenyataannya kebalikannya yang terjadi dimana lampunya akan mati. Maka ouput dari arduino bersifat active low sesuai dengan program yang sudah dibuat.

2. Analisa apa yang akan terjadi pada LED ketika langsung di hubungkan ke supply!
Jawab :
Pertama, tergantung pada besar tegangan yang diberkan pada LED. Jika sesuai dengan spesifikasi maka LED dapat menyala. namun jika tegangan yang diberikan lebih tinggi atau lebih rendah dari spesifikasi, maka kemungkinan LED dapat terbakar atau tidak bekerja.

8. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Demo Klik disini
Download Listing Program klik disini
Download Datasheet Arduino klik disini
Download Datasheet Button klik disini
Download Datasheet Led klik disini

MODUL 4 MIKRO TB

PERANCANGAN SISTEM KONTROL TANAMAN BAWANG BERBASIS MIKROKONTROLLER [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1.Pendahuluan 2. Tujuan ...