16 Aralık 2025 Salı

Circutikz'in Temelleri

GİRİŞ

Circuitikz, TikZ’in grafik gücünü elektrik-elektronik dünyasına uyarlamak amacıyla 2007 yılında bir LaTeX eklentisi olarak doğmuştur. Bu projenin temelleri, İtalya'daki Politecnico di Torino Üniversitesi'nde araştırma görevlisi olan Massimo Redaelli'nin, öğrencilerine hazırladığı sınav sorularında görsel bütünlüğü sağlamak istemesiyle atılmıştır. 2008 yılındaki ilk kararlı sürümleriyle birlikte, koordinat tabanlı devre çizimi akademik çevrelerde hızla ilgi görmeye başlamış; bireysel bir sınav hazırlık ihtiyacı, mühendislik eğitiminde devrim yaratan küresel bir projeye dönüşmüştür.

Başlangıçta yalnızca direnç ve kondansatör gibi temel pasif elemanları destekleyen paket, 2009 yılından itibaren yarı iletkenler ve opamp’lerin eklenmesiyle kapsamını genişletmiştir. Projenin gelişimi, 2015 yılında Stefan Lindner ve Stefan Erhardt gibi isimlerin katılımıyla ivme kazanmış; Avrupa ve ABD sembol standartları ile karmaşık akım/gerilim etiketleme sistemleri sisteme entegre edilmiştir. 2020'li yıllara gelindiğinde, transformatörlerden gelişmiş mantık kapılarına kadar uzanan geniş paketleriyle Circuitikz, akademik yayınlarda ve teknik kitaplarda devre şeması oluşturmanın fiili standardı haline gelerek dijital mühendislik literatüründeki yerini perçinlemiştir.

Circuitikz, LaTeX içinde elektrik ve elektronik devrelerini çizmek için geliştirilmiş bir üst katmandır. Amacı devre çizimini matematiksel yazım kadar temiz, tekrarlanabilir ve tipografik olarak tutarlı yapmaktır. Temeli TikZ grafik motoruna dayanır. Circuitikz bu altyapıyı kullanarak:

  • pasif elemanlar (R, C, L),

  • kaynaklar (V, I, AC/DC),

  • yarı iletkenler (npn, pnp, mosfet),

  • op-amp ve blok elemanlar,

  • toprak, bağlantı noktaları, akım/gerilim etiketleri

gibi devre sembollerini hazır komutlarla üretir.

BAŞLICA PAKETLER

LaTeX'te paketleri \usepackage komutuyla yüklenir. Bir pakete opsiyon eklenmesi gerekiyorsa bunun ayrı bir satırda tanımlanması gerekir. Opsiyonlar global, lokal ve yarı  global olarak üçe ayrılır. Global opsiyonlar virgül ile ayrılır ve köşeli parantez içine yazılır. Lokal opsiyonlar to[R, european] veya to[R, american] örneklerinde olduğu gibi lokal değişiklerdir. Yarı global opsiyonlar \begin{scope} ve \end{scope} ortamında yüklenir.

Birbiriyle ilişkili LaTeX paketlerinin ise tek bir \usepackage satırı ile yüklenmesi okunabilirliği artırır.

1. CIRCUITIKZ

Projenin kalbidir. Devre elemanlarını çizmek için gerekli tüm makroları içerir. ()

\usepackage{circuitikz}

CIRCUTIKZ İÇİN YAYGIN OPSİYONLAR

american  (ANSI/IEEE sembolleri)

european (IEC sembolleri)

siunitx (birimlerin doğru yazımı)

RPvoltages (gerilim oklarının yön kuralı)

2. TIKZ

Circuitikz aslında TikZ üzerine inşa edilmiş bir pakettir. Çoğu zaman Circuitikz paketi bunu otomatik yükler, ancak özel grafiksel düzenlemeler için doğrudan eklenmesi gerekebilir.

\usepackage{tikz}

3. SIUNITX

Mühendislik dünyasında değerlerin standartlara uygun yazılmasını sağlar.. Devre elemanlarına birim eklerken hata payını sıfıra indirir.

\usepackage{siunitx}  

4. AMSMATH

Etiketlerde veya açıklamalarda karmaşık matematiksel formüller (indisler, kesirler, Yunan harfleri) kullanmanıza olanak tanır. 

\usepackage{amsmath}

ORTAM SİSTEMİ

Circuitikz ortamı, TikZ’in tüm ortamlarını tamamen desteklerpgfonlayer ve scope bu listenin en sık kullanılanlarıdır. 

1. ANA DEVRE ORTAMI

Ana devre ortamı circuitikz ortamıdır.

\begin{circuitikz}

\end{circuitikz}

2. GENEL ÇİZİM ORTAMI

Genel çizim ortamı tikzpicture ortamıdır. 

3. LOKAL STİL ORTAMI

Lokal stil ortamı scope ortamıdır.

4. ARKA PLAN/ÖN PLAN KATMANLARI

\begin{pgfonlayer}{background}

\end{pgfonlayer}

Arka plan ve ön plan katmanları pgfonlayer ortamıdır. Kullanım amacı:
  • Arka plan kutuları

  • Vurgu çerçeveleri

  • Highlight bölgeleri

5. EK TIKZ KODLARI

