17 Kasım 2014 Pazartesi

Brenner ve Win 8 driver çözümü

Merhabalar,

Eğer Win 8'e geçtiyseniz ve pic programlamak için brenner programlayıcı kullanıyorsanız mutlaka aşağıdaki gibi bir hata mesajı alacaksınız.

Bu problemi çözmek için aşağıdaki adımları yerine getirmeniz gerek.

  1. Öncelikle Windows Logosu olan tuş+R  yapın.
  2. Açılan kutuya shutdown.exe /r /o /f /t 00 yazın
  3. OK butonuna basın.
  4. Sistem yeniden başlatılacak ve gelen ekrandan Sorun Gideri seçin.
  5. Gelişmiş seçenekleri seçin
  6. Başlangıç ayarları seçin.
  7. Yeniden başlat deyin.
  8. Gelen ekranda seçenekler olacak ve siz klavyeden 7 tuşuna basarak bilgisayarınızı yeniden başlatın.
Driveri artık yükleyebilirsiniz. Driverı yükledikten sonra UsBurn programını sağ tuş özellikler diyerek  uyumluluk modunda  bu programı yönetici olarak çalıştırı seçip tamam deyin..

Kaynak:picproje.org

26 Ekim 2014 Pazar

L298 motor sürücü entegresini tanıyalım..

L298 motor sürücü entegresi genellikle L293D ve L293B gibi motor sürücü entegrelerin maksimum akım sınırlarını aşan motorların kontrolü için tercih edilen 15 bacaklı bir motor sürücü entegredir.
L298 motor sürücü entegre kullanımında voltaj sınırı 46 V, akım sınırı ise 2 A değerindedir.
L298 motor sürücü entegre de L293 motor sürücü entegreler gibi içerisinde 2 adet H köprüsü bulundurur ve iki motoru bağımsız ve çift yönlü olarak kontrol edebilir.

Yukarıda L298 motor sürücü entegresinin bacak yapısı verilmiştir. Burada 5. ve 7. bacaklar birinci motorun, 10. ve 12. bacaklar ise ikinci motorun çift yönlü kontrolleri için giriş bacakları olup 2. ve 3. bacaklar ve 13. ve 14. bacaklar ise bunlara karşılık gelen çıkış bacaklarıdır. L298 4. bacağına kontrol etmek istenilen motora uygun voltaj verilmeli ve bu voltaj değeri 46 V değerini aşmamalıdır. 9 numaralı bacağa uygulanacak olan voltaj 5 V değerindedir. 8 numaralı bacak ise toprak bağlantısının yapılacağı bacaktır.

Datasheet için tıklayınız..

L293D Entegresini tanıyalım...


L293D ve L293B motor sürücü entegreleri içlerinde iki adet H köprüsü barındıran 16 bacaklı motor sürücü entegrelerdir. Genellikle DC motor kontrolünde tercih edilen motor sürücü entegreler olan L293D ve L293B ile iki motor birbirinden bağımsız olarak çift yönlü kontrol edilebilmektedir. Ayrıca L293 motor sürücü entegrelerin enable bacaklarının kullanılmasıyla PWM kontrolü de yapılabilmektedir.

L293D motor sürücü entegresi 4,5 V ile 36 V aralığında maksimum 600 mA akım sınırına kadar kullanılabilir. L293B motor sürücü entegrenin ise aynı voltaj aralığında, maksimum 1 A akım sınırına kadar kullanılması mümkündür.

datasheetini indirmek için link:

2576 ile 5 voltluk regüle devresi



Test edilmiştir. Sorunsuz çalışmaktadır. D1 diyodu 1N5819 dur..R1 direnci de 100 uH lik bir bobindir.

Dosyaları indirmek için link:


30 Mayıs 2014 Cuma

Arduino ile pHmetre Uygulaması


Derslerin yanında internet ortamında gördüğüm güzel uygulamalarında linklerini paylaşmaya karar verdim. İlki arduino ile yapılmış bir pHmetre uygulaması..İngilizce ama olsun. :)

https://code.google.com/p/phduino/

29 Mayıs 2014 Perşembe

Arduino ile Ledin Parlaklığını Ayarlama

3. dersimizde Leonardo kartımıza bağladığımız bir ledin parlaklığını ayarlayacağız.

Hızlı bir biçimde kodumuzu yazıyoruz.

 Kodları özellikle resim şeklinde veriyorum ki, kes kopyala yapıştır modu olmasın. Benim tavsiyem elle teker teker yazmanız. Bu size bol tekrar sağlar ki öğrenmenin ana unsuru tekrardır. Gelelim kodu incelemeye..

