Wikipedia

Hasil penelusuran

Selasa, 19 Mei 2020

Program arduino untuk sensor Tegangan ( Voltage Divider)

    Voltage divider ( Pembagi Tegangan) dengan menggunakan 2 buah resistor yang dipasang secara seri digunakan sebagai tegangan reference atau untuk mengurangi besarnya tegangan sehingga dapat diukur. pembagi tegangan mungkin cukup akurat jika hanya terbuat dari resistor, pembagi tegangan mungkin memiliki elemen kapasitif yang ditambahkan untuk mengkompensasi kapasitansi beban. Dalam transmisi tenaga listrik, pembagi tegangan kapasitif digunakan untuk pengukuran tegangan tinggi, dari pengertian diatas voltage divider dapat digunakan sebagai sensor tegangan AC atau pun DC yang dikonfigurasikan ke Arduino sebagai proses pengolahan data signal frekuensi dari output rangkaian Voltage divider, dibawah ini contoh dari rangkaian voltage divider yang saya gunakan dalam pembuatan sensor tegangan pada arduino

untuk mengetahui nilai output ( Vout) pada rangkaian tersebut, terlebih dahulu kita harus mengetahui nilai R1 dan R2 kemudian menentukan nilai Vin ( tegangan input ) pada rangkaian, sehingga dapat dirumuskan sebagai berikut

diket :

Vin= 5 Volt
R1= 1 K ( 1000)  Ohm
R2=10 K Ohm

Ditanya Vout ?

Vout =( R2)/ ( R1 + R2) * Vin

Vout=(10000)/(1000 + 10000) * 5

jadi dari persamaan rumus diatas nilai Vout adalah 4.54 V

    setelah kita paham dan mengerti bagaimana sistem kerja dari voltage divider maka selanjutnya kita akan membuat rangkaian voltage divider terhubung ke pin ADC Arduino pada ( A0) agar tegangan analog yang dihasilkan oleh rangkaian voltage divider tersebut dikonversi oleh arduino menjadi nilai digital dengan nilai adc max 1023 dan nilai pengolahan data dari ADC tersebut di kalibrasi menjadi nilai tegangan digital yang sesuai dengan tegangan output voltage divider kemudian ditampilkan pada LCD 16*2

    dari gambar diatas pin SCL dan SDA modul I2c terhubung ke pin A5 dan A4 arduino fungsi nya sebagai interface serial comunikasi data ke LCD 16 *2  tegagangan yang dibutuhkan adalah 5 V diambil langsung dari pin 5V arduino uno, dibawah ini gambar rangkaian sumber tegangan input DC 5 V yang digunakan sebagai tegangan reference sensor, anda dapat menggunakan ke 2 rangkaian dibawah ini sesuai dengan kebutuhan pengukuran.

Rangkaian diatas digunakan sebagai sumber tegangan input reference AC 220 V untuk sensor tegangan AC trafo berfungsi menurunkan tegangan menjadi AC 5 V  dan disearahkan menjadi tegangan DC oleh Dioda kemudian dihubungkan ke rangkaian voltage divider pada jalur Vin.

PROGRAM FULL ARDUINO UNTUK MEMBACA OUTPUT SENSOR TEGANGAN ( Voltage Divider)

//==============Library LCD
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20, 16, 2);


int s1=0;
int vp=0;
float vout=0.00;
void setup(){
  Serial.begin(9600);
  lcd.init();
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Loading >>>>>");

  delay (400);

}

void loop(){

 //=====================Read Voltage From Sensor====
  s1=analogRead(A0)*5;
  vout=float(s1)/1023;
 
 
 lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("Input ADC= ");
     lcd.setCursor(10,0);
     lcd.print(s1);
     lcd.setCursor(0,1);
     lcd.print("Tegangan=");
     lcd.setCursor(9,1);
     lcd.print(vout);

     delay(100);
}




Senin, 18 Mei 2020

JAM DIGITAL DENGAN TAMPILAN SEVEN SEGMEN 6 DIGIT MENGGUNAKAN RTC DS 1307 DAN ARDUINO UNO

