ESP32 DEVKIT V1 ve ENC28J60 Ethernet Modülü Kullanımı

👤 Yazar: ozcan 📅 Tarih: 26.08.2026 16:11 👁️ Görüntüleme: 8

ESP32 DEVKIT V1 ve ENC28J60 Ethernet Modülü Bağlantı Rehberi

ENC28J60, Microchip firması tarafından geliştirilmiş tümleşik MAC ve 10Base-T PHY katmanına sahip 8 KB RAM tamponlu bir Ethernet denetleyicisidir. ESP32 DevKit V1 kartı ile standart HSPI/VSPI blokları yerine özel tanımlanmış GPIO pinleri üzerinden SPI haberleşmesi kurarak kablolu ağ bağlantısı elde edilir.

ESP32 DevKit V1 - ENC28J60 Bağlantı Şeması


1. Donanım Pin Eşleşme Tablosu

Şemada belirtilen devre bağlantılarına göre ESP32 DevKit V1 ile ENC28J60 arasındaki bağlantı haritası aşağıdaki şekildedir:

ENC28J60 Pin ESP32 DevKit V1 Pin Sinyal / İşlev Ek Donanım / Not
VCC 3V3 3.3V Besleme Hat (Kırmızı Wire) Doğrudan bağlantı
GND GND Toprak Hattı (Siyah Wire) Doğrudan bağlantı
CS GPIO 13 Chip Select / Slave Select (Yeşil Wire) Doğrudan bağlantı
SCK GPIO 14 SPI Clock Sinyali (Mavi Wire) Doğrudan bağlantı
SI (MOSI) GPIO 2 Slave In / Master Out (Turuncu Wire) 33 Ω Seri Direnç eklendi
SO (MISO) GPIO 15 Slave Out / Master In (Kahverengi Wire) 33 Ω Seri Direnç eklendi
Devredeki 33 Ω Dirençlerin Amacı (Sinyal Bütünlüğü):
SI (MOSI) ve SO (MISO) yüksek hızlı SPI hatlarına bağlanan 33 Ohm dirençler Series Termination (Seri Sönümleme) görevi görür. SPI saat frekansı yükseldiğinde empedans uyumsuzluğundan kaynaklanan sinyal yansımalarını (ringing/overshoot) engelleyerek kararlı veri iletimi sağlar.

2. Güncellenmiş C++ Kod Örneği (Şemadaki Pin Haritası İle)

Aşağıdaki Arduino C++ kodu, şemada gösterilen özel pin tanımlamalarına (CS: 13, SCK: 14, MOSI/SI: 2, MISO/SO: 15) göre yapılandırılmıştır:

C++ / ESP32 Custom SPI Pins & ENC28J60 Web Server

#include <Arduino.h>
#include <SPI.h>
#include <EthernetENC.h>

// Şemadaki Özel Pin Tanımlamaları
#define ETH_CS_PIN    13
#define ETH_SCK_PIN   14
#define ETH_MOSI_PIN  2   // SI
#define ETH_MISO_PIN  15  // SO

// Benzersiz MAC Adresi
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

EthernetServer server(80);

void setup() {
  Serial.begin(115200);
  while (!Serial) { delay(10); }

  Serial.println("ENC28J60 Özel Pin Konfigürasyonu İle Başlatılıyor...");

  // Özel SPI Bus Pinlerini Başlat (SCK, MISO, MOSI, SS)
  SPI.begin(ETH_SCK_PIN, ETH_MISO_PIN, ETH_MOSI_PIN, ETH_CS_PIN);

  // Ethernet Sürücüsüne CS Pinini Bildir
  Ethernet.init(ETH_CS_PIN);

  // DHCP üzerinden IP almayı dene
  if (Ethernet.begin(mac) == 0) {
    Serial.println("DHCP Hatası! Kabloyu veya Donanım Bağlantılarını Kontrol Edin.");
    while (true) { delay(1000); }
  }

  server.begin();
  Serial.print("Ethernet Bağlantısı Sağlandı! Sunucu IP Adresi: ");
  Serial.println(Ethernet.localIP());
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && currentLineIsBlank) {
          // HTTP Başlığı
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println();
          
          // HTML Gövdesi
          client.println("<!DOCTYPE HTML><html><body style='font-family:sans-serif;'>");
          client.println("<h2>ESP32 DevKit V1 + ENC28J60 Ethernet</h2>");
          client.println("<p><b>SPI Pin Yapısı:</b> CS:13 | SCK:14 | SI:2 | SO:15</p>");
          client.println("<p>Durum: Kablolu Ağ Aktif</p>");
          client.println("</body></html>");
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        } else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1