Arduino Ä°le ATtiny Programlama -1
Yücel Çetin // 5 Eylül 2012 // 16 yorum // kategori: Arduino ProgramlamaÄ°hsan Kehribar’ın  tasarlamış olduÄŸu Little Wire‘da da  kullanılan  ATtiny85,  Atmel’in üretmiÅŸ olduÄŸu 8-bit iÅŸlemcidir. 8K program aralığı, 6 I/O hattı (Input/Output) ve 4 kanal 10 bit ADC.  Harici 20MHz kristal ile çalışmaktadır ve devre üzerinde programlama özelliÄŸine sahiptir.
ATtiny85’i ;  Atmega 18 ve  Atmega16’yı programladığımız çeÅŸitli paralel programlayıcılar ile programlayabileceÄŸimiz  gibi Arduino ile de  programlayabiliriz.  Bu yazıda ATtiny85, ATtiny45’i Arduino ile programlamak için neler yapmamız gerekir bunlara bakacağız.  Bu baÄŸlantıdaki videoyu izleyerek neler yapabileceÄŸimizi daha kolay anlayabiliriz. Görüdüğümüz gibi basit programları çalıştırmak için uygun mikrodenetleyicilerdir.
ATtiny’ler ucuz olup; ebay’dan yaklaşık 2-3 $, Türkiye’den ise yaklaşık 7-8 Tl’ye edinebilirsiniz.  ATtiny45 ve ATtiny85’in sekiz adet bacağı vardır. Ayrıca çok benzerdirler. ATtiny85’in belleÄŸi ATtiny45’in iki katıdır.  Bu da ATtiny85 ile  daha karmaşık programları saklayabileceÄŸimiz anlamına gelir.  ATtiny’i programlamak için Arduino çekirdek kütüphaneleri kullanılır.
Gerekli olan malzemeler:
–Arduino Uno/Duemilanove
-ATtiny45 veya ATtiny85
-10 uF kapasite
-Breadboard ve jumper kablolara ihtiyacamızı var.
Ayrıca software olarak Arduino Version 1.0.1 veya 0022 kullanılabilir. Arasındaki farka deÄŸineceÄŸiz.Åžimdi Arduino’muz ile ATtiny’i programlamaya baÅŸlayabiliriz. Ä°lk önce Arduino’muzu ?in-system programmer? (ISP)’ye dönüştürmemiz gerekiyor. Bunun için ÅŸu basamakları izleyelim:
– Arduino programını  çalıştıralım.
– Example menüsünden ArduinoISP sketch’i açalım.
-Åžimdi burada versiyon olarak 1.0.1 kullanıyorsak  upload etmeden önce ArduinoISP ‘de küçük bir deÄŸiÅŸiklik yapmalıyız; heartbeat() fonksiyonunun içerisindeki delay(40);’ı bulalım ve bunu  delay(20); ile deÄŸiÅŸtirelim.
– Arduino’yu baÄŸladığımız Serialport’u seçelim.
-ArduinoISP  sketch’i upload edelim.
Arduino ile ATtiny baÄŸlantılarını Fritzing ile çizelim. Bundan önce ATtiny ‘e göz atalım.
BaÄŸlantılarımızı çizdiÄŸimiz gibi yapalım. Burada baÄŸlantıları gerçekleÅŸtirirken  kapasitenin ÅŸerit kısmının eksi olduÄŸunu unutmayalım bunu Ground’a baÄŸladık.  Kapasite Arduino’nun resetlermesini önler (bootloader’ı baÅŸlatan).  Bu da Arduino IDE‘si ile  ArduinoISP (bootloder deÄŸil)’nin sketch’i upload ederken haberleÅŸmesini saÄŸlar.
Arduino ve ATtiny için kullandığımız bağlantılar:
-ATtiny Pin 2 – Arduino Pin 13 (diÄŸer programlayıcılarda  SCK)
– ATtiny Pin 1 – Arduino Pin 12 ( diÄŸer programlayıcılardaMISO)
-ATtiny Pin 0 – Arduino Pin 11 (diÄŸer programlayıcılarda MOSI )
-ATtiny Reset Pin –  Arduino Pin 10 (diÄŸer programlayıcılarda RESET )
Aşağıdaki Arduino tarafından desteklenen komutları ve bağlantılarını bulabilirsiniz.
- pinMode()
- digitalWrite()
- digitalRead()
- analogRead()
- analogWrite()
- shiftOut()
- pulseIn()
- millis()
- micros()
- delay()
- delayMicroseconds()
- SoftwareSerial
Ä°leri ki yazılarda bu yöntemi kullanarak bir kaç çalışma yapacağız. ÖrneÄŸin bir ATtiny’nin bir pwm pin’ine led baÄŸlayarak bir Blink yapabilirsiniz. Bu baÄŸlantıdaki videoyu izleyerek neler yapabileceÄŸimizi daha kolay anlayabiliriz.  Bir kere upload ettikten sonra ATtiny kendi başına, Arduino baÄŸlantısı olmadan bu iÅŸlemleri gerçekleÅŸtirebilir hale gelebilir. İyi çalışmalar.
Etiketler: arduino Attiny programlama > arduino ISP > arduino sketch > arduinoISP > ATtiny > ATtiny arduino > ATtiny ISP > ATtiny programlama > ATtiny programmer > ATtiny45 > ATtiny85 > ISP > Little wire > MISO > MOSI > program Attiny with arduino > sck
bu yöntemle attıny15l programlayabilirmiyiz ?
güzel açıklayıcı bir örnek olmuş ama attiny85 piyasada bulamıyorum biyerden sipariş verdim oda ellerinde kalmamış onun yerine attiny45in mikro modeli herhalde küçücük bir şey geldi nerden satınalabilirim acaba yada atmega8 atmega328 bu şekilde programlıycam bir örnek gösterebilirmisiniz
Bu programlamada, Atiny45 kütüphanesi ihtiyaç yok mu? örnek 1 atiny programı yükleseydik!!
merhaba bootloaderi yukledikten sonra ÅŸu sayfada http://www.hobbytronics.co.uk/arduino-attiny attiny desteÄŸi için gerekli attiny45_85.zip doayası var , linkteki yazıda belirtildiÄŸi gibi kurarsanız standart arduino içinden programlayabilirsinz. led blink 🙂 örneÄŸininde sadece pin numarasını 13 yerine”0″ kullanmanız yeterli. komut seti yücelin yazsındakilerle sınırlıdır.
Acaba Arduino ile kullanılan kütüphaneleride kullanabilir miyiz?
her pin uymaz kutuphaneleri iyi seçmen lazım.
Aklımda okulda ki projectör cihazını açacak 9 volt pil büyüklüğünde kumanda yapıp hocamıza takdim etme fikri var. Onun için sordum. IRremote kütüphanesini kullanacağım. Burda seçim için nelere dikkat etmeliyim?
ir remote kutuphanesi ve kodlar sığarsa yapabilirisin. genelde arduino modulleri ve kitleri düşük akım ve pil tasarrufunu dikkaete almazlar daha kucuk iÅŸlemci veya modul kullanmak daha az akım tuketir pille çalışır anlamına gelmiyor sadece daha az bacaklı bir urun seçmiÅŸ oluyorsun. pil enerji sorun olmayacaksa ir ledleri tiny e baÄŸlayacaksın kod yollayacaktır veya hehangi bir kumandayı verici olarak kullanıp alıcı tarafında tiny e ir alıcıyı baÄŸlayıp bir çıkışıda roleye baÄŸlayacaksın. forumdan devam edersin kodları yazarken deneyenler olabılır destek gelir…
Teşekkür ederim Ömer hocam. Dediklerinizi dikkate alıcam. Sürekli açık durmasın diye Pilden hemen sonra attiny ile arasına switch koymayı düşünüyordum. Ama bahsettiğiniz her kütüphanenin az enerji tüketmemesi diğer projelerinde yardımcı olacak. 😊
Hocam millis ile ledi 2 saniye yakip 1 saniye sonmesini nasil yapabiliriz
sorunuzu ilgisiz konu başlıkların altına yazmayın bu sizin konulara dikkatsiz olduğunuzu ve prorgram yazma konusunda çok zorlanacağınız gösterir.
// led pinlerin ayarlarını setup kısmına yazmanız lazım
// ledi açma kapama satırlarında ilgili pinleri de kodun içinde yazın
// led blink örneğine bakın orjinal kodlardaki
int zaman;
int leddurum;
setup() {
zaman=millis();
leddurum=0;
}
loop {
if (millis()-zaman>=1000 && leddurum==0) {
// led açık komutuu buraya yaz
zaman=millis();
leddurum=1;
}
if (millis()-zaman>=2000 && leddurum==1) {
// led kapalı komutunu buraya yaz
zaman=millis();
leddurum=0;
}
}
Çok teşekkürler konu başlığı bulamadığım ve foruma ulaşamadığım için buraya yazdım kusura bakmayın
Dediğiniz gibi yaptim ama 5 kere tekrar ediyor bir yerde yanlıslık var hocam
int zaman;
int leddurum;
void setup() {
zaman=millis();
leddurum=0;
}
void loop() {
pinMode(13, OUTPUT);
if((millis()-zaman)>=1000&&leddurum==0)
{
digitalWrite(13, LOW);
zaman=millis();
leddurum=1;
}
if((millis()-zaman)>=5000&&leddurum==1)
{
digitalWrite(13, HIGH);
zaman=millis();
leddurum=0;
}
}
şu şekilde denermisin zaman ı unsigned long tipte tutun
unsigned long zaman;
int leddurum;
void setup() {
zaman=millis();
leddurum=0;
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop() {
if((millis()-zaman)>=1000&&leddurum==0)
{
digitalWrite(13, LOW);
zaman=millis();
leddurum=1;
}
if((millis()-zaman)>=5000&&leddurum==1)
{
digitalWrite(13, HIGH);
zaman=millis();
leddurum=0;
}
}
Attiny13a yı devre kartına lehimleyip nasıl programlarız ardunio uno ile birlikte
google la arattım gelen 5. seçenek buydu.
https://create.arduino.cc/projecthub/taunoerik/programming-attiny13-with-arduino-uno-07beba