HC SR-04 Mesafe Sensörü #TK #5

HC SR-04 Ultrasonik ses dalgaları ile çalışan bir mesafe sensörüdür. Üzerinde ultrasonik ses alıcı/verici çifti vardır. Bu sensörler yine aynı kart üzerindeki entegreler ile işlenerek mesafe ölçümü yapılır. Yapılan ölçüm özel bir protokolle mikrodenetleyiciler tarafından anlaşılacak şekle getirilir.

Ultrasonik sensörler üzerindeki verici modülden bir ses dalgası gönderir ve diğer modülden bu ses dalgasını okur. Sesin hızı neredeyse sabit olduğu için sesin gidip gelme süresinden mesafe ölçülür.

İşin temelinde fizikte öğrenilen x=vt formili vardır.

x: yol
v: hız
t: zaman

hız sabit, zaman ölçülüyor ve buradan yol/mesafe hesaplanabiliyor.

HC SR-04 e ait datasheet bilgileri aşağıdaki gibidir.

HC SR-04 4 pine sahiptir. Bunlar;

  • VCC
  • Trig
  • Echo
  • GND

VCC, GND +5V besleme girişidir.

Ölçüm başlatmak için Trig pinine >=10uS lik bir pulse uygulanır. Sonrasında ölçüm başlar. Sonrasında Echo pininin high kalma süresi mesafeyi ifade eder.

Mesafe ölçüm formülü;