Eğer dersleri takip etmeye başlamışsanız, kodun ilk kısmı size hiç zor gelmeyecektir.

Ledimizi 9 nolu dijital pine bağlıyoruz. Parlaklik ve adım adında int türünde iki adet değişken tanımlıyoruz. İlk değerlerini de 0 ve 5 olarak atıyoruz.

Setup ta 9 nolu pini çıkış olarak tanımlıyoruz.

Gelelim loop döngüsüne..analogWrite komutu ile led adlı değişkene parlaklik değişkeninin değerini yazıyoruz.

parlaklik=parlaklik+adim; satırı ile parlaklik değişkeninin değerini 5er 5er arttırıyoruz.Böylece ledimizin parlaklığı yavaş yavaş artıyor. Ta ki 255 olana kadar. Peki sonra??? Tabii ki bu seferde parlaklığı azaltmamız gerek. Bunun için de if ile başlayan satırı yazıyoruz.


if(parlaklik==0||parlaklik==255)
  {
  adim=-adim;
  }

|| OR yani veya işlemine tabi tutmak demek. Yani iki şarttan herhangi biri true(doğru) olursa süslü parantez içindeki kod işletilecek anlamındadır.

adim=-adim ; ile de önce 5er 5er arttıtılıyor, 255'e ulaşılınca da 5er 5er azaltılıyor.

delay(30) ile de küçük bir gecikme koyarak ledin parlaklığının gözle daha rahat izlenmesini sağlıyoruz.

24 Mayıs 2014 Cumartesi

Arduino ile Analog Okuma

Sıra geldi 2. dersimize..

Bu derste Arduino kartımızın Analog girişlerinden 0. pini kullanarak potansiyometremizin orta ucundaki gerilim değerini okuyacağız ve aynı zamanda Serial Monitör'ü kullanmaya başlayacağız.

Potansiyometremizi orta ucunu yukarıda belirttiğimiz gibi A0'a, diğer uçlarını ise GND ve  +5V 'a bağlayacağız.

Kodumuz aşağıdaki gibi olmalı. Ancak burada önemli bir nokta var. UNO ya da Mega gibi kartlara sahip arkadaşlar kodu rahatlıkla çalıştırabilirken maalesef Leonardo da kod çalışmıyor. Burada yapılması geken arduinonu resmi sitesinde belirtildiği üzere Serial.begin(9600); satırından sonra while (!Serial); yazmak. Burası önemli dostlar...

Gelelim kodu incelemeye..

Setup içerisinde kartı seri haberleşmeyi başlatıyoruz. Peki seri haberleşme nedir? Hadi bunu biraz irdeleyelim.

Dijital haberleşmede temel olarak iki yöntem bulunuyor: seri ve paralel.
- Seri haberleşmede dijital veriler(bitler) tek bir hat üzerinden peşi sıra gönderilirken paralel haberleşmede ise belli gruplar halinde eş zamanlı olarak iletilirler. - Daha az veri hattı gerektiğinden seri haberleşme daha çok kullanılır.
Arduino ile PC arasındaki haberleşme bu birim üzerinden gerçekleşir.
- USB standartına sahiptir. - Arduino üzerinde bir adet seri-USB dönüştürücü çip bulunmaktadır.
- Neredeyse tüm mikrodenetleyicilerde seri haberleşme ünitesi bulunur.
- Arduino üzerindeki seri haberleşme ünitesi UART (Universal asynchronous receiver / transmitter)
- Kullanılan Arduino modeline göre farklı adette bulunabilir.
- Seri haberleşme için gönderme-TX ve alma-RX olmak üzere iki pin kullanılıyor.
- Programlama esnasında Arduino ile PC arasındaki iletişim bu pinler üzerinden sağlanır.

SERİ HABERLEŞME FONKSİYONLARI
 
Serial.begin()  ve Serial.end()

- Seri haberleşmeyi başlatır.
- 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ve 115200 değerleri parametre olarak verilebilir.
- Bu değerlerin birimi bps(bit per second)’dir.
- Her bir byte için 10 bit gönderildiğinden byte miktarı değerin 10’a bölünmesiyle bulunur. (9600 bps hızında saniyede 960 karakter yollanabilir.)
  

!!! Seri iletişim başladıktan sonra 0 ve 1 nolu pinler sırasıyla veri alma ve veri gönderme işlemleri için kullanıldıklarından dijital giriş-çıkış işlemleri için kullanılamazlar.

- Bu pinlerin tekrar giriş-çıkış olarak kullanılabilmeleri için Serial.end() fonksiyonu programa dahil edilmelidir

Serial.print() ve Serial.println()  

