29 Mayıs 2025 Perşembe

     

    LED_BUILTIN kodu ile Arduino kartı üzerindeki SMD led'i yakıp söndürebiliriz. Bu kod ile aynı zamanda 13. pini de kontrol edebiliriz. LED_BUILTIN kodunu programa doğrudan eklemek için: Arduino IDE üzerinde; Dosya > Örnekler > Basic > Blink 'e tıklayarak aşağıda gösterilen program kodlarını hazır olarak alabilirsiniz.


Program Kodları:

void setup() 

{

    pinMode(LED_BUILTIN, OUTPUT);

}

void loop() 

{

    digitalWrite(LED_BUILTIN, HIGH); 

    delay(1000);

    digitalWrite(LED_BUILTIN, LOW);

    delay(1000); 

}





__________________________________________________________________________________


27 Mayıs 2025 Salı


    Bu programımızda Arduino'nun 10 ve 11 nolu pinlerine bağladığımız kırmızı ve sarı ledlerin 500'er milisaniye yanıp sönmesini sağladık. Burada kullandığımız komutlar:

pinMode(10, OUTPUT);    : 10 nolu pini çıkış pini yapar.

digitalWrite(10, HIGH);    : 10 nolu pini 5 volt yapar.

digitalWrite(10, LOW);     : 10 nolu pini 0 volt yapar.

delay(500);                       : Programın 500 ms beklemesini sağlar.


Program Komutları:

void setup() 

{

      pinMode(10,OUTPUT);

      pinMode(11,OUTPUT);

}


void loop() 

{

      digitalWrite(10,HIGH);

      delay(500);

      digitalWrite(10,LOW);

      digitalWrite(11,HIGH);

      delay(500);

      digitalWrite(11,LOW);

}


Proteus'ta Simülasyon:




__________________________________________________________________________________





26 Mayıs 2025 Pazartesi

 


    Arduino ile yazdığımız programı derleyerek hex kodlarına çevirebilir ve ardından bu hex kodu ile bir simülasyon programında(Örn: Proteus) programı simüle edebiliriz. Arduino IDE'de sol üst köşede bulunan tik işareti ile programı derleme işlemi yapılır. Ardından "Taslaklar > Derlenmiş binary'i çıkar" dedikten sonra hex kodlarını içeren dosya Arduino programının bulunduğu klasöre üretilecektir.



    - Arduino'nun özelliklerini kullanabilmek için ya da herhangi bir sensörü, elektronik kartı, LCD ekran vb. cihazları tanıtabilmek için hazır olarak yazılmış dosyalara kütüphane denir. Bu özellikleri Arduino'nun kayıtçılarına komutlarla doğrudan ulaşarak da kullanabiliriz. Fakat bunun yerine hazır yazılmış fonksiyonlarla bu işi yapmak daha kolay olacaktır. Arduino'nun aynı özelliğini kullanmak için yazılmış farklı kütüphaneler bulunabilir. 






_________________________________________________________________________



1.
Klon Arduino Uno CH340 chiplidir.


2. Normalde windows Arduino Uno kartının driverını yükler ama bu klon Arduino Uno kartında driver sorunu olursa;

http://www.5v.ru/zip/ch341ser.zip   adresinden bu driver indirilerek kurulur.

3. Arduino için kod yazımını yapmak, komutları yazmak için kullanılan IDE'yi https://www.arduino.cc/en/software adresinden indirebilirsiniz. Burada 2 adet IDE vardır:

a- Arduino IDE 2.0.0 : Geliştirme aşamasında olan IDE'dir.

b- Legacy IDE(1.8.X) Arduino IDE 1.8.19 : Uzun yıllardır kullanılan IDE.

Her ikisini de kullanabilirsiniz.


Legacy IDE(1.8.X)



Arduino IDE 2.0.0



4. Arduino IDE'yi yükleyip Arduino Uno kartını bilgisayara taktıktan sonra Bilgisayarın "Aygıt Yöneticisinde" USB-SERIAL CH340 (COM...) şeklinde görmemiz gerekmektedir. Eğer göremiyorsak bilgisayarımız Arduino'yu görmemiş demektir. Klon Arduino'larda bu tür durumlar yaşanabilir. Bu sorunu aşmak için yukarıda anlatıldığı gibi CH340 driver'ını kurmamız gerekiyor.

