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.


Cara mudah mengetahui kutub positif dan negatif led

11:00 AM Comment
membedakan anoda katoda led


Melihat Panjang Kaki LED

  • Kaki panjang → Anoda (positif)
  • Kaki pendek → Katoda (negatif)

Ini adalah cara paling umum jika LED masih baru dan belum dipotong kakinya. Namun, jika kaki LED sudah dipotong, gunakan metode lain.

Melihat Bagian Dalam LED (Bentuk Anvil)

  • Perhatikan bagian dalam LED (dari sisi transparan):
  • Bagian besar/tebal (seperti sendok) → Katoda (negatif)
  • Bagian kecil/tipis → Anoda (positif)

Ciri ini bisa dilihat dengan mudah pada LED bening atau LED dengan badan transparan.

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.