Attiny85’i Arduino ile Programlama

Atmel’in piyasaya sürmüş olduğu Attiny24/45/85 serisinden olan Attiny85 Arduino ile uğraşmaya başlayan herkesin bir süre sonra karşılacağı entegrelerden bir tanesi. Düşük güç tüketimi, basit yapısı, kolay programlanabilirliği ile Attiny85 küçük projelerde vazgeçilmez olmaya başladı bile. Bugün sizlere Attiny85 entegremizi Arduino ile nasıl programlayabiliriz sorusunu cevaplayacağız.

Araç-Gereçler

1 x Atmel Attiny85
1 x Arduino Uno
Yeterince Kablo (Erkek-Erkek)
1 x Led
1 x 220 Ohm Direnç
2 x Breadboard
1 x 10 uF / 25V Elektrolit Kondansatör
Arduino IDE
İnternet ve biraz sabır 🙂

1. Arduino Uno’nun programlamaya hazır hale getirilmesi
Attiny85 entegremizi Arduino ile programlayacağımız için, önce onu bu programlamaya hazır hale getirmemiz gerekiyor. Bunun için Arduino Uno’ya hiçbir bağlantı yapmadan bilgisayara bağlıyoruz. Arduino IDE’yi açıp, Dosya -> Örnekler -> 11. ArduinoISP -> ArduinoISP örneğini açıyor ve yükle diyoruz. Artık Arduino Uno Attiny85 entegresini programlamaya hazır hale geldi.

Attiny85 Tercihler

Attiny85 Tercihler

2. Gerekli dosyaların indirilmesi
1. adımı gerçekleştirdikten sonra Arduino IDE’mize Attiny entegremizi tanıtmamız gerekiyor. Öncelikle Dosya->Tercihler ile ayarları açıyoruz. Ek Devre Kartları Yöneticisi URL’leri kutucuğuna şu adresi kopyalayıp yapıştırıyoruz: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Tamam deyip pencereyi kapatıyoruz.
Araçlar->Kart:xxxx->Kart Yönetici kısmını açıp, arama sekmesine attiny yazıyoruz ve bu kartı kur diyerek, Arduino’ya kuruyoruz.

Kart Yöneticisi

Kart Yöneticisi

Attiny85 Kartı Ekle

Attiny85 Kartı Ekle

3. Arduino Uno ve Attiny85’in bağlantılarının yapılması
Bağlantıları aşağıdaki resimde gördüğünüz gibi yapınız:

Attiny85 ISP Şeması

Attiny85 ISP Şeması

Arduino IDE -> Araçlar -> Kart -> Attiny25/45/85 ‘i seçiyoruz.
Araçlar -> İşlemci: -> Attiny85 ‘i seçiyoruz.
Araçlar -> Clock -> Internal 16 Mhz ‘yi seçiyoruz. İsterseniz Attiny85’i 1 MHz veya 8 MHz de de çalıştırabilirsiniz. Saat hızı düştükçe, güç tüketimi de azalır. Yine isterseniz dışarıdan kristal bağlayarak, Attiny85’i 20 MHz hızda da çalıştırabilirsiniz.
Araçlar -> Programlayıcı -> Arduino as ISP ‘yi seçiyoruz.
Arduino Uno’yu bilgisayara bağlıyor ve Araçlar -> Port -> (Unonun bağlı olduğu port numarası) seçimimizi yaptıktan sonra,
Araçlar -> Önyükleyiciyi Yazdır seçeneğine tıklayarak, Bootloader’ın Attiny85 entegresine atılmasını sağlıyoruz. Sonunda “Önyükleyicinin yazımı tamamlandı” demesi gerekiyor.

Önemli NOT: Attiny85 çipini ilk defa kullanacaksanız Bootloader yüklemesi yapmanız gerekiyor. Attiny85’in çok fazla bacağı olmadığı için, bootloader yükleme dışındaki diğer seçenekleri, Attiny85’e yazdığınız programların yüklemesini yapmadan önce yapmanız gerekiyor. Bu konuda satılan hazır kartlardan da alabilirsiniz. Attiny85 için bir programlama kartı hazırlamayı başka bir yazıya bırakıyorum.

5. Attiny85’e Blink kodlarının yüklenmesi
Az önce yapmış olduğumuz bağlantıları hiç bozmadan, Arduino IDE -> Dosya -> Örnekler -> 01.Basics -> Blink örneğini açıyoruz. Attiny85 entegresinin pinleri şu şekildedir:

Attiny85 Pin Şeması

Attiny85 Pin Şeması

Açtığımız örneği şu şekilde düzenliyoruz:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO 
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino model, check
  the Technical Specs of your board  at https://www.arduino.cc/en/Main/Products
  
  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
  
  modified 2 Sep 2016
  by Arturo Guadalupi
  
  modified 8 Sep 2016
  by Colby Newman
*/
int ledPin = 1;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(ledPin, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

 

ve kodlarımızı yüklüyoruz.

6. Attiny85 entegresinin başka bir breadboard üzerine alınıp çalıştırılması
Artık Attiny85 entegremizi yerinden çıkartıp, diğer breadboard üzerinde devremizi kurabiliriz. Yeni devre şemamız şu şekilde olacaktır:

Attiny85 Blink Şeması

Attiny85 Blink Şeması

Önemli NOT: Devreyi besleme geriliminizi Attiny85’in çalışma frekansına uygun seçmeyi unutmayın. Daha detaylı bilgi için Attiny85 data sheet’ini okuyabilirsiniz. Attiny 25/45/85 DataSheet

Son olarak bu da çalışır hali 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.