5. IDE üzerinde bazı ayarlar yapmamız gerekiyor:

a- "Araçlar > Kart" kısmından kullandığımız kart "Arduino Uno" kartı olduğu için bunu seçeriz.

b- "Araçlar > Port" kısmından ise "Aygıt Yöneticinde" Arduino hangi COM portta gözüküyorsa o seçilir.

c- "Dosya > Tercihler" kısmından ise; "Kod katlatmayı aktive et" ve "Satır numaralarını göster" işaretlenir. Font boyutu da yine burdan değiştirilebilir.

6. // ile başlayan yada /* başlayıp */ ile biten aralık yorum, açıklama kısmıdır. Kod işleyişine dahil edilmez.

7. void setup() fonksiyonu: Arduino çalışmaya başladığında sadece 1 kez çalışan fonksiyondur. Kurulum ve ayarlamalar ve tanımlamalar yapılır. 

void loop() fonksiyonu:  void setup() fonksiyonundan sonra çalışmaya başlar ve kendi içinde sürekli döngüde olan fonksiyondur. İş yaptırdığımız kodlar buraya yazılır.

8. ctrl + T kısayolu ile değişkenler, eşitlikler arası otomatik boşluk açılır, komutlar hizalanır.

9. Arduino çalışmalarını https://www.tinkercad.com adlı sitede yada Proteus'ta simüle edebilirsiniz. Proteus'ta simüle etmek için indirdiğiniz Arduino Proteus kütüphanesini programın kurulu olduğu; C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\LIBRARY klasörünüze kopyalamanız yeterlidir. 

10. Kütüphaneler en üst kısımda aşağıdaki şekilde tanımlanır:

#include <kutuphane_ismi>
veya
#include "kutuphane_ismi"

Arduino ve Atmega328 İçin Proteus Ayarları:




__________________________________________________________________________________





     AVR, Atmel şirketi tarafından tasarlanıp 1996’dan beri piyasaya sunulan mikro denetleyici ailesinin adıdır. Atmega328 de bu AVR ailesi içinde yer alır. Bu mikrodenetleyiciler modifiye edilmiş Harvard mimarisi üzerine RISC komutu kümesiyle tasarlanmıştır. RISC (Reduced Instruction Set Computer), basit komutlar kullanan ve komutları daha hızlı işleten bir işlemci mimarisidir. RISC mimarisinde karmaşık komutlar kullanılmadığından dolayı komutlar daha hızlı işletilir. RISC mimarisini kullanan işlemcilere şunlar örnek verilebilir:

 

Alpha

ARC

ARM

SUN SPARC

MIPS R2000

INTEL i860

MOTOROLA 8800

IBM RS/6000