- Arduino’dan karakter içeren verileri göndermek için kullanıyoruz.
-Karakterin yanı sıra verileri 16’lı(hexadecimal), 8’li (octal), veya 2’li (binary) tabanda yazdırabiliriz.


Serial.println(100);   // 100 olarak yazdırır.
Serial.println(1.23);   // 1.23 olarak yazdırır.
Serial.println(1.2345678);   // 1.23 olarak yazdırır.
Serial.println(1.2345678, 0);   // 1 olarak yazdırır.
Serial.println(1.2345678, 4);   // 1.2345 olarak yazdırır.
Serial.println(1.2345678, 0);   // 1 olarak yazdırır. 

Serial.println("BILTEK");   // BILTEK olarak yazdırır.
Serial.println(86, BIN);   // 1010110 olarak yazdırır.
Serial.println(86, OCT);   // 126 olarak yazdırır.
Serial.println(86, HEX);   // 56 olarak yazdırır. 



Serial.read()

- Seri birimden gelen veriler bytelar halinde alındıktan sonra tampon bellek bölgesine ayrılır.
- Programımızda gelen verileri kullanmak istediğimizde Serial.read() fonksiyonunu kullanarak okuruz.
- Okuma sırası geliş sırasına göredir.
- Eğer seri port tamponu boş ise fonksiyon -1 değerini döndürür.



Serial.available()

- Seri porta gelmiş ve henüz okunmamış verilerin sayısını döndürür.
- Sıfır döndürüse seriport boş demektir.


Buraya kadar seri haberleşme ile ilgili fonksiyonları tanımış olduk. Bu bilgileri Karabük Üniversitesi Bilgi Teknolojileri ve Yazılım Kulübünden Arduino Eğitimleri ni veren Volkan KANAT adlı arkadaşamızın hazırladığı bir slaytı kullanarak yazdım. Kendisini tanımıyorum ama kaynak göstermek lazım değil mi..Emeğe saygı. Neyse bizde bu işler pek böyle yürümüyor ama olsun...Etme bulma dünyası. Yarın belki bu yazdıklarımızı okuyanlar da bizi kaynak gösterirler.. Artık kodu inceleyebiliriz.

Loop içindeki ilk satır:

int sensorValue = analogRead(A0); Burada int tipnde sensorvalue adında bir değişken tanımlıyoruz ve A0 pinini okuyoruz.

Serial.println(sensorValue); Bu değeride Serial monitorde okuyoruz..Serial monitor nerede mi?? Onu da hemen gösterelim.

sağ üst köşedeki büyüteç simgesine tıklayın ve seraial monitor penceresi karşınızda..


ve son olarak delay(1); . Bu da okumalar arasında kararlığı sağlamak için...


Kalın sağlıcakla..
Saygılar sevgiler...

23 Mayıs 2014 Cuma

Arduino ile Led Yakıp Söndürme

Merhabalar,

Arduino ile programlamaya başlıyoruz. Aslında internet ortamında fazlasıyla kaynak bulmak mümkün. Ancak türkçe kaynak konusunda iyi sayılabilecek site sayısı bir elin parmaklarını geçmiyor. Genellikle yazılı ya da görsel ders hazırlamaya başlayan arduino dostları maalesef ya işlerin yoğunluğundan  ya da ders hazırlamanın getirdiği yorucu tempodan dolayı bir kaç ders sonrası bu işi yarıda bırakmışlar.

Benim amacım uzun soluklu olacak şekilde dersler hazırlamak. Aslında yapmak istediğim sadece Arduino çalışmalarımı bir yerde toplamak. O nedenle gerek examples klasörü içindeki örnek programlardan ya da webde gezinirken beğendiğim uygulamalardan faydalanacağız.

Neyse lafı fazla uzatmadan başlayalım..Konu başlığı üzere led yakıp söndüreceğiz. :)

Led yakıp söndürmek çok basit gibi görünse de her şey led yakıp söndürmekle başlıyor değil mi..

Kod aşağıdaki gibi..


Gelelim programın incelenmesine...

13 nolu dijital pinimizi integer tipinde led olarak tanımlıyoruz.

Bilindiği üzere her sketch'te setup ve loop olmak üzere 2 tane fonksiyonumuz bulunuyor.

Setup fonksiyonu içinde ayarlamalarımızı gerçekleştiriyoruz.

pinMode () ile led olarak tanıttığımız 13 nolu pini çıkış olarak tanımlıyoruz.