Test distance = (high level time×velocity of sound (340M/S) / 2

HC SR-04 okumak için kullanılabilecek arduino kodu aşağıdaki gibidir;

74HC595 & 74HC597 Shift Register / Kaydırma Yazmaçları #TK #4

74 serisi entegreler, lojik işlemleri yerine getiren, lojik kapı ve sistemlerden oluşan yapılardır.

74 serisi entegreler kapı seviyesinden başlayarak çeşitli temel lojik işlemleri yerine getirebilecek kapasitede sistemleri de içerisinde barındıran bir seridir.

74HC595 ve 74HC597 bu seriye ait shift register entegreleridir. 74HC595 seri giriş paralel çıkıştır. 74HC597 ise paralel giriş seri çıkıştır. Pratikte bunun anlamı ise;

  • 74HC595 çıkışa ihtiyaç olduğunda, işlemciden az pin harcayaran çok sayıda çıkış vermeye yarar.
  • 74HC597 girişe ihtiyaç olduğunda, işlemciden az pin harcayarak çok sayıda giriş okumaya yarar.

Bu iki entegrenin de işlemci ile arasında basit bir veri transfer yapısı vardır ve bu yapıya göre paralel datayı çıkışa aktarırlar veya girişteki paralel datayı okuyarak işlemcinin iç registerlarına kayıt edilmesine imkan tanırlar.

74HC595

74HC595 shift registerının bir çok üreticiye ait datasheeti vardır. -En güzel- datasheet bu linktedir.

Aşağıdaki görselde 74HC595 e ait fonksiyonel yapı vardır.

Bu yapıdaki pinler aşağıdaki işlevleri yerine getirir.

DS Seri data girişi
SHCP Seri datanın clock sinyali
MR Master reset. 595 i resetler
STCP Shift registera yüklenen seri datanın çıkış registerına aktarılmasını sağlayan clock
OE Çıkışı aktifleştirir. Aksi halde HiZ
Q7S Seri data çıkışı. Kaskad bağlantılarda kullanılır

74HC595 işlemci pinlerinden tasarruf etmek için genellikle DS, STCP ve SHCP ile kullanılır. Yapılacak uygulamaya göre MR ve OE de kullanılabilir. Kullanılmadığı uygulamalarda bu iki pin MR=HIGH, OE=LOW da durur.

74HC595 e ilk gönderilen data Q0 da tutulur. Seri olarak 8 data gönderildiğinde ise ilk data Q7 ye kayar. Yani ilk gönderilen data en kıymetli (MSB) bittir. Bu yapıya ait zaman diyagramı aşağıdadır.

74HC595 i bir işlemci ile çalıştıracak temel fonksiyon aşağıda verilmiştir.

74HC597

74HC597 nin en güzel datasheeti de bu linktedir.

Aşağıdaki görselde 74HC597 ye ait fonksiyonel yapı vardır.

Bu yapıdaki pinler aşağıdaki işlevleri yerine getirir.

DS Kaskad bağlantı için seri data girişi
SHCP Girişleri iç registera kayıt eden clock
MR Master reset. Low Aktif
STCP Shift registera yüklenen paralel datanın çıkışa seri olarak aktarılmasını sağlayan clock
PL Paralel yükleme. Low Aktif
Q Seri data çıkışı. 

 74HC595 i bir işlemci ile çalıştıracak temel fonksiyon aşağıda verilmiştir.

78, 79 Serisi Voltaj Regülatörleri #TK #3

78, 79 serisi voltaj regülatörleri piyasada ve endüstride en çok kullanılan ve kolay temin edilebilen voltaj regülatörlerindendir.

Bu voltaj regületörlerinin görevi, girişine gelen gerilimi çıkışa sürekli sabit olarak vermektir. Lineer voltaj regülatörlerinin yapısı gereği giriş voltajı her zaman çıkış voltajından yüksektir. Lineer regülatörler fazla olan gerilimi kendi üzerlerinde tutarak, güç harcayarak çıkışı regüle ederler.

78 ve 79 serisi regülatörler 3 pine sahiptir. Montaj kısmı (4. pin olarakta geçebilir) genellikle 2. pine bağlıdır.

Bu 3 pin;
-1. Giriş/Input
-2. Ground
-3. Çıkış/Output

LM7805 ile yapılmış, projelerinizde kullanabileceğiniz örnek bir şema aşağıdadır. Bu şemadaki kondansatör değerleri kullanılan regülatöre göre datasheete göre seçilmelidir. Örnek devre LM7805 içindir.

LM35 Sıcaklık Sensörü Nedir? Nasıl Okunur? #TK #2

LM35 Sıcaklık sensörü bir çok uygulamada kullanılabilecek, yüvenilir ve piyasan temini kolay bir sıcaklık sensörüdür.

LM35 2-150 veya -55-+150 santigrat derece arasında ölçüm yapabilir.

LM35’e ait datasheet dosyasını aşağıdaki linkten indirebilirsiniz.

lm35

Bu yazıda temel santigrat ölçümünün nasıl gerçekleştirileceği ile ilgili bir anlatım yapılacaktır.

LM35’e ait kılıf seçenekleri aşağıdaki gibidir.

Öncelikle datasheette belirtildiği gibi VS +4 ile +20V arasında beslenir.

Sonrasında çıkış ucu ortam sıcaklığına göre çıkış üretmeye başlar. Bu sensör sıcaklık verisini lineer olarak voltaja çevirir.

Datasheette +2-+150 santigrat derece aralığının 0V’tan başlayarak her bir santigrat derece için 10mV artacağı gösterilmiştir.

Yani çıkış gerilimi 0V ise ortam sıcaklığı +2 veya daha düşük bir değerdedir. Ancak sıcaklık 2 dereceden yukarı çıktıkça çıkış gerilimi de 1 derece başına 10mV olarak artacaktır. Örneğin

3 derece 10 mV
12 derece 100mV
120 derece 1V
121 derece 1.01V
123 derece 1.02V

Bu değerler bir işlemcinin analog girişine verilerek ortam sıcaklığı santigrat derece cinsinden bulunur.

Bu işlem için genel formül aşağıdaki gibidir. Okunması rahat olsun diye bu biçimde yazılmıştır. Uygulama kodunda sadeleştirilebilir.

Sıcaklık = 2 + ( ( ( VADCRef * ADCDeğer ) / 2üssüADCBitSayısı ) /0.01 )

Formül örnek olarak 5V’ta çalışan 12-bitlik bir sistem için;

Sıcaklık = 2 + ( ( ( 5 * ADCDeğer ) / 4096 ) / 0.01) şeklinde olacaktır.

Konu ile ilgili sorularınızı yoruma bırakabilirsiniz.

İyi çalışmalar!

Sensör Nedir? #TK #1

Sensör, çevresel etkileri, değişiklikleri algılayan ve bu bilgileri farklı bir veriye çeviren sistemlere denir.

Çıkış bilgisi açısından temelde 2 tip sensör vardır. Bunlardan birincisi analog çıkış veren sensörlerdir. Analog çıkışlı sensörler algıladıkları bilgiyi belli bir fonksiyonla analog elektrik sinyaline çevirirler. Örneğin termistörler, termokupllar, akım sensörleri, çoğu MEMS sensör bu tip çalışmaktadır.

Entegre devreler içerisine çeşitli haberleşme birimleri eklenerek sensör çıkışları dijital SPI/I2C gibi arayüzlerden olsa bile iç yapıları en temelde analogdur.

Diğer tip ise dijital çıkışlı sensörlerdir. Bu sensörler dışarıya dijital çıkış verirler. Bu tip sensörlere örnek olarak ultrasonik mesafe sensörleri verilebilir. Bu tip sensörler sesin veya ışığın gidiş geliş süresini ölçtükleri için çıkış direk analogdur.

Türkçe Kaynak #TK #0

#TK etiketi altında Türkçe kaynak oluşturabilmek amacıyla bir çok konuda yazılarımız gelecektir. Şu an için her pazartesi yeni bir yazı yazmayı planlıyoruz.

FPGA-TASARIM SOYUTLAMA SEVIYELERI #2

FPGA tasarımında HDL dilleri kullanır. HDL klasik programlamadan tamamen farklı, donanım tasarlama için geliştirilmiş dillerdir. Örneğin bir C programında yazılan kod satır satır işlenir ve her şey sırasıyla gerçekleşir. HDL dilinde yazdığınız kod ise bir fiziksel yapı olşturur ve işleyiş tamamen bu yapının nasıl tasarlandığı ile ilgilidir. Kodun yazım sırası ile işleyisi arasında direk bir ilişki yoktur. Asıl akış sistemin nasıl tasarlandığıyla ilgilidir.

Yazılım ile donanım tasarımında çeşitli soyutlama seviyeleri vardır. Bu seviyeler programcının tercihine ve ihtiyaçlara göre farklılık gösterebilir.

  1. Layout Level: En temel tasarım seviyesidir. Bu seviyede programcılar transistörlerin layoutlarından başlayarak tasarım yaparlar. Bu seviyede programlama için yüksek bir elektronik bilgisi gerekir. Her bir transistör gerçek dünyada oluşturulacağı gibi programlanır. ASIC tasarımlarında kısmi olarak kullanır ancak büyük çaplı projeler için kullanışsız kalabilir.
    Diopsis
  2. Gate Level: Bu seviyede tasarımlar lojik kapılar seviyesinde yapılır. Tüm tasarım blokları kapı seviyesinden inşa edilerek ana modül oluşturulur. Bu seviyede büyük çalışmaların takibi yine zor olsa da donanım seviyesinde transistörlerin oluşturulmasıyla ilgilenilmez. Bu yüzden lojik tasarımı doğru aktarmak sistemin çalışması için yeterli olur.
    Bu seviyede netlist ler ve kapı yapıları kullanılır.
    Breadboard_complex
  3. Data Flow Level(Veri Akış Seviyesi): Bu seviyede programcı donanımdan biraz daha soyutlanır. Donanımdan bağımsız tasarım yapabilir. Bu kısımda önemli olan tasarımdaki veri akışıdır. Bu seviyede register, clock, logic block gibi kavramlar kullanılmaya başlanır.
    Aşağıdaki görselde bu seviyede tasarlanmış bir yapının RTL gösterimi yer alır.
    RISC_PROCESSOR_1
  4. Behavioural Level(Davranışsal Seviye): Davranışsal seviyede lojik blokların nasıl davranacağı programlanır. Algoritma seviyesinde program yazılır. Lojik kapılar seviyesine çok nadir olarak gereken yerlerde inilir ancak gerekli durumlar hariç algoritma seviyesinde yazılan programlar donanımı tasarlamak için yeterli olur. Davranışsal seviye donanım programlama için bu gün için en üst seviyedir.
    C++ ile yazılan kodların donanıma çevrilmesi ile ilgili çeşitli çalışmalar ve uygulamalar da bulunmaktadır.
    FPGA-development-the-good-the-bad-the-ugly-1-1024x518graal

FPGA-NEDIR? #1

FPGA (Field Programmable Gate Array) Sahada Programlanabilir Kapı Dizileri olarak türkçeleştirilebilir. Biraz daha açmak gerekirse FPGA devre üzerinde iç yapısı programlanabilir lojik devreler serisidir.

swvvifhq558

FPGA’lerin tasarım kolaylığı ve paralel işlem yapabilme gücü tercih sebeplerinin başında gelir. FPGA ile birçok işlemi eş zamanlı yapabilirsiniz. Bu sizin yazacağınız donanım kodlamasına bağlıdır. FPGA ile paralel işlemler yapan çeşitli IP ler tasarlayabileceğiniz gibi bir mikroişlemci tasarımı da yapabilirsiniz.

FPGA’ler HDL denilen dillerle programlanmakdır. Bunların başlıcaları Verilog ve VHDL dilleridir. Basit bir benzetme yapacak olursak Verilog C, VHDL assembly gibi anılır ancak kesinlikle ve kesinlikle geleneksel programlama ile donanım programlama dilleri tamamen farklıdır. Klasik programlamada program işleyişini düzenlerken, HDL programlamada donanım yapısını tasarlıyorsunuz.

Virtex7_200t-Substratec1omp-1d

FPGA bir çok alanda kullanılmaktadır. Bunların başını savunma, medikal ve ölçüm sektörleri yer alır. FPGA firmaları ASIC tasarımı yapmadan ve çeşitli lojik entegrelerin kombinasyonlarıyla uğraşmadan donanım tasarımı yapılmasına izin verir. Örnek vermek gerekirse uygulamaya özel DSP tasarımı yapmak FPGA ile sadece yazılım üzerinden gerçekleştirilebilir.

pciev4base-nah-virtex4-fpga

İlk FPGA üreticisi Xilinx firmasıdır. Halen bu konuda başı çeken firmalar arasındadır. Aynı seviyede bugün Altera da bu alanda öncü firmalardandır. Altera yakın zamanda Intel tarafından satın alınmıştır. Pazarın büyük kısmı bu iki firmadadır.

board_front21

NodeMcu ESP-12E Güç Besleme Seçenekleri

NodeMcu ESP-12E kartı bir çok alanda kullanılabilir olduğu için bu alanlara uyumlu besleme seçenekleri de vardır.

NodeMcu ‘nun güç ile ilgili şematik yapısı aşağıdaki gibidir.

  1. USB üzerinden besleme

  2. VIN Girişinden besleme

  3. Adaptör ile besleme

  4. 9V Pil ile besleme

  5. Dışarıdan regülatör bağlayarak besleme

 

NodeMcu ve LoLin ile IOT İşlerine Giriş

Merhaba

ESP8266 ve TI CC3200 ile “bu wifi/IoT olayları nasıl oluyor” diye çeşitli denemeler yapmıştım. Şimdi yeni aldığım Node Mcu v3 kartı ile çeşitli denemeler yapacağım. Tüm çalışmalar bu kart üzerinden ilerleyecek. Çalışmaları blogda paylaşmayı planlıyorum.

Node Mcu açık kaynak destekli IoT projeleri için bazı katmanları kendisi halleden bir yapıdır. Üzerinde ESP modülleri bulunur.

Şimdi ilk olarak bir Node Mcu ediniyoruz. Gittigidiyor da uygun fiyatlı ürünler bulabilirsiniz. Robotik ve elektronik marketler nispeten daha pahalıya satıyorlar.

 

Geliştirme ortamı olarak Arduino IDE’si kullanılır.

Arduino IDE’sini kurduktan sonra aşağıdaki işlemler takip edilerek Node Mcu kartı sisteme eklenmelidir.

  • Files/Preferences penceresini açın buranın alt tarafında Additional Boards Manager kısmına aşağıdaki linki yapıştırın.
  • http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • OK diyerek sayfayı kapatın
  • Tools/Board/Boards Manager açın
  • Çıkan listede ESP8266 ile ilgili paketi yükleyin
  • Artık tamam ESP8266 ile ilgili kartların listesi Arduino IDE’sine eklendi. Hangi kart elinizde varsa oradan devam edebilirsiniz. Biz NodeMCU 1.0(ESP 12E Module) ile devam edeceğiz.
  • Bu aşamanın ardından File/Examples altından çeşitli örnekleri inceleyip kurcalayabilirsiniz.

Gelecek postlarda projeleri incelerek devam edeceğiz.