Dijital haberleşmenin temelleri
14 dakika · İleri
Simülasyonlar ve testler okunmaz; onlara geldiğinde duraklatıp deneyebilirsin.
Bir sıcaklık sensörü ölçtüğü değeri, bir ekran göstereceği yazıyı, bir GPS modülü konumunu Arduino'ya nasıl iletir? Hepsi aynı dili konuşur: bitler. Bu kursta modüllerin büyük çoğunluğunun kullandığı üç protokolü, UART, I2C ve SPI'ı bit bit öğreneceksin.
Bit, bayt ve sayı sistemleri
Dijital bir hat sadece iki durum bilir: 1 (yüksek gerilim) ve 0 (düşük gerilim). Tek bir 1 ya da 0'a bit, 8 bitten oluşan gruba bayt denir. Bir bayt 0 ile 255 arasında bir sayıyı temsil eder. Mühendisler baytları genellikle onaltılık (hex) yazar, çünkü her hex basamağı tam 4 bite denk gelir: 0xA5 = 1010 0101.
Bitlere tıklayarak 0 ve 1 arasında değiştir.
Harfler de sayıdır: ASCII tablosunda 'A' = 65, 'a' = 97, '0' = 48. Seri monitöre bir yazı gönderdiğinde aslında bu sayılar gönderilir.
Paralel ve seri
Paralel
8 bit, 8 ayrı kablodan aynı anda gönderilir. Hızlıdır ama çok kablo ve pin gerektirir. Eski yazıcılar ve karakter LCD'ler böyle çalışır.
Seri
Bitler tek bir kablodan sırayla gönderilir. Az kablo, az pin. Günümüzde neredeyse her şey seridir: USB, UART, I2C, SPI, Ethernet.
Senkron ve asenkron
Alıcı, hattaki bir bitin ne zaman bittiğini ve diğerinin ne zaman başladığını nereden bilecek? İki yol var:
- Asenkron: Ayrı bir saat hattı yoktur. İki taraf önceden hızda anlaşır (baud). UART böyledir.
- Senkron: Ayrı bir saat (clock) hattı vardır. Gönderen taraf her bit için bir saat darbesi üretir. Alıcı, darbe geldiğinde veri hattını okur. I2C ve SPI böyledir. Hız anlaşması gerekmez.
Lojik seviyeler: 5 V ve 3,3 V
Arduino Uno 5 V ile çalışır: 1, yaklaşık 5 V demektir. ESP32, Raspberry Pi ve modern sensörlerin çoğu ise 3,3 V ile çalışır.
3,3 V'luk cihaza 5 V sinyal verme
5 V'luk bir çıkışı doğrudan 3,3 V'luk bir girişe bağlamak, o cihazı zamanla ya da anında bozabilir. Tek yönlü sinyallerde gerilim bölücü (Elektriğin Temelleri kursunu hatırla: 1 kΩ + 2 kΩ), iki yönlü hatlarda (I2C) seviye çevirici modül kullan. Ters yön genellikle sorunsuzdur: 3,3 V'luk bir çıkışı Uno çoğu zaman 1 olarak okur.Ortak toprak
"1" ve "0", toprağa göre ölçülen gerilimlerdir. Haberleşen iki cihazın toprakları birleştirilmezse gerilimlerin ortak bir referansı olmaz ve haberleşme çalışmaz. Her bağlantıda veri kablolarına ek olarak bir de GND kablosu olmalıdır.
Kendini test et
1. 0x1F onluk sistemde kaçtır?
2. Bir bayt kaç bitten oluşur?
3. Hangisi ayrı bir saat hattı kullanır?
4. 5 V'luk Arduino çıkışını 3,3 V'luk sensör girişine bağlamak için ne yapılmalı?
Bu ders, kursun ücretsiz ilk dersiydi
UART, I2C ve SPI kursunun kalan 8 dersi, simülasyonları ve testleri kurs satın alındığında açılır.
Kursun devamını incele →