Showing posts with label Pemrograman. Show all posts
Showing posts with label Pemrograman. Show all posts

penghitung jumlah barang dengan IR sensor dan arduino uno

12:59 PM Comment

Untuk membuat penghitung jumlah barang menggunakan sensor IR dan Arduino Uno, berikut adalah langkah-langkahnya:

penghitung jumlah barang dengan IR sensor dan arduino uno

Komponen yang Dibutuhkan

  • Arduino Uno
  • Sensor IR (Infrared)
  • LCD 16x2 (opsional, untuk menampilkan hasil)
  • Buzzer (opsional, untuk notifikasi)
  • Resistor 220Ω (jika menggunakan LED indikator)
  • Breadboard dan kabel jumper

Rangkaian

  • Sambungkan VCC sensor IR ke 5V Arduino
  • Sambungkan GND sensor IR ke GND Arduino
  • Sambungkan OUT sensor IR ke salah satu pin digital Arduino (misalnya pin 2)
  • Jika menggunakan LCD, hubungkan ke Arduino dengan modul I2C atau langsung ke pin digital

Kode Program Arduino

Berikut adalah kode dasar untuk menghitung jumlah barang yang melewati sensor IR:

#include <LiquidCrystal_I2C.h>

#define sensorPin 2  // Pin sensor IR
int count = 0;       // Variabel untuk menghitung jumlah barang
int lastState = HIGH;

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Alamat I2C LCD bisa 0x27 atau 0x3F

void setup() {
    pinMode(sensorPin, INPUT);
    lcd.begin();
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Jumlah Barang:");
    lcd.setCursor(0, 1);
    lcd.print(count);
}

void loop() {
    int sensorState = digitalRead(sensorPin);
    
    if (sensorState == LOW && lastState == HIGH) {  // Deteksi perubahan dari HIGH ke LOW
        count++;  // Tambah jumlah barang
        lcd.setCursor(0, 1);
        lcd.print("          ");  // Hapus teks lama
        lcd.setCursor(0, 1);
        lcd.print(count);
        delay(500);  // Hindari pembacaan ganda karena bouncing sensor
    }

    lastState = sensorState;  // Simpan status terakhir sensor
}

Cara Kerja

  • Sensor IR akan mendeteksi benda yang lewat di depannya
  • Jika ada barang yang melewati sensor, jumlah akan bertambah
  • Data jumlah barang ditampilkan di LCD
Kalau mau menambahkan fitur lain seperti buzzer atau penyimpanan data ke SD card, bisa dikembangkan lebih lanjut.

Rangkaian paling mudah untuk membuat counter penghitung jumlah dengan arduino

7:04 AM Comment

 Membuat counter penghitung jumlah dengan Arduino bisa dilakukan dengan berbagai cara, tergantung pada bagaimana jumlah tersebut dihitung. Misalnya, kita bisa membuat counter dengan tombol (push button) atau sensor seperti sensor inframerah atau sensor ultrasonik. Berikut adalah langkah-langkah sederhana untuk membuat counter menggunakan tombol dan menampilkan hasilnya di LCD 16x2.

Rangkaian paling mudah untuk membuat counter penghitung jumlah dengan arduino


Bahan yang Dibutuhkan

  • 1x Arduino Uno
  • 1x LCD 16x2 + I2C module
  • 1x Push button
  • 1x Resistor 10kΩ
  • Kabel jumper
  • Breadboard

Rangkaian

Sambungkan komponen sebagai berikut:

  • LCD 16x2 dengan I2C
  • VCC → 5V Arduino
  • GND → GND Arduino
  • SDA → A4 Arduino
  • SCL → A5 Arduino
Push Button
  • Satu kaki push button ke pin 2 Arduino
  • Kaki lainnya ke GND melalui resistor 10kΩ (pull-down resistor)
  • Juga sambungkan kaki tersebut ke 5V langsung (tanpa resistor)


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Inisialisasi LCD dengan alamat 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int buttonPin = 2;  // Pin push button
int counter = 0;          // Variabel penghitung
int lastButtonState = LOW;

void setup() {
    pinMode(buttonPin, INPUT);
    lcd.begin();
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Counter:");
    lcd.setCursor(0, 1);
    lcd.print(counter);
}

void loop() {
    int buttonState = digitalRead(buttonPin);

    if (buttonState == HIGH && lastButtonState == LOW) {
        counter++;  // Tambah 1 setiap tombol ditekan
        lcd.setCursor(0, 1);
        lcd.print("      ");  // Hapus angka lama
        lcd.setCursor(0, 1);
        lcd.print(counter);
        delay(200);  // Debounce untuk menghindari pembacaan ganda
    }

    lastButtonState = buttonState;
}

Cara Kerja

  • Setiap kali tombol ditekan, angka counter bertambah 1.
  • Angka tersebut ditampilkan pada LCD 16x2.
  • Menggunakan debounce sederhana untuk menghindari pembacaan ganda dari satu kali tekan.

Pengembangan Lebih Lanjut

  • Menggunakan sensor lain seperti sensor infrared untuk mendeteksi objek yang melewati jalur.
  • Menambahkan reset counter dengan tombol tambahan.
  • Menggunakan display lain seperti OLED atau 7-segment untuk tampilan yang lebih kecil.
  • Mau modifikasi atau tambahan fitur tertentu?

jenis transistor yang sering dipakai rangkaian elektronika