Loop fonksiyonu içinde de digitalWrite(led,HIGH) komutu ile önce HIGH ile çıkışımızı "1" yaparak ledin yanmasını sağlıyoruz.
delay(1000) ile 1 saniyelik bir gecikme ve arkasından  digitalWrite(led,LOW) ile çıkışımızı bu sefer "0" yaparak ledin sönmesini sağlıyoruz. delay(1000) ile 1 saniyelik bir gecikme daha. Ve bu durum sürekli tekrar ederek ledimizi sürekli yakıp söndürüyoruz. 

İşte bu kadar basit. :)





21 Mayıs 2014 Çarşamba

FRITZING

Arduino ile ilgili dokuman ya da ders hazırlayacaklar için

http://fritzing.org/home/ biçilmiş kaftan. Çok hoşuma gitti..

Ayrıca

http://www.cadsoftusa.com/?language=en adresinden de EAGLE programını indirebilirsiniz..


20 Mayıs 2014 Salı

AT komutları

Herhangi bir bağlantı kurulmamışken RS232 ile bluetooth ile bağlantı kurarak bluetooth yapılandırılabilir. Bunun için AT komutları kullanılır
AT komutu doğrulamak için kullanılır. Eğer bağlantı doğru kurulmuşsa OK cevabını alırsınız.
AT+PSWD? komutu bluetoothun eşleşme şifresini öğrenmek için kullanılır.
AT+PSWD=xxxx komutu eşleşme şifresini değiştirmek için kullanılır. (xxxx sisin belirlediğiniz bir şifredir)
AT+NAME? komutu bluetooth’un görünen adınının ne olduğunu öğrenmek için kullanılır.
AT+NAME=xxxx komutu bluetooth’un görünen adını değiştirmek için kullanılır. (xxxx burada sizin belirlediğiniz bir isimdir)
AT+ROLE? komutu modülün slave/master yada loopback modunda olup olmadığını sorgular
AT+ROLE=0 komutu modülün slave, AT+ROLE=1 komutu modülün master, AT+ROLE=2 ise slaveloop moduna girmesini sağlar.
AT+UART? komutu baud rate hızını, paritiy bitini ve stop bitinin olup olmadığını varsa kaç bit olduğunu öğrenmeye yarar.
AT+UART= 9600,1,2 komutunda
ilk parametre hızı (9600,19200…)
ikinci parametre stop bitini (o ise 1 bit stop biti, 1 ise 2 bit stop biti vardır)
3. parametre ise parity bitini belirtir (0 ise yok, 1 ise çift, 2 ise tek)
AT+ORGL komutu bluetooh’u fabrika ayarlarına döndürür.

lm2576 ile 6-55v girişli 1-4-50v çıkışlı ayarlı dcdc konvertör






  


LM2576, 3A akıtabilen, anahtarlamalı tip çalışan bir gerilim düşürücüdür. Internet’te tüm dökümantasyonuna ulaşabilirsiniz. 52KHz sabit frekansta çalışır. Frekansı ayarlanamaz. Bizim şemamızda R10 ve R11 olarak görünen dirençlerle sağlanan gerilim bölücüdeki gerilimle entegre içinde üretilen 1,23V’luk gerilimi karşılaştırıp çıkışının açık-kapalı sürelerini ayarlayarak sabit gerilimli çıkış verir. Vçıkış=1,23(1+R11/R10) formülü çıkış gerilimini verir.

• 3.3V, 5V, 12V, 15V, and adjustable output versions
• Adjustable version output voltage range, 1.23V to 37V (57V for HV version) ±4% max over line and load conditions
• Guaranteed 3A output current
• Wide input voltage range, 40V up to 60V for HV version
• Requires only 4 external components
• 52 kHz fixed frequency internal oscillator
• TTL shutdown capability, low power standby mode
• High efficiency
• Uses readily available standard inductors
• Thermal shutdown and current limit protection
• P+ Product Enhancement tested
 

Bluetooth Modülünün Pin Yapısı


Bluetooth Modülünü A tipi ve B Tipi Kullanma



HC05 Bluetooth-Serial Modül

Arduino Leonardo kartı ile bluetooth uygulaması yapacağım. Başlamadan önce HC05 Bluetooth modülü ile temel bilgilere sahip olmamız gerek. Bu konuyu bu yüzden yazmaya karar verdim..
HC05 Bluetooth-Serial Modül, Bluetooth SSP(Serial Port Standart) kullanımı ve  kablosuz seri haberleşme uygulamaları için tasarlanmıştır.

Bluetooth 2.0'ı destekleyen bu kart, 2.4GHz frekansında haberleşme yapılmasına imkan sağlayıp açık alanda yaklaşık 10 metrelik bir haberleşme mesafesine sahiptir. 

