Kayıtlar

2020 tarihine ait yayınlar gösteriliyor

Direnç Parametreleri

Resim
       Direnç deyince akla bir tek resistans değeri mi gelir, genellikle öyle, biraz ilerlesek tölerans gelir, direncin değerinin yüzde kaç aşağı yukarı eksik fazla olacağı bilgisidir.  Mesela 10K bir direnç için %5 töleransla  10.000 x 0,95 'ten 9K5  ya da 10.000 x 1.05 'ten 10K5  gelebilir demek, hassas işler için, töleransı düşük dirençler seçmek lazım demek ki.. Hemen bir senaryo yazalım bu töleransla ilgili, 0-100V ayarlı çıkışa sahip bir güç devremiz olsun, (maksimum 100 ki hata payını yüzde olarak direkt elde edelim) devremizin çıkışını 5v TTL seviyesinde işlem gören bir mikrodenetleyici ile ölçüyor olalım, ne yapalım? çıkışı direk ADC ye girelim mi? :) yok yok girmeyelim çıkışın 100v olduğu yerde bize 5v verecek bir voltaj bölücü kullanalım(bu noktada çıkışın asla 100v u aşmayacağı kabulu vardır), basit olsun diye 95K ve 5K (±5% tölerans olsun) dirençler seçelim, voltaj bölücüyü anlatmaya gerek var mı? 5K gnd ye bağlı aşağıdan, yukarıdan ADC ye gidiyor ve 95 K ya gidi

Usb Devre Tasarımı - Part I - Usb Giriş koruma devreleri

Resim
       Mikrodenetleyici içeren bir devre tasarladık, mikrodenetleyicimizin güncellemelerini yüklemek için devremize bir port 'pin header group' bırakarak, programlanmasını sağlayabiliriz, ama bu aynı zamanda devre kapalı bir kutu içerisinde olacaksa, her defasında sökmeye ve toplamaya ihtiyaç duyulacağı anlamına gelir. Programlayıcımızı da devreye dahil edip bir USB port aracılığıyla bunu yapsak daha makul olur gibi. Bunun için USB to TTL ailesinden bir devre sisteme dahil edilebilir.     İlk adımda, bir devrede USB protokolü kullanılacaksa, gerekli koşullar nelerdir diye bir bakalım o vakit. USB tip B (" USB Series B Receptacle" diye geçer)  PN61729 konnektör kullandığımızı düşünerek senaryomuzda ilerliyelim. Konnektörün dış kasasındaki metal "Shield" ismini alıyor, diğer 4 pinler ise sırasıyla, resme bakarak üst soldaki 1- 5V (Vbus), 2 sağındaki D- (DM diye de geçer) alt soldaki 3, D+ (DP) sağındaki 4, Ground olarak belirlenmiş.     İncelediğim uygul

Atmega328p Benzersiz Seri Numarası, Kod koruma

Resim
           Arduino UNO üzerinde bulunan mikrodenetleyici : atmega328p-u   kullanarak bir kod yazdık, derledik, bir hex dosyamız var, yazdığımız kodun, sadece "herhangi bir"  atmega328p-u üzerinde çalışmasını istiyoruz, yani farklı bir mikrodenetleyiciyede çalışmasın, ya da "sadece" tek bir  atmega328p-u  üzerinde çalışsın istiyoruz, bir nevi kod koruma gibi, bir şekilde yazılı olan mikrodenetleyici üzerindeki kod okutularak başka bir mikrodenetleyiciye kopyalandığında çalışmasın istiyoruz. İlk seçenek sadece kod uyumluluğunu denetlemek için kullanılabilir, hex kodu alınıp örnek olsun diye Atmega2560 a yüklendiğinde "uyumsuz olacağı düşünülerek" çalışması engellenebilir. İkinci seçenekse, farklı bir atmega328p-u ya da atılmış olsa çalışmasın, burada kod korumadan söz edebiliriz. Peki bunu sağlamak için ne yapabiliriz? Örnek olsun diye atmega328p nin kendine özgü, her mikrodenetleyici için "benzersiz" bir seri numarası olsa, yine örnek olsun diye

Arduino UNO, Atmel Studio üzerinden programlamak | AVR Programlama - Registers

Resim
Arduino üzerinde bazı şeyleri öğrendik, hazır kütüphaneler üzerinde projelerimizi çalıştırdık, ama sanki IDE üzerinde eksik bişey var gibi, mesela bir IntelliSense olaydı ne güzel olmaz mıydı? hani şu değişken adını yazmaya başladığımızda tamamlama önerileri çıkartan, ya da nesne tabanlı programlamada kullandığımız; nesne. yazınca nesnenin tüm özelliklerine ulaşabildiğimiz yardımcı pencere açan.. bunun için Arduino yu bir adım ileriye taşıyan Atmelin kendi kodlayıcısı Atmel Studio  (artık yerini MicroChip Studio alıyor) mevcut, Visual Studio kullananların hemen alışacağı (neredeyse aynısı) bir kodlama arayüzü, kod yazmak için biraz datasheet karıştırmak gerekiyor. Ancak kontrolün sizde olduğunu bilmek bir ayrıcalık, Arduino IDE ile yazılmış bir led yakın söndürme kodu : void setup () {   // initialize digital pin LED_BUILTIN as an output.   pinMode ( LED_BUILTIN , OUTPUT ); } // the loop function runs over and over again forever void loop () {   digitalWrite ( LED_BUILTIN , HIGH )

Atmel Studio, Atmel ICE, Arduino UNO Hata Ayıklama

Resim
Geçtiğimiz günlerde siparişini verdiğim Atmel ICE elime ulaştı,        Break pointimi ekledim, Atmel-ICE, Arduino UNO bağlantısını ICSP soketi üzerinden gerçekleştirdim. Atmel-ICE ve Arduino usb ile bilgisayarıma bağlı, herşey hazır gibi. Projeyi kaydediyorum,   Debug menüsünden Start debugging and break e tıklıyorum, hoop : Launh Failed başlıklı bir hata :   Failed to launch session with debugWIRE. This could be caused by reset line circuitry or disabled debugWIRE interface. Make sure that reset line is free before continuing. Do you want to use SPI to enable the DWEN fuse?   Arkadaş diyor ki, debugWIRE üzerinden hata ayıklama yapamıyorum, nedeni reset devresi ya da DWEN fuse nin kapalı olması olabilir, hmm.. orjinal Arduino Uno kullanıyorum, zannımca reset devresiyle alakalı bir sorun olamaz, ancak arduino IDE debug kullanmadığından DWEN fuse kapalı olabilir, ve zaten soruyor istersen DWEN fuse ü senin için aktif etmemi ister misin, Evet diyorum. Çok güzel, DWEN aktif