Demonte Güç Kaynağı V3

Kimseye kefil olmam. Ama pişman olmazsınız.
Bir çok trafocu tek işlere ve şahıs işlerinde
muhatap olmuyor. Zamanları varsa yapıyorlar.
 
Trafocu fazla garanti olursa da iyi değil. Bu sefer iki ay bekliyorsun işin aksıyor.
 
Artek den de fiyat alabilirsiniz. Adnan Bey
yardımcı olur. Frekansı da belirmeyi unutmayınız.

 
Devrenin ana şasesini doğrultucunun eksi çıkışı olarak tanımladım.
Abi bunu değiştirdiğimizde 6-7 tane elemanın bacaklarının değişmesi gerekiyor. Bu durum da devreyi yeniden mi basmalıyız yoksa mevcut durumda teste devam edebilir miyiz?
 
Sadece opamp beslemelerini sağlayan regülatör değişiyor, başka değişen birşey olmayacak.
 
Sadece opamp beslemelerini sağlayan regülatör değişiyor, başka değişen birşey olmayacak.
Abi GND yi çıkış tarafından 10000uF şasesine çekince olması gereken değişiklikler şöyle:
Bunları değiştirmesek te devam edebilir miyiz?

Ekran görüntüsü 2024-03-11 143848.png
 
Yani biraz kör topal bir tarif oldu bu. :D
 
Bir yanlışlık var, sadece regülatörün zenerinin bağlandığı yer değişiyor.
 
Bir yanlışlık var, sadece regülatörün zenerinin bağlandığı yer değişiyor.
Ben kicad in yalancısıyım.
Bu benim pcb kartım.
Birazdan sana gönderdiğim en basit şema üzerinde gnd yi değiştireceğim. Bakalım orada ne gösterecek.
 
Gökhan senin devrede sadece opamp'leri besleyen zenerin anodunu C7 nin eksisine bağlayacaksın, o kadar. Devrenin ana şasesini de oraya alabiliriz, ama o zaman diğer şaseleri değiştirmen lazım. Bence gerek yok, sadece zenerdeki değişikliği yapman yeterli.

C7 eksisinin şase kabul edilmesi devreyi kafanda irdelerken kolaylık sağlıyor, yoksa devrenin performansı üzerinde bir etkisi yok.
 
Gökhan senin devrede sadece opamp'leri besleyen zenerin anodunu C7 nin eksisine bağlayacaksın, o kadar. Devrenin ana şasesini de oraya alabiliriz, ama o zaman diğer şaseleri değiştirmen lazım. Bence gerek yok, sadece zenerdeki değişikliği yapman yeterli.

C7 eksisinin şase kabul edilmesi devreyi kafanda irdelerken kolaylık sağlıyor, yoksa devrenin performansı üzerinde bir etkisi yok.
Ayrıca zeneri de 33V ile değiştiriyorum değil mi?
 
Güç kaynağında DAC çıkışını test etmek amacıyla breadboard üzerinde yukarı, aşağı ve basamak butonları yapıp piconun boş bacaklarına bağladım.
Kontrol için de aşağıdaki kodları yazdım. Devreye güç verdiğim anda 32vac ile 12vac kademeleri kısadevre oldu. 12vac yolu patladı, 32vac yolunun üzerindeki boya kalktı.

Kodlara göre hepsi LOW'du. Void loop'a girdiğinde sadece 12vac nin HIGH olması gerekiyordu.
Şimdi işin yoksa yeni pcb diz. Bu iş hakkaten can sıkıcı bir hal almaya başladı. Vazgeçme seviyesine geldim. :kizgin4:

Kod:
#include <SPI.h>
#define onikiv 16
#define yirmialtiv 20
#define otuzikiv 21
#define led 25
#define basamakBtn 10
#define yukariBtn 11
#define asagiBtn 12
float basamak = 0;
float yukari = 0;
float asagi = 0;
int bayrak = 0;
float voltaj = 0;
float akim = 0;
const int dacChipSelectPin = 17;