10:44 AM Comment

 Dalam rangkaian elektronika, terdapat beberapa jenis transistor yang sering digunakan, tergantung pada fungsi dan aplikasinya. Berikut adalah beberapa jenis transistor yang umum digunakan:

jenis transistor yang sering dipakai rangkaian elektronika

Bipolar Junction Transistor (BJT)

  • NPN: Lebih sering digunakan karena memiliki arus basis yang mengalir ke arah emitor.
  • PNP: Digunakan pada rangkaian yang memerlukan polaritas arus yang berbeda.
  • Contoh transistor: BC547 (NPN), BC557 (PNP), 2N3904 (NPN), 2N3906 (PNP).

Field Effect Transistor (FET)
  • JFET (Junction Field Effect Transistor):
  • Biasanya digunakan dalam amplifier berdaya rendah.
  • Contoh: J310, 2N5457.
  • MOSFET (Metal Oxide Semiconductor Field Effect Transistor):
  • Sering digunakan dalam switching daya tinggi dan rangkaian digital.
  • Dibagi menjadi Enhancement Mode dan Depletion Mode.
  • Contoh: IRF540, IRFZ44N, 2N7000.
Darlington Transistor
  • Terdiri dari dua transistor BJT yang digabung untuk meningkatkan gain arus.
  • Digunakan dalam aplikasi daya tinggi.
  • Contoh: TIP120, TIP122.
UJT (Unijunction Transistor)
  • Digunakan dalam osilator, timer, dan rangkaian pemicu.
  • Contoh: 2N2646.

Nintendo Switch 2

12:03 PM Comment

 

Nintendo Switch 2

Nintendo has officially announced the Nintendo Switch 2, set to release in 2025. This new console will continue the hybrid design of its predecessor, allowing for both handheld and home console gaming. 

Key Features:

  • Larger Display: The Switch 2 features a larger screen with thinner bezels, enhancing the gaming experience. 
  • Redesigned Joy-Con Controllers: The Joy-Cons have been updated with a more comfortable design and a new magnetic attachment system. 
  • Backward Compatibility: Players will be able to enjoy their existing Nintendo Switch games on the new console. 

More detailed information, including specific hardware specifications, pricing, and launch titles, is expected to be revealed during a Nintendo Direct event scheduled for April 2, 2025. Following this event, Nintendo plans to host hands-on sessions in various cities worldwide, allowing fans to experience the Switch 2 firsthand. 

nintendo switch games

11:54 AM Comment

 

nintendo switch games


The Nintendo Switch has an extensive library of games spanning various genres. Here are some popular and highly rated titles across different categories:

Adventure and Action

  • The Legend of Zelda: Breath of the Wild: An open-world masterpiece with exploration, puzzles, and combat.
  • The Legend of Zelda: Tears of the Kingdom: A sequel to Breath of the Wild with new mechanics and an expanded world.
  • Metroid Dread: A thrilling 2D action-adventure game with fast-paced combat and exploration.
  • Bayonetta 3: An over-the-top action game with stylish combat.

Platformers

  • Super Mario Odyssey: A 3D platforming adventure with creative levels and mechanics.
  • Donkey Kong Country: Tropical Freeze: A challenging and beautifully designed side-scrolling platformer.
  • Kirby and the Forgotten Land: Kirby’s first full 3D adventure with charming visuals and gameplay.

Role-Playing Games (RPGs)

  • Pokémon Scarlet and Violet: Open-world Pokémon adventures with new mechanics.
  • Xenoblade Chronicles 3: A sprawling JRPG with an epic story and stunning environments.
  • Fire Emblem Engage: A tactical RPG with a rich story and strategic battles.

Party and Multiplayer Games

  • Mario Kart 8 Deluxe: The ultimate kart racing game for all ages.
  • Super Smash Bros. Ultimate: A crossover fighting game featuring characters from across gaming history.
  • Overcooked! All You Can Eat: A chaotic and fun co-op cooking game.

Indie and Puzzle Games

  • Hollow Knight: A beautiful and challenging metroidvania with a deep story.
  • Stardew Valley: A relaxing farming simulator with RPG elements.
  • Celeste: A tough but rewarding platformer with an emotional narrative.

Family and Casual Games

  • Animal Crossing: New Horizons: A life-simulation game where you build your dream island.
  • Splatoon 3: A colorful multiplayer shooter with fun game modes.
  • Luigi’s Mansion 3: A spooky but charming adventure with creative puzzles.

Sports and Fitness

  • Nintendo Switch Sports: A motion-controlled sports game featuring tennis, bowling, and more.
  • Ring Fit Adventure: A fitness-focused RPG that combines exercise with gaming.
Let me know if you’re looking for games in a specific genre or for a particular type of experience!

Membuat Alat penghitung dengan modul seven segmen arduino uno

11:30 AM Comment

membuat penghitung dengan modul seven segmen arduino uno

 Membuat penghitung menggunakan modul seven segment dan Arduino Uno adalah proyek sederhana dan menarik untuk dipelajari. Berikut adalah langkah-langkahnya:

Komponen yang Dibutuhkan

  • Arduino Uno
  • Modul seven segment (4 digit atau 1 digit)
  • Resistor (220 ohm untuk membatasi arus LED)
  • Kabel jumper
  • Breadboard

