Belajar Elektro

Random post

Belajar Elektro

Powered By Blogger

Thursday, 8 May 2025

Nano SWR Power Meter VHF


Kode Program dan Wiring

Wiring

Sensor Forward                A0           Tegangan maju (via coupler)

Sensor Reflected             A1           Tegangan pantul (via coupler)

OLED SDA            A4           Data I2C

OLED SCL             A5           Clock I2C

OLED VCC            5V           Power 5V

OLED GND           GND      Ground

Buzzer (+)           D4           Alarm SWR tinggi

Buzzer (–)           GND      Ground

 

Kode Program

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

 

#define PIN_FORWARD A0

#define PIN_REFLECTED A1

#define BUZZER_PIN 4

 

#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64

#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

 

// Kalibrasi daya

const float forwardScale = 1.28;

const float reflectedScale = 1.28;

 

// Fungsi pembacaan rata-rata analog

float readAverage(int pin, int samples = 10) {

  long total = 0;

  for (int i = 0; i < samples; i++) {

    total += analogRead(pin);

    delay(2); // delay kecil antar pembacaan

  }

  return (float)total / samples;

}

 

void setup() {

  Serial.begin(9600);

  pinMode(PIN_FORWARD, INPUT);

  pinMode(PIN_REFLECTED, INPUT);

  pinMode(BUZZER_PIN, OUTPUT);

  digitalWrite(BUZZER_PIN, LOW);

 

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {

    Serial.println(F("OLED tidak ditemukan"));

    while (true);

  }

 

  display.clearDisplay();

  display.display();

}

 

void loop() {

  // Baca tegangan dari coupler dengan rata-rata

  float vForward = readAverage(PIN_FORWARD) * (5.0 / 1023.0);

  float vReflected = readAverage(PIN_REFLECTED) * (5.0 / 1023.0);

 

  // Hitung daya

  float pForward = vForward * forwardScale;

  float pReflected = vReflected * reflectedScale;

 

  // Hitung SWR

  float swr;

  if (pForward == 0) {

    swr = 1.0;

  } else {

    float sqrtR = sqrt(pReflected / pForward);

    if (sqrtR >= 1.0) sqrtR = 0.999;

    swr = (1 + sqrtR) / (1 - sqrtR);

  }

 

  // Alarm jika SWR tinggi

  digitalWrite(BUZZER_PIN, (swr > 1.5) ? HIGH : LOW);

 

  // Tampilan OLED

  display.clearDisplay();

 

  // Judul

  display.setTextSize(2);

  display.setTextColor(SSD1306_WHITE);

  display.setCursor(0, 0);

  display.print("PILIHAN");

  display.setCursor(0, 16);

  display.print("ONLINE");

 

  // Data daya & SWR

  display.setTextSize(1);

  display.setCursor(0, 34);

  display.print("FWD:");

  display.print(pForward, 1);

  display.print("W");

 

  display.setCursor(64, 34);

  display.print("REF:");

  display.print(pReflected, 1);

  display.print("W");

 

  display.setCursor(0, 44);

  display.print("SWR:");

  display.print(swr, 2);

 

  // Bar SWR

  int barWidth = map(constrain(swr, 1, 5) * 10, 10, 50, 10, 120);

  display.drawRect(0, 56, 128, 6, SSD1306_WHITE);

  display.fillRect(0, 56, barWidth, 6, SSD1306_WHITE);

 

  display.display();

  delay(300);

}


 

Related Posts:

  • IC 555 Nofringky added  17 ags 2013 Struktur, Fungsi, Aplikasi dan Cara Kerja Dasar IC NE555 Written By Halim Mia on Minggu, 04 November … Read More
  • Kode program  //-------------------------//TEA5767 FM Radio Receiver//-------------------------#include <Wire.h>#include <TEA5767N.h>#include <… Read More
  • Microphone Modulator Microphone modulator Ini adalah sebuah gabungan dari inovasi microphone dan modulator fm sehingga selain bisa jadi wareless microphone juga bisa se… Read More
  • FM transmitter 12 watt Fm transmitter 1-12 watt sebagai media edukasi Antara hobiku dan jurusanku, Dalam postingan kali ini saya ingin bercerita sedikit tentang media … Read More
  • Mengenal dunia elektro Assalamualaikum waroh matulahi wabaroh katu Salam kenal untuk semuanya.........Perkenalkan dulu nama saya nopringki alamat Bandu Agung (MUPA)Di blog… Read More

0 comments: