Ağu 11, 2026, 09:11 ÖS

Haberler:

Dear site friends, our aim is to inform and develop the field of electronics. All messages containing links and advertisements, and members who share them, will be banned. With respect and love, PulseQRP R&D management.


Son İletiler

Sayfa1 2 3 ... 10
1
c yazılım uygulamaları / ARDUINO KULUÇKA MAKİNESİ YAPIM...
Son İleti Gönderen Yörük - Ağu 08, 2026, 07:50 ÖS
Merhaba
Arduino nano ve shield 2x16 kart ile 
Kuluçka makinesinim yazılımını olyşturduk.
include <LiquidCrystal.h>
#include <DHT.h>
#include <Servo.h>

#define DHTPIN A0         // DHT sensör veri pini
#define DHTTYPE DHT22     // DHT11 kullanıyorsanız DHT11 yapın
#define RELAY_PIN 13      // Isıtıcı röle pini

#define SERVO1_PIN 9      // Birinci servo motor pini
#define SERVO2_PIN 10     // İkinci servo motor pini

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

DHT dht(DHTPIN, DHTTYPE);
Servo servo1;
Servo servo2;

const float TARGET_TEMP = 39.0;
const float HYSTERESIS = 0.2;

unsigned long previousRotateTime = 0;
const unsigned long ROTATE_INTERVAL = 14400000UL;

const int ANGLE_LEFT = 45;
const int ANGLE_CENTER = 90;
const int ANGLE_RIGHT = 135;
bool currentPositionLeft = true;

unsigned long previousSensRead = 0;
const unsigned long SENS_INTERVAL = 2000;

float currentTemp = 0.0;
float currentHum = 0.0;

void setup() {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);

lcd.begin(16, 2);
lcd.print("PULSE QRP ARGE");
lcd.setCursor(0, 1);
lcd.print("Baslatiliyor...");

dht.begin();
servo1.attach(SERVO1_PIN);
servo2.attach(SERVO2_PIN);

servo1.write(ANGLE_CENTER);
servo2.write(ANGLE_CENTER);

delay(2000);
lcd.clear();
}

void loop() {
unsigned long currentMillis = millis();

if (currentMillis - previousSensRead >= SENS_INTERVAL) {
previousSensRead = currentMillis;

float t = dht.readTemperature();
float h = dht.readHumidity();

if (!isnan(t) && !isnan(h)) {
  currentTemp = t;
  currentHum = h;

  lcd.setCursor(0, 0);
  lcd.print("Sicaklik: ");
  lcd.print(currentTemp, 1);
  lcd.print((char)223);
  lcd.print("C ");

  lcd.setCursor(0, 1);
  lcd.print("Nem: %");
  lcd.print(currentHum, 1);
  lcd.print(" ");
  
  if (digitalRead(RELAY_PIN) == HIGH) {
    lcd.print("[ON] ");
  } else {
    lcd.print("[OFF]");
  }
}

}

if (currentTemp < (TARGET_TEMP - HYSTERESIS)) {
digitalWrite(RELAY_PIN, HIGH);
} else if (currentTemp >= TARGET_TEMP) {
digitalWrite(RELAY_PIN, LOW);
}

if (currentMillis - previousRotateTime >= ROTATE_INTERVAL) {
previousRotateTime = currentMillis;

if (currentPositionLeft) {
  rotateServos(ANGLE_RIGHT);
  currentPositionLeft = false;
} else {
  rotateServos(ANGLE_LEFT);
  currentPositionLeft = true;
}

}
}

void rotateServos(int targetAngle) {
int currentAngle = servo1.read();
int step = (targetAngle > currentAngle) ? 1 : -1;

for (int pos = currentAngle; pos != targetAngle; pos += step) {
servo1.write(pos);
servo2.write(pos);
delay(20);
}
}
2
GPR -ALANTARAMA ŞEMALARI / Ynt: New alan tarama
Son İleti Gönderen Yörük - Tem 30, 2026, 08:09 ÖS
Merhaba.
Yazılım arduino ile çalışıyor analog çatı 
İna121a ve opa27 pullap dirençlerden oluşuyor 
Şemayı çizip yükleyeceğim
3
GPR -ALANTARAMA ŞEMALARI / Ynt: New alan tarama
Son İleti Gönderen Yörük - Tem 30, 2026, 08:06 ÖS
PulseQRParge Alan Tarama
```

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

// LCD Adresi genellikle 0x27 veya 0x3F'dir. Ekran gelmezse 0x3F olarak değiştirin.

LiquidCrystal_I2C lcd(0x27, 16, 2);

// Pin Tanımlamaları

const int SENSOR_PIN = A0;   // İyon sensör anten girişi

const int BUZZER_PIN = 8;    // Sesli uyarı buzzerı

const int BUTTON_PIN = 3;    // Eşik / Ses ayar butonu

// Degişkenler

int sensorValue = 0;

int threshold = 300;         // Varsayılan tetiklenme eşiği

int soundMode = 1;           // 0: Mute (Sessiz), 1: Normal, 2: Yüksek Hassasiyet

unsigned long lastDebounceTime = 0;

unsigned long debounceDelay = 200;

void setup() {

  pinMode(BUZZER_PIN, OUTPUT);

  pinMode(BUTTON_PIN, INPUT_PULLUP);

  // LCD Başlatma

  lcd.init();

  lcd.backlight();

  // Açılış Mesajı

  lcd.setCursor(0, 0);

  lcd.print("  PulseQRParge  ");

  lcd.setCursor(0, 1);

  lcd.print("  Ion Scanner   ");

  

  // Açılış Sesi

  tone(BUZZER_PIN, 1000, 150);

  delay(200);

  tone(BUZZER_PIN, 1500, 200);

  delay(1800); // Açılış yazısının ekranda kalma süresi

  lcd.clear();

}

void loop() {

  // Sensör Okuma ve Filtreleme (Kararlı okuma için ortalama alma)

  long total = 0;

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

    total += analogRead(SENSOR_PIN);

    delay(2);

  }

  sensorValue = total / 10;

  // Buton Kontrolü (Ses ve Eşik Ayarı)

  if (digitalRead(BUTTON_PIN) == LOW) {

    if ((millis() - lastDebounceTime) > debounceDelay) {

      soundMode = (soundMode + 1) % 3; // 0, 1, 2 arasında döner

      

      switch(soundMode) {

        case 0: threshold = 800; break; // Sessiz / Çok Düşük Hassasiyet

        case 1: threshold = 300; break; // Normal

        case 2: threshold = 100; break; // Yüksek Hassasiyet

      }

      

      // Kısa bip bildirimi

      tone(BUZZER_PIN, 2000, 50);

      lastDebounceTime = millis();

    }

  }

  // Ekran Güncelleme

  lcd.setCursor(0, 0);

  lcd.print("ION:");

  lcd.print(sensorValue);

  lcd.print("   "); // Kalıntı karakterleri temizleme

  

  lcd.setCursor(10, 0);

  if (soundMode == 0) lcd.print("MOD:MUTE");

  else if (soundMode == 1) lcd.print("MOD:NORM");

  else if (soundMode == 2) lcd.print("MOD:HIGH");

  // Görsel Sinyal Barları (Sinyal Şiddeti Göstergesi)

  lcd.setCursor(0, 1);

  int barCount = map(sensorValue, 0, 1023, 0, 16);

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

    if (i < barCount) lcd.print((char)255); // Dolu blok karakteri

    else lcd.print(" ");

  }

  // Sesli Uyarı Mantığı (Eşik değer geçildiğinde)

  if (soundMode != 0 && sensorValue > threshold) {

    // Sinyal şiddetine göre değişen tonda ses (Pitch modulation)

    int pitch = map(sensorValue, threshold, 1023, 400, 2500);

    tone(BUZZER_PIN, pitch, 40);

  } else {

    noTone(BUZZER_PIN);

  }

  delay(50);

}

```
4
GPR -ALANTARAMA ŞEMALARI / New alan tarama
Son İleti Gönderen Yörük - Tem 25, 2026, 11:52 ÖS
Merhaba
```

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int pinSesArti = 6;

const int pinSesEksi = 7;

const int pinMetalAyrim = 8; // Değerli / Değersiz seçimi

int sesSeviyesi = 5;

bool sadeceDegerli = false;

void setup() {

  lcd.begin(16, 2);

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("PULSE QRP R&G");

  lcd.setCursor(0, 1);

  lcd.print("ALAN TARAMA");

  delay(2000);

  

  pinMode(pinSesArti, INPUT_PULLUP);

  pinMode(pinSesEksi, INPUT_PULLUP);

  pinMode(pinMetalAyrim, INPUT_PULLUP);

  

  ekranGuncelle();

}

void loop() {

  if (digitalRead(pinSesArti) == LOW) {

    if (sesSeviyesi < 10) sesSeviyesi++;

    ekranGuncelle();

    delay(200);

  }

  

  if (digitalRead(pinSesEksi) == LOW) {

    if (sesSeviyesi > 0) sesSeviyesi--;

    ekranGuncelle();

    delay(200);

  }

  

  if (digitalRead(pinMetalAyrim) == LOW) {

    sadeceDegerli = !sadeceDegerli;

    ekranGuncelle();

    delay(300);

  }

}

void ekranGuncelle() {

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("Ses: ");

  lcd.print(sesSeviyesi);

  

  lcd.setCursor(0, 1);

  if (sadeceDegerli) {

    lcd.print("Mod: DEGERLI");

  } else {

    lcd.print("Mod: TUM METALLER");

  }

}

```bu çalışmamız geliştirme sürecinde ina121a  alıcı devremiz detayları ve şemayı paylaşağım
5
ALICI VERİCİ ANTEN LER VE DEVRELERİ / Ynt: SWRmetre uygulamaları
Son İleti Gönderen Yörük - Tem 11, 2026, 05:14 ÖS
Alıntı yapılan: TA3BBK - Kas 23, 2023, 11:26 ÖSmerhaba ;
daha önce aynı konu altında analog çatısını paylaştığımız devrenin yeni versionları ve pcb görünümlerini de paylaşmak  istedim ,Bu bölümdeki eklentileri göremezsiniz.Bu bölümdeki eklentileri göremezsiniz.
Bu devrenin pcbleri basıldı test aşamasında ayrıca otomatik tuner kısmıda mevcut
6
FM-AM ALICILAR SSB ALICILAR / Ynt: BITX YENİ ŞEMA
Son İleti Gönderen Yörük - Nis 23, 2026, 11:54 ÖS
Devreye ilişkin pdf dosya ektedir.
PA katında IRF510 bias voltajını iyi ayarlamak gerekli,2n2222 yerine farklı rf transistörlerde kullanılabilir ama başlangıç açısından iyi bir devre .
7
FM-AM ALICILAR SSB ALICILAR / BITX YENİ ŞEMA
Son İleti Gönderen Yörük - Nis 23, 2026, 11:31 ÖS
Merhaba,
Güzel bir qrp devresi tamamen transistör lerden oluşuyor.
2adet FT37-43 TRİFİLER Sarılacak
Aynı zamanda4 adet T30-6 toroid trafo VFO İçin 1 adet FT50-6 toroid 
BFO için 110592 mhz kristal kullanılmış.
Yapımı gayet kolay  ve lsb / cw modu mevcıt.
8
c yazılım uygulamaları / Ynt: 1602A VE I2C YAZILIMLARI ...
Son İleti Gönderen Yörük - Nis 17, 2026, 10:21 ÖS
Merhaba ,
Buradaki yazılım yeni umarım faideli olur
I2C LCD Test ve Adres Tarayıcı Kodu
Bu kod, Arduino'ya bağlı I2C cihazlarının adresini bulur ve bulunan adresteki 2x16 LCD ekranı test eder.