4 Digit Seven Segment
Biasanya menggunakan driver IC seperti TM1637 atau MAX7219 untuk menyederhanakan koneksi. Hubungkan modul ke Arduino sesuai petunjuk datasheet modul Anda.

Program untuk 4 Digit Seven Segment (TM1637)
Jika menggunakan modul TM1637, Anda bisa menggunakan library TM1637Display.

Instal Library:
  • Buka Arduino IDE.
  • Pergi ke Sketch > Include Library > Manage Libraries.
  • Cari TM1637 dan instal.
Gunakan program berikut:

#include <TM1637Display.h>

// Pin untuk modul TM1637
#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

void setup() {
  display.setBrightness(0x0f); // Set kecerahan
}

void loop() {
  for (int i = 0; i <= 9999; i++) {
    display.showNumberDec(i); // Tampilkan angka
    delay(1000); // Tunda 1 detik
  }
}
Hasil
4 Digit Seven Segment: Modul akan menghitung dari 0 hingga 9999.
Jika ada kesalahan atau kebutuhan penyesuaian, beri tahu saya!

Cara menggunakan firebase untuk project IOT

11:33 AM Comment

 

Cara menggunakan firebase untuk project IOT

Firebase adalah platform pengembangan aplikasi yang disediakan oleh Google, yang menawarkan berbagai layanan untuk membangun aplikasi berbasis web dan seluler. Berikut adalah panduan umum untuk menggunakan Firebase:

Buat Proyek Firebase

  • Buka Firebase Console:
  • Kunjungi Firebase Console.
  • Buat Proyek Baru:
  • Klik tombol Add Project atau Create a Project.
  • Beri nama proyek, pilih lokasi, dan klik Continue.
  • Konfigurasi Layanan Google Analytics (Opsional):
  • Aktifkan atau lewati pengaturan Analytics.
  • Selesaikan Proyek:
  • Klik Create Project dan tunggu hingga selesai.

Tambahkan Aplikasi ke Firebase
  • Pilih Platform:
  • Pilih platform aplikasi: Web, iOS, Android, atau Unity.
  • Konfigurasi Aplikasi:
  • Masukkan nama aplikasi (untuk Android, sertakan SHA-1 jika perlu).
  • Download Konfigurasi:
  • Unduh file konfigurasi seperti google-services.json (Android) atau GoogleService-Info.plist (iOS).
  • Untuk aplikasi web, Firebase akan menyediakan konfigurasi dalam format JavaScript.
  • Tambahkan SDK Firebase:
  • Ikuti instruksi untuk menambahkan Firebase SDK ke proyek Anda.

[Lengkap] Penjelasan tentang IOT( Internet of Things)

10:59 AM Comment

 

Penjelasan tentang IOT( Internet of Things)

Internet of Things (IoT) adalah konsep di mana perangkat fisik, kendaraan, alat rumah tangga, dan perangkat lainnya yang dilengkapi dengan sensor, perangkat lunak, dan konektivitas internet dapat saling berkomunikasi dan bertukar data tanpa memerlukan interaksi manusia secara langsung. Tujuannya adalah menciptakan jaringan perangkat yang dapat saling bekerja untuk meningkatkan efisiensi, kenyamanan, dan produktivitas.

Komponen Utama IoT

  • Perangkat (Things): Benda fisik yang dilengkapi dengan sensor atau aktuator, seperti kamera, termostat, lampu, atau mobil pintar.
  • Konektivitas: Perangkat IoT terhubung ke jaringan (Wi-Fi, Bluetooth, Zigbee, atau jaringan seluler) agar dapat bertukar data.
  • Sensor dan Aktuator: Sensor mengumpulkan data (misalnya suhu, cahaya, gerakan), sementara aktuator memungkinkan perangkat melakukan tindakan (misalnya menyalakan lampu).
  • Platform dan Cloud: Data yang dikumpulkan dikirim ke platform berbasis cloud untuk penyimpanan, analisis, dan pengambilan keputusan.
  • Analitik dan AI: Algoritma dan teknologi kecerdasan buatan (AI) menganalisis data untuk memberikan wawasan atau melakukan tindakan otomatis.

Contoh Penerapan IoT

  • Rumah Pintar: Lampu, kunci pintu, atau alat pemanas yang dapat dikontrol melalui aplikasi.
  • Kesehatan: Perangkat wearable seperti smartwatch untuk memantau detak jantung atau aktivitas fisik.
  • Industri: Sensor di mesin pabrik untuk memantau kinerja atau mendeteksi kerusakan.
  • Transportasi: Mobil otonom dan sistem manajemen lalu lintas berbasis IoT.
  • Pertanian: Sensor untuk mengukur kelembapan tanah dan mengotomatisasi penyiraman.

Manfaat IoT

  • Efisiensi Operasional: Mengurangi kebutuhan intervensi manual melalui otomatisasi.
  • Penghematan Biaya: Deteksi dini masalah mengurangi kerugian akibat kerusakan.
  • Kenyamanan: Memberikan kontrol lebih besar terhadap lingkungan melalui perangkat pintar.
  • Pengambilan Keputusan: Data real-time membantu dalam analisis dan pengambilan keputusan yang lebih baik.

Tantangan IoT

  • Keamanan dan Privasi: Ancaman peretasan dan pelanggaran data.
  • Kompleksitas: Integrasi perangkat yang beragam dengan standar yang berbeda.
  • Ketergantungan pada Konektivitas: Perangkat IoT memerlukan koneksi internet yang stabil.
  • Biaya Implementasi: Infrastruktur awal yang mahal untuk skala besar.