MOTOROLA 8800

 


    Atmega mikrodenetleyicilerde program ile veriler farklı belleklerde saklandığı için bunlara farklı veri yolları ile erişilmektedir. Böylelikle program ve verilere aynı anda erişimin mümkündür. Bu da hızı artırmaktadır. Geleneksel mikrodenetleyicilerde verilere ve programa tek veri yolu üzerinden erişilirdi.

        Atmega mikrodenetleyiciler 8-bit olup istisna olarak bir dönemde 32-bit olan modelleri de üretilmiştir. Birçok gömülü sistemlerde ve özellikle hobi devrelerinde en çok kullanılan mikro denetleyicilerden olup Arduino’nun da temelini oluşturur.


         ATmega328 ile ATmega328P arasında ne fark var?

        Atmega328 ve Atmega328P aynı mimari yapıya sahiptir. Atmega328P, Atmega328’e göre daha az enerji tüketir. Datasheet’lere bakıldığında 328P’nin 60nm, 328’in ise 90nm olduğu görülür.

    Atmega çipi, yüksek performanslı, düşük güç tüketimine sahip 8 bitlik bir mikro denetleyicidir. Değişik boyutlarda EEPROM, SRAM ve FLASH belleğe sahiptir. Atmega uyku modunda ise 0.1 uA değere sahip bekleme akımı çeker.

    Program Belleği(Flash Memory): Program komutlarının tutulduğu hafıza türüdür. Defalarca silinip tekrar programlanabilir. Arduino Uno’da Flash Bellek yaklaşık 10.000 kez yeniden yazılabilir. Ayrıca enerji kesildiğinde içindeki veriler saklanmaktadır.

    SRAM(Static Random Access Memory): Sistemdeki verilerin ve bilgilerin geçici olarak saklandığı bellektir. Genel ve özel amaçlı kayıtların bulundu hafızadır. Elektrik kesildiği zaman veri belleğinde tutulan veriler kaybolmaktadır. Örneğin; int a=1 gibi genel amaçlı, bir portun durumu giriş mi çıkış mı olacağı gibi özel amaçlı bilgiler tutulur.

    Burada dikkat edilmesi gereken husus SRAM belliğin fazla olmamasıdır. Eğer yazılan programda çok fazla değişken varsa hafıza yetmeyebilir. Bunu önlemek için; tablo veya uzun diziler için en küçük veri yapısı kullanılabilir. Örneğin; int tipi 2 byte yer kaplarken, byte tipi ise 1 byte yer kaplar. Bu da yeterli gelmezse değişkenleri SRAM yerine EEPROM’da tutabilirsiniz.

    EEPROM: Bilgilerin uzun süreli saklanabildiği bölümdür. Elektrik beslemesi kesildiğinde içerisinde saklanan veriler silinmez. Bir nevi bilgisayarlarda kullanılan hard disk gibi düşünebiliriz. Mikro denetleyici içerisinde dâhili bulunan EEPROM olduğu gibi, gerekli olursa harici olarak da dışardan EEPROM bağlanabilmektedir. Arduino Uno’da EEPROM yaklaşık 100.000 kez yeniden yazılabilir.


    8,16, 32, vb. Bit Mikroişlemci Neyi İfade Eder?

    Mikroişlemcinin tek seferde işleyebileceği veri sayısını ve mikroişlemcinin veri yolu sayısını ifade eder. 

  Veri sayısı, mikroişlemci ya da mikro denetleyicinin bir saat darbesi süresinde işleyebileceği veri miktarını ifade eder. 16 bitlik bir veriyi 8 bitlik mikro denetleyici 2 çevrimde işleyebilirken 16 bitlik mikro denetleyici bir çevrimde işler. 

    Veri yolu ise, denetleyici içerisindeki işlemciden çevre birimlerine giden hatlardır. 8 bit mimarisinde veri yolu 8 hattan oluşurken, 16 bit mimarisinde 16 hattan oluşur. 

    Bit sayısının artması işlem hızının da artması anlamına gelir. Yapılan işlem kapasitesinin artması beraberinde güç tüketiminin artmasını meydana getirir. Dolayısıyla 8 bit mikrodenetleyiciler, 16 bit mikro denetleyicilere göre düşük güç tüketimine sahiptir.


        Atmega328P Teknik Bilgiler

131 adet, çoğunluğu tek çevrimde çalışan güçlü bir komut seti.

32 adet 8 bitlik genel amaçlı kayıtçı.

16 Mhz çalışma hızı.

32 KB Flash bellek.

1Kbayt EEPROM.

2Kbayt dahili SRAM.

Yazma/silme döngüleri: 10.000 Flash Bellek / 100.000 EEPROM.

Yazılım güvenliği için programlama kilidi.

2 adet 8 bitlik sayıcı/zamanlayıcı.

1 adet 16 bitlik sayıcı/zamanlayıcı.

6 adet PWM çıkışı.

TQFP ve QFN/MLF paketinde 8 kanallı 10 bitlik ADC.

Programlanabilir seri USART.

SPI iletişim desteği.

I2C iletişim desteği.

Programlanabilir Watchdog Timer.

Dahili ve harici kesmeler.

Uyku modu ve sinyal girişi olduğunda uyanma özelliği.

23 adet programlanabilir giriş-çıkış portu.




Block Diagramı




__________________________________________________________________________________





Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörlerin Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com