void setDac(int value, int channel) {
  byte dacRegister = 0b00110000;                         // Varsayılan DAC kayıtlarını ayarlar B00110000, 1. bit DAC'yi seçer, A=0 B=1, 2. Bit giriş Tamponunu atlar, 3. bit çıkış kazancını 1x'e ayarlar, 4. bit aktif düşük kapatmayı kontrol eder. LSB burada önemsizdir.
  int dacSecondaryByteMask = 0b0000000011111111;         // 12 bitlik değer olan B00000000111111111'in son 8 bitini izole eder.
  byte dacPrimaryByte = (value >> 8) | dacRegister;      //Değer maksimum 12 Bit değerdir, Birincil Bayta giriş için değerden ilk 4 MSB'yi almak için 8 bayt sağa kaydırılır, ardından da Register ile BORed
  byte dacSecondaryByte = value & dacSecondaryByteMask;  // 8 LSB'yi izole etmek ve onu tek bir bayta indirmek için 12 bit değerini karşılaştırır.
  // Ayarlanacak DAC'yi belirlemek için birincil Baytta MSB'yi ayarlar, DAC A=0, DAC B=1
  switch (channel) {
    case 0:
      dacPrimaryByte &= ~(1 << 7);
      break;
    case 1:
      dacPrimaryByte |= (1 << 7);
  }
  noInterrupts();                        // DAC'ye veri göndermeye hazırlanmak için kesintileri devre dışı bırakın
  digitalWrite(dacChipSelectPin, LOW);   // DAC'yi seçmek için Chip Select pinini alçaltın:
  SPI.transfer(dacPrimaryByte);          //  Birincil Baytı gönder:
  SPI.transfer(dacSecondaryByte);        // İkincil Baytı gönder
  digitalWrite(dacChipSelectPin, HIGH);  // DAC'nin seçimini kaldırmak için Chip Select pinini yükseğe alın:
  interrupts();                          // Kesintileri etkinleştir
}

void setup() {
  // DAC KODLARI /////////////
  pinMode(dacChipSelectPin, OUTPUT);
  // set the ChipSelectPins high initially:
  digitalWrite(dacChipSelectPin, HIGH);
  // initialise SPI:

  setDac(0, 0);  //Amper
  setDac(0, 1);  //Volt

  pinMode(onikiv, OUTPUT);
  pinMode(yirmialtiv, OUTPUT);
  pinMode(otuzikiv, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(basamakBtn, INPUT);
  pinMode(yukariBtn, INPUT);
  pinMode(asagiBtn, INPUT);

  digitalWrite(onikiv, LOW);
  digitalWrite(yirmialtiv, LOW);
  digitalWrite(otuzikiv, LOW);
  digitalWrite(led, LOW);
}

void loop() {
  if (digitalRead(basamakBtn) == 1) {
    if (bayrak <= 2) {
      bayrak++;
    } else if (bayrak > 3) {
      bayrak = 0;
    }
    delay(300);
  }
  if (voltaj >= 30) {
    voltaj = 0;
    akim = 0;
  }
  if (digitalRead(yukariBtn) == 1) {
    if (bayrak == 1) {
      voltaj++;
      akim++;
      voltaj = voltaj * 136;
      setDac(voltaj, 1);  // Volt
      akim = akim * 136;
      setDac(akim, 0);  //Amper
    } else if (bayrak == 2) {
      voltaj = voltaj + 10;
      akim = akim + 10;
      voltaj = voltaj * 136;
      setDac(voltaj, 1);  // Volt
      akim = akim * 136;
      setDac(akim, 0);  //Amper
    }
  }
  if (digitalRead(asagiBtn) == 1) {
    if (bayrak == 1) {
      voltaj--;
      akim--;
      voltaj = voltaj * 136;
      setDac(voltaj, 1);  // Volt
      akim = akim * 136;
      setDac(akim, 0);  //Amper
    } else if (bayrak == 2) {
      voltaj = voltaj - 10;
      akim = akim - 10;
      voltaj = voltaj * 136;
      setDac(voltaj, 1);  // Volt
      akim = akim * 136;
      setDac(akim, 0);  //Amper
    }
  }
  digitalWrite(yirmialtiv, LOW);
  digitalWrite(otuzikiv, LOW);
  delay(20);
  digitalWrite(onikiv, HIGH);
  digitalWrite(led, HIGH);
}

20240312_000423.jpg
 
Problemi anlayana kadar trace'leri tamir et yoksa yeni PCB de patlayabilir :)
 
İkitane bta12-800 çöp.
Hala nedenini bulamadım.

20240312_005140.jpg
 
Tek kalan ile dene ve çalıştığını gör.
 

Forum istatistikleri

Konular
7,234
Mesajlar
122,410
Üyeler
2,922
Son üye
Spacetr

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top