IoT memiliki potensi besar untuk mengubah berbagai aspek kehidupan, tetapi keberhasilannya memerlukan kolaborasi teknologi, regulasi, dan keamanan.

Jenis IC (Integrated Circuit) yang sering dignakan pada rangkaian elektronika

7:38 AM Comment

 

Jenis IC (Integrated Circuit) yang sering dignakan pada rangkaian elektronika

Berikut adalah beberapa jenis IC yang sering digunakan dalam rangkaian elektronika dan aplikasinya:

IC Timer (Contoh: IC 555)

Fungsi:

  • Digunakan sebagai penghasil pulsa, osilator, dan pengatur waktu.
  • Dapat bekerja dalam mode monostabil, astabil, dan bistabil.

Aplikasi:

  • Membuat lampu berkedip (blinking LED).
  • Membuat sinyal PWM (Pulse Width Modulation).
  • Timer sederhana.

IC Op-Amp (Operational Amplifier)

Contoh: LM741, LM358.

Fungsi:

  • Penguat sinyal (amplifier).
  • Komparator tegangan.
  • Integrator dan diferensiator dalam rangkaian analog.

Aplikasi:

  • Preamplifier audio.
  • Detektor level tegangan.
  • Filter aktif.

IC Regulator Tegangan

Contoh: 7805, 7812 (regulator tegangan positif), 7905 (regulator tegangan negatif).

Fungsi:

  • Menstabilkan tegangan output untuk catu daya.

Aplikasi:

  • Power supply untuk perangkat elektronik.
  • Proteksi rangkaian dari fluktuasi tegangan.

IC Logika TTL dan CMOS

Contoh:

  • Seri TTL: 7400 (NAND), 7404 (NOT), 74192 (Counter).
  • Seri CMOS: 4001 (NAND), 4011 (AND).

Fungsi:

  • Melakukan operasi logika dasar (AND, OR, NOT, dll).
  • Sebagai bagian dari rangkaian digital seperti flip-flop, counter, dan shift register.

Aplikasi:

  • Sistem kontrol digital.
  • Penghitung dan pembagi frekuensi.

IC ADC dan DAC

Contoh: ADC0804 (Analog-to-Digital Converter), DAC0808 (Digital-to-Analog Converter).

Fungsi:

  • ADC: Mengubah sinyal analog menjadi sinyal digital.
  • DAC: Mengubah sinyal digital menjadi sinyal analog.

Aplikasi:

  • Sistem akuisisi data.
  • Perangkat audio dan video.

IC Sensor

Contoh:

  • LM35 (sensor suhu).
  • TCS3200 (sensor warna).
  • MPU6050 (sensor akselerometer dan giroskop).

Fungsi:

  • Mendeteksi perubahan fisik seperti suhu, cahaya, atau gerakan.

Aplikasi:

  • Sistem otomasi rumah.
  • Perangkat IoT.

IC Memori

Contoh: EEPROM (24C02), Flash Memory.

Fungsi:

  • Menyimpan data sementara (RAM) atau permanen (EEPROM, Flash).

Aplikasi:

  • Mikrokontroler dan komputer.
  • Sistem penyimpanan data pada perangkat elektronik.

IC Mikrocontroller dan Mikroprosesor

Contoh:

  • Mikrocontroller: ATmega328 (Arduino), ESP8266, ESP32.
  • Mikroprosesor: Intel 8086, ARM Cortex.

Fungsi:

  • Mikrocontroller: Mengontrol perangkat elektronik dengan logika terprogram.
  • Mikroprosesor: "Otak" perangkat elektronik.

Aplikasi:

  • Sistem embedded seperti robot, smart home.
  • Komputer dan smartphone.

IC Driver Motor

Contoh: L293D, ULN2003.

Fungsi:

  • Mengontrol motor DC, motor stepper, atau relay.

Aplikasi:

  • Sistem robotik.
  • Kendali aktuator dalam otomasi.

Jenis IC ini sering digunakan dalam berbagai proyek dan perangkat elektronik, baik untuk tujuan pembelajaran maupun aplikasi praktis. Mulailah dari IC sederhana seperti 555 Timer atau Op-Amp untuk memahami konsep dasarnya!

Membuat counter dengan seven segment dan3 fungsi tombol menggunakan Arduino Uno

7:02 AM Comment

 

Membuat counter dengan seven segment dan3 fungsi tombol menggunakan Arduino Uno

Membuat counter dengan seven segment dan tombol menggunakan Arduino Uno adalah proyek sederhana. Seven segment akan digunakan untuk menampilkan angka, dan tombol digunakan untuk menaikkan, menurunkan, atau mereset angka.

Komponen yang Diperlukan:

  • Arduino Uno
  • Modul seven segment (TM1637 atau manual 4-digit 7-segment)
  • Tombol push-button (3 buah)
  • Resistor 10kΩ (3 buah untuk pull-down)
  • Kabel jumper
  • Breadboard

Skema Rangkaian:

TM1637:
  • CLK → Pin 2 (Arduino)
  • DIO → Pin 3 (Arduino)
  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