JAM DIGITAL DENGAN TAMPILAN SEVEN SEGMEN MENGGUNAKAN MODUL RTC DS1307 DAN ARDUINO UNO

    Hay sobat para hobi elektronika digital dan pemograman kali ini mimin akan membagikan tutorial cara membuat jam digital dengan tampilan Seven segmen menggunakan modul RTC DS1307 dan Arduino Uno semoga bermanfaat bagi teman-teman semua :) untuk mempermudah penjelasan tutorial mimin menggunakan simulasi Software Proteus sehingga teman-teman dapat dengan mudah memahami rangkaian, cara kerja dan program arduino nya, berikut bahan-bahan komponen  yang dibutuhkan

KEBUTUHAN KOMPONEN

  1. Modul RTC DS1307
  2. Arduino Uno ATmega 328
  3. Seven Segmen CA ( Common Anode) / CC ( Common Cathode)
  4. Kabel Jumper Secukup nya
KEBUTUHAN SOFTWARE

  1. Software Arduino.cc Versi 1.6.7
  2. Simulasi Proteus
  3. Library RTC DS1307
  4. Library SevSeg
Sebelum melakukan proses perangkaian, ada baiknya kita terlebih dahulu mengenal dan memahami fungsi masing masing komponen serta spesifikasi nya agar tidak terjadi kesalahan dalam perangkaian

MODUL RTC DS 1307


    modul ini didasarkan pada DS1307 RTC presisi tinggi real time clock modul melalui I2C antarmuka untuk berkomunikasi dengan singlechip, dapat membaca tahun, bulan, hari, minggu, waktu, menit, kedua Dapat membaca sampai 2100 tahun; kontrol antarmuka I2C; direkomendasikan power: DC 5 V; alamat modul adalah 0x68; kontrol antarmuka tingkat 5 V atau 3.3 V.

SPESIFIKASI

spesifikasi tegangan VCC Daya: 4.5 ~ 5.5 V;

tegangan baterai: 2.0 ~ 3.5 V; H

igh tingkat input: 2.1 ~ VCC + 0.3 V;

rendah tingkat input:-0.3 ~ + 0.8 V;

kontrol antarmuka: 4-pin (GND, VCC, SDA, SCL), GND untuk kawat tanah, VCC untuk sumber daya, SDA untuk I2C antarmuka kabel data, SCL untuk I2C antarmuka kabel;

Real time IC: DS1307Z; waktu Independen: melalui antarmuka I2C berkomunikasi dengan MCU;

baterai: CR1220;

diinstal lubang: 4-M2 sekrup lubang, diameter lubang: 2.2mm, mudah untuk menginstal


MODUL SEVEN SEGMEN CA ( Common Anode)

    modul seven segmen  adalah sekumpulan led yang tersusun berbentuk digit angka, sistem kerja nya hampir sama dengan mengaktifkan sebuah led sesuai pin sehingga berbentuk sebuah digit angka, pada gambar dibawah ini terlihat jelas perbedaan antara Common Anode dengan Common Chatode






RANGKAIAN JAM DIGITAL PADA SOFTWARE PROTEUS




PROGRAM ARDUINO

//=======seven segmen
#include <SevSeg.h>
SevSeg sevseg;

//=======RTC library
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
    Serial.begin(9600);
    Wire.begin();
    RTC.begin();
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }

 //=============================Pengaturan byte digits & pin Seven Segment
byte numDigits=6; //jika menggunakan 3 buah seven segmen, dapat diubah sesuai jumlah digit
  byte digitPins[]={2,3,4,5,A0,A1};
  byte segmentPins[]={6,7,8,9,10,11,12,13}; // ini merupakan pin yang terhubung ke COM seven segmen
  bool resistorOnSegments=false;
  byte hardwareConfig =COMMON_ANODE;
  bool updateWithDelays=true;
  bool leadingZeros=false;
  bool disableDecPoint = false;

  sevseg.begin(hardwareConfig,numDigits,digitPins,segmentPins,resistorOnSegments,
  updateWithDelays,leadingZeros,disableDecPoint);
  sevseg.setBrightness(90);
 
}
void loop () {
    DateTime now = RTC.now();
//=========================Convertion date=======================================================
    int jam=RTC.now().hour();
    int menit=RTC.now().minute();
    int detik=RTC.now().second();

    String s1=String(jam);
    String s2=String(menit);
    String s3=String(detik);
    String s= s1 + s2 + s3;
   
//================================================================================================

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
Serial.print(s.toInt());
Serial.println();

   sevseg.setNumber(s.toInt(),0);
  sevseg.refreshDisplay(); // Must run repeatedly
   
   //delay(100);

   
}