Gereksinimler:

• `LiquidCrystal_I2C` kütüphanesi

• SDA -> A4, SCL -> A5 bağlantısı (Uno için)

```

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

void setup() {

  Wire.begin();

  Serial.begin(9600);

  while (!Serial); 

  Serial.println("\n--- I2C Adres Tarayici Baslatildi ---");

  byte error, address;

  int nDevices = 0;

  for (address = 1; address < 127; address++) {

    Wire.beginTransmission(address);

    error = Wire.endTransmission();

    if (error == 0) {

      Serial.print("I2C cihazi bulundu! Adres: 0x");

      if (address < 16) Serial.print("0");

      Serial.println(address, HEX);

      LiquidCrystal_I2C lcd(address, 16, 2);

      lcd.init();

      lcd.backlight();

      lcd.setCursor(0, 0);

      lcd.print("Adres: 0x");

      lcd.print(String(address, HEX));

      lcd.setCursor(0, 1);

      lcd.print("Ekran Calisiyor!");

      

      nDevices++;

    }

  }

  if (nDevices == 0) {

    Serial.println("Hicbir I2C cihazi bulunamadi.");

  }

}

void loop() {}

```
9
FM-AM ALICILAR SSB ALICILAR / 20mtre ve 40mtre vfo
Son İleti Gönderen Yörük - Nis 16, 2026, 11:36 ÖÖ
Merhaba;
#include <Wire.h>
#include <si5351.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
// Pin Tanımlamaları
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
Si5351 si5351;
// --- PARAMETRELER ---
unsigned long freq = 7000000;     
unsigned long stepSize = 1000;    
const unsigned long minFreq = 7000000;  
const unsigned long maxFreq = 14000000; 
String mode = "LSB";
int sMeterVal = 0;
unsigned long lastEepromWrite = 0;
bool needsEepromUpdate = false;
// Buton Tanımları (LCD Shield Standart)
#define BTN_RIGHT  0
#define BTN_UP     1
#define BTN_DOWN   2
#define BTN_LEFT   3
#define BTN_SELECT 4
#define BTN_NONE   5
int read_LCD_buttons() {
  int adc_key_in = analogRead(0);
  if (adc_key_in < 50)   return BTN_RIGHT; 
  if (adc_key_in < 250)  return BTN_UP;
  if (adc_key_in < 450)  return BTN_DOWN;
  if (adc_key_in < 650)  return BTN_LEFT;
  if (adc_key_in < 850)  return BTN_SELECT; 
  return BTN_NONE;
}
void setup() {
  lcd.begin(16, 2);
 
  // --- AÇILIŞ EKRANI (WELCOME SCREEN) ---
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("PULSEQRPARGE"); // Marka İsmi
  lcd.setCursor(1, 1);
  lcd.print("pulseqrparge.com");
 
  // Görsel yükleme efekti
  delay(1000);
  for(int i = 0; i < 16; i++) {
    lcd.setCursor(i, 1);
    // İsteğe bağlı: pulseqrparge.com yazısının üzerinden blok geçirme
    delay(100);
  }
  delay(500);
  lcd.clear();
  // --------------------------------------
  // EEPROM'dan son frekansı oku
  EEPROM.get(0, freq);
  if (freq < minFreq || freq > maxFreq) freq = 7100000;
  // Si5351 Başlatma
  if(!si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0)) {
    lcd.print("SI5351 HATASI!");
    while(1);
  }
  si5351.set_freq(freq * 100ULL, SI5351_CLK0);
  updateDisplay();
}
void loop() {
  int button = read_LCD_buttons();
  unsigned long oldFreq = freq;
  unsigned long oldStep = stepSize;
  String oldMode = mode;
  if (button != BTN_NONE) {
    switch (button) {
      case BTN_RIGHT: freq += stepSize; break;
      case BTN_LEFT:  if (freq >= stepSize + minFreq) freq -= stepSize; break;
      case BTN_UP:    stepSize = (stepSize >= 100000) ? 10 : stepSize * 10; delay(250); break;
      case BTN_DOWN:  stepSize = (stepSize <= 10) ? 100000 : stepSize / 10; delay(250); break;
      case BTN_SELECT:
        mode = (mode == "LSB") ? "USB" : "LSB";
        delay(300);
        break;
    }
   
    if (freq < minFreq) freq = minFreq;
    if (freq > maxFreq) freq = maxFreq;
   
    if (freq != oldFreq) {
      si5351.set_freq(freq * 100ULL, SI5351_CLK0);
      needsEepromUpdate = true;
      lastEepromWrite = millis();
    }
    updateDisplay();
    delay(50);
  }
  // S-Metre Okuma ve Güncelleme
  static unsigned long lastSMeterUpdate = 0;
  if (millis() - lastSMeterUpdate > 150) {
    sMeterVal = analogRead(1);
    drawSMeter();
    lastSMeterUpdate = millis();
  }
  // EEPROM Kaydı (Değişimden 5 sn sonra)
  if (needsEepromUpdate && (millis() - lastEepromWrite > 5000)) {
    EEPROM.put(0, freq);
    needsEepromUpdate = false;
  }
}
void updateDisplay() {
  // Alt Satır: Frekans
  lcd.setCursor(0, 1);
  float freqMHz = freq / 1000000.0;
  if (freqMHz < 10.0) lcd.print(" ");
  lcd.print(freqMHz, 4);
  lcd.print(" MHz");
  // Step Göstergesi
  lcd.setCursor(13, 1);
  if (stepSize >= 1000) { lcd.print(stepSize/1000); lcd.print("k"); }
  else { lcd.print(stepSize); lcd.print("H"); }
 
  // Mod Bilgisi
  lcd.setCursor(13, 0);
  lcd.print(mode);
}
void drawSMeter() {
  lcd.setCursor(0, 0);
  lcd.print("S:");
  int bars = map(sMeterVal, 0, 800, 0, 9);
  for (int i = 0; i < 9; i++) {
    if (i < bars) lcd.print((char)255);
    else lcd.print(" ");
  }
}