Tombol Push-button:
  • Tombol 1 (Count Up) → Pin 4 (Arduino) dengan resistor pull-down 10kΩ
  • Tombol 2 (Count Down) → Pin 5 (Arduino) dengan resistor pull-down 10kΩ
  • Tombol 3 (Reset) → Pin 6 (Arduino) dengan resistor pull-down 10kΩ
Program
#include <TM1637Display.h>

// Pin TM1637
#define CLK 2
#define DIO 3

// Tombol
#define BUTTON_UP 4
#define BUTTON_DOWN 5
#define BUTTON_RESET 6

// Inisialisasi TM1637
TM1637Display display(CLK, DIO);

// Variabel counter
int counter = 0;

void setup() {
  // Inisialisasi tombol sebagai input
  pinMode(BUTTON_UP, INPUT_PULLUP);
  pinMode(BUTTON_DOWN, INPUT_PULLUP);
  pinMode(BUTTON_RESET, INPUT_PULLUP);

  // Inisialisasi display
  display.setBrightness(0x0F);
  display.showNumberDec(counter);
}

void loop() {
  // Tombol Count Up
  if (digitalRead(BUTTON_UP) == LOW) {
    delay(200); // Debounce
    counter++;
    if (counter > 9999) counter = 0; // Batas angka maksimal
    display.showNumberDec(counter);
  }

  // Tombol Count Down
  if (digitalRead(BUTTON_DOWN) == LOW) {
    delay(200); // Debounce
    counter--;
    if (counter < 0) counter = 9999; // Batas angka minimal
    display.showNumberDec(counter);
  }

  // Tombol Reset
  if (digitalRead(BUTTON_RESET) == LOW) {
    delay(200); // Debounce
    counter = 0;
    display.showNumberDec(counter);
  }
}

Cara kerjanya yaitu ada 3 buah fungsi tombol. pertama untuk menambah angka dan kedua untuk mengurangi angka, dan ketiga untuk merestart angka yang telah ada

Cara Membuat jam digital menggunakan modul TM1637 dan RTC dengan arduino uno

7:48 AM Comment
Jam digital menggunakan modul TM1637 dan RTC

Jam digital menggunakan modul TM1637 dan RTC (Real-Time Clock) seperti DS3231 atau DS1307 pada Arduino Uno adalah proyek yang cukup sederhana. Modul TM1637 digunakan untuk menampilkan waktu pada display 7-segment, sedangkan modul RTC berfungsi untuk menyimpan dan menjaga waktu agar tetap akurat meskipun Arduino dimatikan.

Berikut adalah langkah-langkah untuk membuat jam digital menggunakan TM1637 dan RTC:

Komponen yang Diperlukan:

  • Arduino Uno
  • Modul RTC (DS3231 atau DS1307)
  • Modul TM1637 (4-digit 7-segment display)
  • Kabel jumper
  • Breadboard

Rangkaian
Hubungkan Modul TM1637 ke Arduino:
  • CLK (TM1637) → Pin digital 2 (Arduino)
  • DIO (TM1637) → Pin digital 3 (Arduino)
  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
Hubungkan Modul RTC ke Arduino:
  • SCL (RTC) → Pin A5 (Arduino Uno)
  • SDA (RTC) → Pin A4 (Arduino Uno)
  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
Library yang Dibutuhkan
Kedua library ini bisa diunduh dan diinstal melalui Library Manager di Arduino IDE.

Program
#include <Wire.h>
#include <RTClib.h>
#include <TM1637Display.h>

// Pin TM1637
#define CLK 2
#define DIO 3

// Inisialisasi modul RTC dan TM1637
RTC_DS3231 rtc;
TM1637Display display(CLK, DIO);

void setup() {
  Serial.begin(9600);

  // Inisialisasi modul TM1637
  display.setBrightness(0x0F);

  // Inisialisasi modul RTC
  if (!rtc.begin()) {
    Serial.println("RTC tidak terdeteksi!");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC kehilangan daya, set waktu sekarang!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Set waktu sesuai dengan waktu saat kompilasi
  }
}

void loop() {
  DateTime now = rtc.now(); // Ambil waktu dari RTC

  // Format waktu ke 24 jam
  int displayTime = now.hour() * 100 + now.minute();

  // Tampilkan waktu pada TM1637
  display.showNumberDecEx(displayTime, 0b01000000, true); // Tampilkan dengan titik di tengah (:)

  delay(1000); // Update setiap detik
}

Membuat jam digital sendiri menggunakan modul 7 segment

7:00 AM Comment
Membuat jam digital sendiri menggunakan modul 7 segment

 Untuk membuat jam digital menggunakan modul 7-segment dengan Arduino, kita bisa menggunakan modul 7-segment display 4 digit yang biasanya memiliki IC driver TM1637. Modul ini mempermudah pengendalian karena hanya membutuhkan 2 pin Arduino.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis lainnya).
  • Modul 7-Segment 4-Digit TM1637.
  • Kabel jumper.
  • Breadboard.
  • RTC Module DS3231 (opsional, untuk waktu yang lebih akurat).
Koneksi Modul TM1637 ke Arduino

TM1637 Arduino
VCC 5V
GND GND
CLK Pin 3
DIO  Pin 4

Langkah Pembuatan
  • Install Library TM1637
  • Buka Arduino IDE.
  • Pergi ke Sketch → Include Library → Manage Libraries.
  • Cari dan install TM1637Display.
Program Jam Digital

#include 