Bir çok hobi, robotik ve akademik projede kullanılabilir.
Özellikleri:
  • Bluetooth Protokolü: Bluetooth 2.0+EDR(Gelişmiş Veri Hızı)
  • 2.4GHz haberleşme frekansı
  • Hassasiyet: ≤-80 dBm
  • Çıkış Gücü: ≤+4 dBm
  • Asenkron Hız: 2.1 MBps/160 KBps
  • Senkron Hız: 1 MBps/1 MBps
  • Güvenlik: Kimlik Doğrulama ve Şifreleme
  • Çalışma Gerilimi: 1.8-3.6V(Önerilen 3.3V)
  • Akım: 50 mA
  • Boyutları: 26.9x13x2.2mm

19 Mayıs 2014 Pazartesi

STELLARIS EK-LM4F120XL

Uzun zaman önce sipariş ettiğim ama üzerinde pek çalışamadığım Stellaris ile çalışmalara başlıyorum. Gerçi Texas Instruments Tiva C serisi şeklinde yoluna devam etse de denemelerimizi biz yukarıda resmi bulunan Stellaris Launchpad ile yapacağız. Tüm aşamaları paylaşmayı planlıyorum..

Haydi bakalım..:)

Arduino Kartları (Arduino Boards)

1. Arduino Uno
2. Arduino Leonardo
3. Arduino Due
4. Arduino Yun
5. Arduino Tre
6. Arduino Micro
7. Arduino Robot
8. Arduino Esplora
9. Arduino Mega ADK
10. Arduino Ethernet
11. Arduino Mega 2560
12. Arduino Mini
13. LilyPad Arduino USB
14. LilyPad Arduino Simple
15. LilyPad Arduino SimpleSnap
16. LilyPad Arduino
17. Arduino Nano
18. Arduino Pro Mini
19. Arduino Pro
20. Arduino Fio

Arduino'nun Özellikleri Nedir Ve Onunla Neler Yapılabilir?

1. Kolay bir şekilde çevresiyle etkileşime girebilen sistemler tasarlayabilirsiniz,
2. Açık kaynaklı bir geliştirme platformudur.
3. Arduino kartları üzerinde Atmega firmasının 8 ve 32 bit mikrodenetleyicileri bulunur,
4. Arduino kütüphaneleri ile mikrodenetleyicileri kolaylıkla programlayabilirsiniz,
5. Analog ve dijital girişleri sayesinde analog ve dijital verileri işleyebilirsiniz,
6. Sensörlerden gelen verileri kullanabilirsiniz,
7. Dış dünyaya çıktılar (ses, ışık, hareket vs…) üretebilirsiniz.

ARDUINO NEDİR?



Arduino kartları bir Atmel AVR mikrodenetleyici (Eski kartlarda ATmega8 veya ATmega168, yenilerinde ATmega328) ve programlama ve diğer devrelere bağlantı için gerekli yan elemanlardan oluşur. Her kartta en azından bir 5 voltluk regüle entegresi ve bir 16MHz kristal osilator (bazılarında seramik rezonatör) bulunur. Mikrodenetleyiciye önceden bir bootloader programı yazılı olduğundan programlama için harici bir programlayıcıya ihtiyaç duyulmaz.

Arduino IDE kod editörü ve derleyici olarak görev yapan, aynı zamanda derlenen programı karta yükleme işlemini de yapabilen, her platformda çalışabilen Java programlama dilinde yazılmış bir uygulamadır.

Peki IDE nedir diye sorabilirsiniz..

Tümleşik geliştirme ortamı (İngilizce: Integrated development environment, kısaca IDE), bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür.

Tümleşik geliştirme ortamlarında olması gerekli en temel özellikler:

  •     Programlama diline göre sözdizimi renklendirmesi yapabilen kod yazım editörü.
  •     Kod dosyalarının hiyerarşik olarak görülebilmesi amacıyla hazırlanmış gerçek zamanlı bir dizelge.
  •     Tümleşik bir derleyici, yorumlayıcı ve hata ayıklayıcı.
  •     Yazılımın derlenmesi, bağlanması, çalışmaya tümüyle hazır hale gelmesi ve daha birçok ek işi otomatik olarak yapabilmek amacıyla küçük inşa araçları.
En bilinen tümleşik geliştirme ortamlarına örnek olarak Eclipse, Microsoft Visual Studio, Code::Blocks, Dev-C++, Anjuta, KDevelop, NetBeans gibi ortamlar verilebilir.

Gelelim bu konu ile ilgilenen arkadaşların faydalanabilecekleri linklere:

Bu değerli sayfaları hazırlayan dostlara da kucak dolusu saygılar sevgiler..