Ek tikz kodları pgfextra ile kullanılır. Kullanım amacı:

  • TikZ path’inin dışında kalan ek komutlar

  • Hesaplamalar, makrolar

\begin{pgfextra}
  \node at (1,1) {Ek kod};
\end{pgfextra}

6. PATH KESME

TikZ düşük seviye path kesme ortamıdır. Kullanım amacı:

  • Path çizimini geçici olarak durdurmak

  • Araya başka grafikler eklemek

\begin{pgfinterruptpath}
  ... özel çizimler ...
\end{pgfinterruptpath}

7. LOKAL DÖNÜŞÜM

Lokal dönüşüm pgftransform* ile yapılır: pgftransformshiftpgftransformrotatepgftransformscale.

Kullanım amacı:

  • Lokal dönüşüm

  • Lokal ölçek

  • Lokal kaydırma

\begin{pgftransformrotate}{45}
  \draw <> ;
\end{pgftransformrotate}

8. NODE MATRİSİ

Node matrisi matrix ortamı ile oluşturulur. Kullanım amacı:

  • Op-amp blok diyagramları

  • Mantık devreleri

  • Grid yerleşimleri

\matrix (m) [matrix of nodes] {
  A & B \\
  C & D \\
};

9. PGFPLOTS ORTAMLARI

Ek paket ile kullanılır.

\begin{axis}
\end{axis}

CIRCUITIKZ'İN BLOK STANDARDI

\begin{circuitikz}[

  bipoles/length=1.2cm,

  voltage/distance=0.25,

  current/distance=0.25,

  tripoles/op amp/width=1.6,

  tripoles/op amp/height=1.2

]

\end{circuitikz}


CIRCUITIKZ'İN ESAS MİMARİSİ

Circuitikz'te noktasal semboller node[<>] ile çizilir. node[<>] yapısı koordinat üzerinde kullanılır. Hat üzerindeki elemanlar ise to[<>] ile çizilir. to[<>] yapısı iki nokta arasında kullanılır.

KOMUTLAR

Circuitkz'te komutlar üçe ayrılır: Node komutları, çizim komutları, eleman komutları. Node komutları devre ortamında bağımsız olarak kullanılabilir; eleman komutları ise bir çizgi path’i üzerinde çalıştığı için genellikle \draw komutunun içinde yer alır.

1. NODE KOMUTLARI

Circuitikz node türleri koordinat tabanlı sembollerdir. [ ] içinde sınırsız parametre alabilirler: rotate, scale, name, label, shift…. { } içeriği opsiyoneldir. Bazılarının özel anchor noktaları vardır:

  • npn → B, C, E

  • op amp → +, –, out


1.1. TOPRAK

Temel

node[

    ground

]{}

Opsiyonel

node[

    ground,

    name=<isim>,

    label=<etiket>,

    rotate=<açı>,

    scale=<oran>,

    xshift=<değer>,

    yshift=<değer>,

    fill=<renk>,

    draw=<çizgi>,

    line width=<kalınlık>,

    anchor=<anchor>,

    minimum width=<genişlik>,

    minimum height=<yükseklik>,

    inner sep=<iç_boşluk>,

    outer sep=<dış_boşluk>

]{<içerik>}



1.2. CIRCLE

Temel

node[circ]{}

Opsiyonel

node[

    circ,

    name=<isim>,

    label=<etiket>,

    rotate=<açı>,

    scale=<oran>,

    fill=<renk>,

    draw=<çizgi>,

    anchor=center

]{<içerik>}

1.3. OPAMP

Temel

node[op amp]{}

Opsiyonel

node[
    op amp,
    name=<isim>,
    label=<etiket>,
    rotate=<açı>,
    scale=<oran>,
    xshift=<değer>,
    yshift=<değer>,
    anchor=<+|−|out>
]{}

1.4. İKİDEN FAZLA UÇLU YARI İLETKENLER

TRANSİSTÖR

Temel

node[npn]{}

Opsiyonel

node[
    npn,
    name=<isim>,
    label=<etiket>,
    rotate=<açı>,
    scale=<oran>,
    xshift=<değer>,
    yshift=<değer>,
    anchor=<B|C|E>
]{}

MOSFET
Temel
node[nmos, name=M1]

2. ÇİZİM KOMUTLARI
İki çizim komutu vardır. Bunlar Tikz'den gelir:
\draw
\node

3. ELEMAN KOMUTLARI

Elemanlar hat boyunca yerleşen sembollerdir. Eleman komutu hat segmentinin bir parçasıdır, bağımsız bir nesne değildir. 

Eleman komutları circutikz'e özgüdür. Eleman genel olarak,
(<koordinat1>) to[<Eleman>, <parametreler>] (<koordinat2>)
biçiminde kodlanır.

3.1.  PASİF ELEMANLAR
Direnç temel çizimi: 
to[R]
Kondansatör temel çizimi: 
to[C]
Bobin temel çizimi: 
to[L]

3.2. KAYNAKLAR
DC gerilim temel çizimi:
to[V]
DC akım temel çizimi:
to[I]
AC gerilim temel çizimi:
to[sV]
AC akım temel çizimi:
to[sI]
Pil temel çizimi:
to[battery]

3.3. İKİ UÇLU YARI İLETKENLER
DİYOT
to[D]

ZENER DİYOT
to[Zener]
LED
to[led]

Hiç yorum yok:

Yorum Gönder