// Pin untuk TM1637
#define CLK 3    // Pin CLK dihubungkan ke Pin 3 Arduino
#define DIO 4    // Pin DIO dihubungkan ke Pin 4 Arduino

// Inisialisasi display TM1637
TM1637Display display(CLK, DIO);

// Variabel waktu (jam dan menit)
int jam = 0;    // Atur jam awal (0-23)
int menit = 0;  // Atur menit awal (0-59)

void setup() {
  display.setBrightness(7); // Atur kecerahan display (0-7)
}

void loop() {
  // Menampilkan waktu (format jam:menit)
  int waktu = (jam * 100) + menit; // Menggabungkan jam dan menit
  display.showNumberDecEx(waktu, 0b01000000, true); // Tampilkan dengan titik tengah ":"

  delay(60000); // Delay 1 menit (60000 ms)

  // Logika increment waktu
  menit++;
  if (menit >= 60) { // Jika menit mencapai 60, reset ke 0 dan tambah jam
    menit = 0;
    jam++;
  }
  if (jam >= 24) { // Jika jam mencapai 24, reset ke 0
    jam = 0;
  }
}


Penjelasan Kode
  • Library TM1637Display digunakan untuk mempermudah komunikasi dengan modul TM1637.
  • showNumberDecEx() menampilkan angka dengan format jam:menit.
  • 0b01000000 menyalakan titik tengah ":" sebagai pemisah jam dan menit.
  • Waktu dihitung dengan increment menit setiap 60 detik.
  • Jika menit = 60, maka reset ke 0 dan jam bertambah 1.
  • Jika jam = 24, maka reset ke 0.

Program counter menggunakan 7-segment 1 Digit

7:00 AM Comment
Program counter menggunakan 7-segment 1 Digit


Berikut adalah program counter menggunakan 7-segment display dengan Arduino. Program ini akan menampilkan angka dari 0 hingga 9 secara berurutan dan ditampilkan pada 7-segment display common cathode.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis lainnya).
  • 7-segment display (common cathode).
  • Resistor 220 Ohm (7 buah, untuk melindungi LED pada 7-segment).
  • Kabel jumper.
  • Breadboard.

Sebelum memulai, pahami 7-segment display. Setiap segmen dihubungkan ke pin Arduino untuk menyalakan LED:
seven segment pinout

Biasanya, pin segmen dihubungkan ke Arduino seperti ini:

  • a → Pin 2
  • b → Pin 3
  • c → Pin 4
  • d → Pin 5
  • e → Pin 6
  • f → Pin 7
  • g → Pin 8
  • Common Cathode (CC) → GND

  1. Sambungkan segmen a-g ke pin digital Arduino (2-8).
  2. Hubungkan resistor 220 Ohm ke setiap pin segmen.
  3. Hubungkan pin common cathode (CC) ke GND Arduino.
Program Arduino 

  // Definisi pin untuk setiap segmen (a-g) pada 7-segment
int segA = 2;
int segB = 3;
int segC = 4;
int segD = 5;
int segE = 6;
int segF = 7;
int segG = 8;

// Array untuk menyimpan pola angka 0-9 (LOW berarti segmen menyala)
byte angka[10][7] = {
  {LOW, LOW, LOW, LOW, LOW, LOW, HIGH}, // 0
  {HIGH, LOW, LOW, HIGH, HIGH, HIGH, HIGH}, // 1
  {LOW, LOW, HIGH, LOW, LOW, HIGH, LOW}, // 2
  {LOW, LOW, LOW, LOW, HIGH, HIGH, LOW}, // 3
  {HIGH, LOW, LOW, HIGH, HIGH, LOW, LOW}, // 4
  {LOW, HIGH, LOW, LOW, HIGH, LOW, LOW}, // 5
  {LOW, HIGH, LOW, LOW, LOW, LOW, LOW}, // 6
  {LOW, LOW, LOW, HIGH, HIGH, HIGH, HIGH}, // 7
  {LOW, LOW, LOW, LOW, LOW, LOW, LOW}, // 8
  {LOW, LOW, LOW, LOW, HIGH, LOW, LOW}  // 9
};

// Fungsi untuk menampilkan angka di 7-segment
void tampilkanAngka(int num) {
  digitalWrite(segA, angka[num][0]);
  digitalWrite(segB, angka[num][1]);
  digitalWrite(segC, angka[num][2]);
  digitalWrite(segD, angka[num][3]);
  digitalWrite(segE, angka[num][4]);
  digitalWrite(segF, angka[num][5]);
  digitalWrite(segG, angka[num][6]);
}

void setup() {
  // Atur pin segmen sebagai output
  pinMode(segA, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segE, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);
}

void loop() {
  // Loop angka 0-9
  for (int i = 0; i <= 9; i++) {
    tampilkanAngka(i); // Tampilkan angka pada 7-segment
    delay(1000);       // Tunda 1 detik sebelum ke angka berikutnya
  }
}

  

Penjelasan Kode
  • Array angka menyimpan pola segmen untuk angka 0–9.
  • Setiap angka diwakili oleh 7 nilai (LOW/HIGH) untuk segmen a-g.
  • LOW berarti segmen menyala pada 7-segment common cathode.
  • Fungsi tampilkanAngka() menyalakan segmen sesuai pola angka.
  • Loop for digunakan untuk menghitung dari 0 sampai 9, dengan jeda 1 detik antar angka.