Güzel bir çalışma oldu detayları müsait olunca yükleyeceğim
10
VLF BFO DEDEKTORLER ŞEMALAR / Ynt: VLF DEDEKTÖR YAPIMI Tasar...
Son İleti Gönderen Yörük - Nis 09, 2026, 01:21 ÖÖ
/ ... (Kütüphane ve Pin tanımlamaları aynı kalacak)
void showWelcomeScreen() {
  display.clearDisplay();
 
  // Üst Çizgi Tasarımı
  display.drawFastHLine(0, 5, 128, WHITE);
 
  // Marka İsmi (PULSEQRPARGE)
  display.setTextSize(1);
  display.setCursor(25, 15);
  display.println("DESIGNED BY");
 
  display.setTextSize(2); // Büyük font
  display.setCursor(5, 30);
  display.println("PULSEQRP"); // Marka ismi sığması için 2 satıra bölebiliriz
  display.setCursor(45, 48);
  display.println("ARGE");
 
  // Alt Çizgi ve Versiyon
  display.drawFastHLine(0, 60, 128, WHITE);
  display.display();
 
  delay(3000); // Markanın 3 saniye görünmesini sağlar
 
  // Yükleme Animasyonu
  for(int i=0; i<128; i+=4) {
    display.fillRect(0, 58, i, 2, WHITE);
    display.display();
    delay(20);
  }
}
void runDetection() {
  // ... (Sinyal okuma kısımları aynı)
 
  display.clearDisplay();
 
  // Ana ekranda da marka ismini köşeye ekleyelim
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print("PULSEQRP ARGE"); // Sol üst köşe imzası
 
  drawBattery();
  display.drawLine(0, 10, 128, 10, WHITE);
 
  // ... (Geri kalan gösterge kodları aynı)
}

Evet bazı açılış ayarlarınıda değiştirdik 
Konuya kapsamlı olarak devam edeceğiz.
Sayfa1 2 3 ... 10