Cara Kerja Alat
  • Upload kode program ke Arduino menggunakan Arduino IDE.
  • LED pada 7-segment akan menampilkan angka dari 0 hingga 9 secara berurutan.
  • Angka akan berubah setiap 1 detik.


Alat deteksi ketinggian air menggunakan Arduino

11:16 AM Comment

 Untuk membuat alat deteksi ketinggian air menggunakan Arduino, kita bisa memanfaatkan sensor ultrasonik (HC-SR04) atau sensor level air seperti water level sensor atau rangkaian pelampung.

Berikut adalah panduan membuat alat deteksi ketinggian air menggunakan sensor ultrasonik HC-SR04 karena mudah digunakan dan tidak memerlukan kontak langsung dengan air.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis lainnya).
  • Sensor Ultrasonik HC-SR04 – untuk mengukur jarak permukaan air.
  • Buzzer – untuk alarm jika ketinggian air melewati batas tertentu.
  • LED (opsional) – sebagai indikator tambahan.
  • Resistor 220 Ohm – untuk LED.
  • Kabel jumper – untuk koneksi antar komponen.
  • Breadboard – sebagai papan koneksi sementara.
  • Adaptor atau kabel USB – sebagai catu daya Arduino.

Prinsip Kerja
  • Sensor ultrasonik HC-SR04 mengukur jarak antara sensor dan permukaan air.
  • Jika jarak air mendekati sensor (ketinggian air naik), Arduino akan memicu buzzer atau LED sebagai alarm.
  • Logika sederhana: Semakin tinggi air, semakin kecil jarak yang terbaca oleh sensor.
Alat deteksi ketinggian air menggunakan Arduino


Skema Rangkaian
Koneksi Sensor HC-SR04 ke Arduino:
  • VCC → 5V Arduino
  • GND → GND Arduino
  • TRIG → Pin 7 Arduino
  • ECHO → Pin 6 Arduino
Koneksi Buzzer dan LED:
  • Buzzer positif → Pin 10 Arduino
  • LED positif → Pin 13 Arduino (melalui resistor 220 Ohm).
  • Buzzer negatif dan LED negatif → GND Arduino.
Program Arduino

#define trigPin 7    // Pin Trig sensor ultrasonik
#define echoPin 6   // Pin Echo sensor ultrasonik
#define buzzer 10     // Pin buzzer
#define led 13        // Pin LED

float jarak;         // Variabel untuk menyimpan jarak
float tinggi_air;    // Variabel untuk menyimpan ketinggian air
float tinggi_tangki = 30.0; // Tinggi tangki air dalam cm (sesuaikan)

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(led, OUTPUT);
  Serial.begin(9600); // Inisialisasi komunikasi serial
}

void loop() {
  // Mengirimkan pulsa ultrasonik
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Membaca waktu pantulan (dalam mikrodetik)
  long durasi = pulseIn(echoPin, HIGH);
  
  // Menghitung jarak (dalam cm)
  jarak = durasi * 0.034 / 2; 
  
  // Menghitung ketinggian air
  tinggi_air = tinggi_tangki - jarak;

  // Menampilkan data di Serial Monitor
  Serial.print("Jarak permukaan air: ");
  Serial.print(jarak);
  Serial.print(" cm | Ketinggian air: ");
  Serial.print(tinggi_air);
  Serial.println(" cm");

  // Logika alarm jika ketinggian air melebihi batas
  if (tinggi_air > 25) { // Sesuaikan batas tinggi air
    digitalWrite(buzzer, HIGH); // Buzzer menyala
    digitalWrite(led, HIGH);    // LED menyala
    Serial.println("Peringatan: Air mendekati batas maksimum!");
  } else {
    digitalWrite(buzzer, LOW); // Buzzer mati
    digitalWrite(led, LOW);    // LED mati
  }
  
  delay(1000); // Delay 1 detik sebelum pengukuran berikutnya
}

  
 
Cara Kerja Alat
  • Pasang sensor ultrasonik di bagian atas tangki atau wadah air.
  • Jalankan program dan buka Serial Monitor untuk melihat data jarak dan ketinggian air.
  • Jika air mendekati batas atas, buzzer dan LED akan aktif sebagai peringatan.
Pengembangan Lanjutan
  • Tambahkan layar LCD untuk menampilkan ketinggian air secara langsung.
  • Gunakan modul relay untuk mengontrol pompa air otomatis saat ketinggian air mencapai batas tertentu.
  • Integrasikan dengan modul Wi-Fi (ESP8266/ESP32) untuk mengirim notifikasi ke smartphone.
  • Tambahkan fitur logging data menggunakan SD card untuk mencatat perubahan ketinggian air.

Alat Kontrol Suhu Ruangan dengan Esp32

10:42 AM Comment

 Untuk mendeteksi suhu menggunakan ESP32 dengan sensor DHT (DHT11/DHT22) dan mengontrol kipas angin berdasarkan suhu, Anda dapat mengikuti langkah berikut:


deteksi suhu ruangan dengan esp32
Alat yang di butuhkan :

  • ESP32.
  • Sensor DHT (DHT11/DHT22).
  • Kipas angin (DC fan) 12v.
  • Modul relay
  • Kabel Jumper
  • Power Suplay 12v

Diagram Rangkaian :
DHT Sensor:
  • Pin VCC → 3.3V atau 5V di ESP32.
  • Pin GND → GND di ESP32.
  • Pin DATA → D8 ESP32.
  • Resistor pull-up 10kΩ antara pin DATA dan VCC.
Modul Relay (untuk kipas angin):
  • VCC → 5V dari Modul StepDown.
  • GND → GND dari ESP32.
  • IN → D6 ESP32.
Sambungkan kipas ke relay seperti berikut:
Salah satu kabel kipas ke NO (Normally Open).
Kabel kipas lainnya ke C (Common).
bisa dilihat pada gambar diaatas

Program :


#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

// Konfigurasi sensor DHT
#define DHTPIN 8       // Pin data DHT
#define DHTTYPE DHT22  // Ubah ke DHT11 jika menggunakan DHT11
DHT dht(DHTPIN, DHTTYPE);

// Pin relay untuk kipas
#define RELAYPIN 6

// Ambang suhu untuk kipas
#define TEMPERATURE_THRESHOLD 30.0 // Suhu dalam °C

void setup() {
  Serial.begin(115200);
  Serial.println(F("DHT with Fan Control"));

  // Memulai DHT
  dht.begin();

  // Mengatur pin relay sebagai output
  pinMode(RELAYPIN, OUTPUT);
  digitalWrite(RELAYPIN, LOW); // Kipas mati saat awal
}

void loop() {
  // Tunggu 2 detik antar pembacaan
  delay(2000);

  // Membaca suhu dan kelembapan
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  // Periksa apakah pembacaan berhasil
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Menampilkan hasil ke Serial Monitor
  Serial.print(F("Temperature: "));
  Serial.print(temperature);
  Serial.print(F("°C  Humidity: "));
  Serial.print(humidity);
  Serial.println(F("%"));

  // Mengontrol kipas berdasarkan suhu
  if (temperature > TEMPERATURE_THRESHOLD) {
    digitalWrite(RELAYPIN, HIGH); // Nyalakan kipas
    Serial.println(F("Fan ON"));
  } else {
    digitalWrite(RELAYPIN, LOW); // Matikan kipas
    Serial.println(F("Fan OFF"));
  }
}

Membuat alarm hujan sederhana menggunakan Arduino Uno

11:29 AM Comment

 Membuat alarm hujan menggunakan Arduino Uno adalah proyek yang menarik dan bermanfaat untuk mendeteksi hujan dan memberi peringatan melalui suara atau sinyal. Untuk membuat proyek ini, kita memerlukan beberapa komponen utama dan pengaturan program yang sederhana. Berikut adalah langkah-langkah untuk membuat alarm hujan dengan Arduino Uno:

Membuat alarm hujan menggunakan Arduino Uno


Alat dan Bahan yang Dibutuhkan

  • Arduino Uno
  • Sensor Hujan (Rain Sensor Module - biasanya terdiri dari dua bagian: sensor dan modul pengontrol)
  • Buzzer atau LED (untuk alarm)
  • Resistor (opsional untuk menyeimbangkan tegangan LED atau buzzer jika diperlukan)
  • Kabel jumper

Cara Kerja

Sensor hujan akan mendeteksi adanya air pada permukaannya, yang akan menurunkan resistansi pada sensor dan memberikan output ke modul pengontrolnya. Modul ini kemudian akan mengirimkan sinyal digital ke Arduino, yang dapat digunakan untuk mengaktifkan buzzer atau LED sebagai alarm.

Rangkaian

  • Hubungkan sensor hujan: Sambungkan pin output digital sensor hujan (biasanya D0) ke pin digital Arduino (misalnya, pin D2).
  • Hubungkan buzzer atau LED: Sambungkan pin positif dari buzzer atau LED ke pin digital lain pada Arduino (misalnya, pin D3), dan pin negatif ke ground.
  • Sambungkan ground dari sensor dan Arduino, serta sambungkan pin VCC sensor ke 5V dari Arduino.

// Inisialisasi pin
const int sensorPin = 2;  // Pin sensor hujan
const int alarmPin = 3;   // Pin buzzer atau LED untuk alarm

void setup() {
  pinMode(sensorPin, INPUT);   // Atur pin sensor sebagai input
  pinMode(alarmPin, OUTPUT);   // Atur pin alarm sebagai output
  Serial.begin(9600);          // Inisialisasi serial monitor
}

void loop() {
  int statusHujan = digitalRead(sensorPin);  // Membaca status dari sensor hujan
  
  if (statusHujan == LOW) {  // LOW berarti air terdeteksi (tergantung sensor)
    digitalWrite(alarmPin, HIGH);  // Aktifkan alarm (LED atau buzzer)
    Serial.println("Hujan terdeteksi!");
  } else {
    digitalWrite(alarmPin, LOW);   // Matikan alarm
    Serial.println("Tidak ada hujan.");
  }
  
  delay(500);  // Tunggu setengah detik sebelum membaca ulang
}

Penjelasan Kode
  • digitalRead(sensorPin) digunakan untuk membaca nilai dari sensor hujan.
  • digitalWrite(alarmPin, HIGH) akan mengaktifkan buzzer atau LED jika hujan terdeteksi.
  • Serial.println hanya digunakan untuk menampilkan status di Serial Monitor (opsional).
Pengujian
  • Upload kode ke Arduino.
  • Basahi permukaan sensor hujan untuk melihat apakah buzzer atau LED menyala.
  • Jika berhasil, buzzer atau LED akan aktif saat sensor mendeteksi air.