Proteus Isis ile Arduino Simülasyonu Yapmak

Merhaba ben UÄŸurcan bu benim arduinoturkiye.com‘daki ilk makalem umarım beÄŸenirsiniz.

Bu makalemde size Proteus Isis ile arduinonuzu nasıl kolay bir ÅŸekilde simüle edeceÄŸinizi anlatacağım. Devrelerinizi tasarladıktan sonra onları simüle etmek gerçekten önemli. Size zaman kazandırır. Yaptığınız hataları daha kolay görürsünüz. Yazdığınız programın düzgün çalışıp çalışmadığını kontrol edersiniz. Bunun için aklımıza gelen devreleri anında protoboardlara veya delikli plaketlere yapmak yerine isis’te çizip simüle edip denemek size zaman kazandırır. Ve boÅŸa kaynak harcamazsınız.

Yapacaklarımız kısaca şunlar:
Yeni bir isis tasarımı açıp sayfamıza bir ATmega328 mikrokontrolör ekliyoruz çalışması için gerekli olan cristali ve kapasitorleri baÄŸlıyoruz ATmega’nın çalışması için minumum devreyi hazırlıyoruz. Bu arada simülasyon yapmak için elimizde programımızın .hex dosyası olması gerek maalesef arduino idesi bunu doÄŸrudan bize vermiyor. Ama .hex dosyasını arduino idesinde yazdığımız programı upload ettiÄŸimizde temp klasöründen bulabiliyoruz. Son olarakta isiste kurduÄŸumuz devredeki ATmega kontrolörüne programı yüklediÄŸimizde, boom herÅŸey mükemmel çalışıyor:) . AÅŸağıda size herÅŸeyi adım adım resimler ile anlatayım.

      1. İlk olarak yeni bir isis tasarımı açalım.
      1. Device kısmımıza ATmega328 mikrokontrolörü, CRYSTAL kristal ve CAP kapasitör yani kondansatör ekliyelim. Sonra sayfamıza bir ATmega328 mikrokontrolörü , bir adet kristal ve 2 adet te kondansatör yerleştirelim. Aşağıdaki gibi yerleştirir iseniz bağlantıları çizerken daha kolay olabilir.
      1. Şimdi kristal ile ATmega arasındaki bağlantıyı resimdeki gibi yapalım. Dikkat edin kristalin bir ucu PB6/XTAL1 bacağına diğeri ise PB7/XTAL2 bacağına bağlanılacak. Ardından kutupsuz kondansatörlerimizin bir bacağını kristalin bir bacağına diğerine ise toprağa şekildeki gibi bağlayalım.
        (görselde ufak bir hata var. C2 kondansatörünün değeri 22pf olacak!)
      1. Bu arada kristalimizin frekansını ve kondansatörlerimizin deÄŸerlerini ayarlamayı unutmayalım. Kristalimizin frekansı 16Mhz’e, Kondansatörlerimizin deÄŸerleri ise 22pf olacak.
      1. Sonrasında devremize bir power terminali ekleyelim. Kontrolörümüzün çalışması için minumum gerekli devre için PC6/RESET, AREF ve AVCC bacaklarını VCC olarak ayarlanmış olan Power terminalimize bağlayalım.


      1. Åžimdi yazdığımız programı simüle edebilmek için devremizdeki ATmega328 mikrokontrolörü üzerinde birkaç ayar yapmamız gerek çünkü kullandığımız ayarlar standart ayarlar deÄŸil ve simülasyonda ATmega’nın çalışması için osilatör ayarlarının doÄŸru yapılması gerek. Devremizdeki ATmega’nın üzerine çift tıklatarak açtığımız ayar penceresini aÅŸağıdaki resimdeki gibi düzeltin. CLKDIV8 yazan bölümü “(1) Unprogrammed” olarak deÄŸiÅŸtirin. Ardından CKSEL Fuses bölümünü de “(1111) Ext. Crystal 8.0-Mhz” olarak deÄŸiÅŸtirin.  Clock frequency bölümünündeki “(Default)” yerine “16Mhz” yazın. Ä°ÅŸte tamamdır.
      1. Åžimdi sıra devremizi simüle etmek için yazdığımız programı mikrokontrolörümüze yüklemeye geldi. Öncelikle ÅŸunu bilmeliyiz ki Isis’te simüle etmek için programımızın hex olarak derlenmiÅŸ olması gerekiyor. Arduino idesi bize doÄŸrudan .hex dosyasını vermiyor. Ama programı upload ettiÄŸimizde program hex olarak derlenip arduinoya yükleniyor bu sırada da hex geçici dosya olarak temp klasörüne gidiyor. Biz .hex dosyasını oradan alacağız. Temp klasörü windows 8 ve windows 7 için “C:\Users\<kullanıcı_adı>\AppData\Local\Temp”  yolunda, windows xp için “C:\Documents and Settings\<kullanıcı_adı>\Local Settings\Temp” yolunda olması gerek eÄŸer yanlışım varsa lütfen düzeltin. Unutmayın Arduino idesinin programı derleyeceÄŸi boardın Arduino Uno olduÄŸundan emin olun.
      1. Ben Arduino örneklerinden Blink’i upload ettim  Biliyosunuz blink’te 13.pine baÄŸlı olan ledi yakıp söndürüyorduk. Tabii arduino bilgisayarıma baÄŸlı deÄŸildi ve baÄŸlı olmasınada gerek yok, com.. Port bulunamadı diye bir hata alabilirsiniz hiç önemli deÄŸil es geçin lütfen. Sizde programınızı yazdıktan sonra upload tuÅŸuna basın. Sonra temp klasörüne girip son deÄŸiÅŸtirilen klasöre girelim karşımıza Sketch_ismi.cpp.hex gibi bir dosya çıkacak muhakkak oradadır. Onu kopyalayıp istediÄŸimiz bir yere yapıştıralım temp klasöründe durması sakıncalı çünkü silinebiliyor bir süre sonra. Ardından tekrar isis’teki sayfamıza dönelim ATmega’nın üzerine çift tıklayıp açtığımız düzenleme penceresinden Program file bölümündeki tuÅŸa tıklayalım yapıştırdığımız yoldan .hex dosyamızı seçelim ve ok diyip çıkalım.


      1. Vee neredeyse herşey bitti şimdi sadece play tuşuna basıp devremizi simüle etmek kaldı.
        Eğer tüm adıları doğru takip edip uyguladıysanız devreniz mutlu mesut çalışacaktır. Eğer bir sorun varsa tekrar tekrar denemekten vazgeçmeyin hatanızı bulmak için en baştan başlayabilirsiniz. Birde şunu söylemem gerek hangi bacak hangi pin oluyor diye soracak olursanız aşağıdaki resimde ben her bir pini ifade eden terminaller bağladım sizde yapabilirsiniz. Hatta aşağıda makalede yer alan tüm dosyaları (isis tasarımı, .hex dosyası ve makale görsellerinin yer aldığı bir klasör) ekliyorum. İstediğiniz gibi kopya çekin, üzerinde yapın, değiştirin, geliştirin.

Makale dosyalarını Skydrive’ıma attım buda http://sdrv.ms/OqnLMY
linki. (isis tasarımı, .hex dosyası ve makale görsellerinin yer aldığı bir klasör)

Umarım makalem hoşunuza gitmiştir, eğer hatalarım varsa nolur mazur görün bu benim ilk makalem ve hatalarımı belirtmekten çekinmeyin:) Siz söylediğinizde benim düzeltmem için fırsatım olur. Kendinize iyi bakın:).

Uğurcan Bastık

Arduino ve elektronik tutkunu, profesyonel öğrenci. @Ugurcanb de twit hesabı.

27 comments

  1. CoÅŸkun TaÅŸdemir dedi ki:

    Çok ilgi çekecek bir yazı olmuş, eline sağlık. Aramıza hoşgeldin Uğurcan.

  2. Uğurcan Bastık dedi ki:

    Teşekkür ederim. Hoşbuldum:)

  3. Aykut dedi ki:

    Tebrikleri Aurdino ile uğraşanlar için güzel bir makale olmuş 🙂

  4. Caner dedi ki:

    teşekkürler gerçekten faydalı bir paylaşım.

  5. murat dedi ki:

    döküman çok güzel olmuş, fakat yaptığın tasarladığın küçük devreleri veya robotları bu simulator üzerinde anlatırmısın? video hiç fena olmaz 🙂
    şimdiden teşekkürler..

  6. ertaç dedi ki:

    öncelikle paylaşımın benim için çok yararlı oldu çok teşekkür ederim. benim bir sorum olucak arduinoda analog giris denediğimde simulasyon çalışmıyor analog giriş yokmuş gibi davranıyor neden olabilir ?

    • UÄŸurcan Bastık dedi ki:

      Merhaba kodunuzda o pinleri Setup metodunda analog giriş olarak ayarladınız mı acaba? Geç cevap verebildiğim içinde çok özür dilerim.

  7. uÄŸur dedi ki:

    merhabalar , öncelikle size ve tüm site yetkililerine bu paylaşımcı ve özverili çalışmalarınız için teşekkür etmek istiyorum. bu konuyla ilgili bir sorum var , win8-64 bit kullanıyorum . Aynı şekilde uno yu seçtim blink uygulamasını upload ettim fakat temp klasöründe hiçbir değişim olmadı. hex dosyası nerede olabilir ?

    ek olarak temp klasörüm ÅŸurada ” C:\Windows\Temp ” bilmiyorum fark eder mi .p

    • uÄŸur dedi ki:

      “win 7 -64 bit” olcaktı

    • Ömer Koman dedi ki:

      arduino 1.0 ingilizce versiyonda üst menüde File -> Preferences e girdikten donra Show verbose output during [x] compilation seçeneğini işaretleyin. programı/sketch i compile ettiğinizde alttaki operasyonu izleme ekranının en alta yakın yerinde programaadı.cpp.hex şeklinde dosyanın yerini path i le beraber görebilirsin.

  8. uÄŸur dedi ki:

    çözüldü teşekkür ederim

  9. Ahmet D. dedi ki:

    “Tabii arduino bilgisayarıma baÄŸlı deÄŸildi ve baÄŸlı olmasınada gerek yok, com.. Port bulunamadı … upload tuÅŸuna basın.”. Elimde ÅŸu an için aurdinio kart olmadığı için, driver kuramadım. Yani önceden cihaz kurulu deÄŸil. Bu yüzden upload hiç olmuyor. (processing.app.SerialNotFoundException: Serial port ‘COM1’ not found. Did you select the right one from the Tools > Serial Port menu?) uyarısı alıyorum. Cihaz elimizden olmadan çalıştırmamız mümkün deÄŸil mi?

  10. Uğurcan Bastık dedi ki:

    Ä°yi günler o hatayı boÅŸverin temp klasörüne gidin ve oluÅŸturulan en yeni klasörün içinde “build5793092950515551698.tmp” gibi bir klasördür bu onu içinde “sketch_adi.cpp.hex” gibi bir hex dosyası var onu alıp isiste kullanmanız gerek iÅŸlemde bir arduino boarduna ihtiyaç yok yani.

  11. Ahmet D. dedi ki:

    Ä°lk önce Temp klasörleri arasında bulamamıştım. Özellikle win7 oldukça fazla var. En sonunda “cpp.hex” ÅŸeklinde aratınca buldum. Yardımlarınız için çok teÅŸekkür ederim.

  12. Mehmet .E dedi ki:

    Çok faydalı bir paylaşım teşekkürler.

  13. mustafa a dedi ki:

    Merhaba,
    Güzel bir anlatım olmuÅŸ. Benim merak ettiÄŸim baÅŸka birÅŸey var: Arduino YUN aldım ve onun çipini kullanmak istiyorum. Ancak üzerindeki ATmega32u4 iÅŸlemci sanırım proteusda yok. Hatta adında ‘u’ olan diÄŸer iÅŸlemcilerde yok gibi. U’lu iÅŸlemcilerin olayı nedir bir fikriniz var mıdır acaba?

    • UÄŸurcan Bastık dedi ki:

      Ä°yi günler geç cevap yazdığım için kusura bakmayın. Siz söyleyene kadar fark etmemiÅŸtim ancak baktım ki http://www.labcenter.com da isis de desteklenen denetleyiciler arasında yok ne yapabiliriz diye düşündüm. Şöyle bir simulatör var http://virtronics.com.au/Simulator-for-Arduino.html. bu simulatörün tam sürümünü alırsanız veyahut bir yerlerden edinirseniz sketchlerinizi simule edebiliyor ancak isis gibi beklememek lazım arduinonun çıkışlarına led fln baÄŸlayamıyorsunuz ancak herbir çıkışın ne durumda olduÄŸunu ne geldiÄŸini görebiliyorsunuz. Açıkçası atmega 32u4 desteklenmemesine ÅŸaşırdım. Kütüphane araÅŸtırdım ancak oda yok. Ayrıca Yun alıp nasıl bir simulasyon yapacaksınız onuda anlamış deÄŸilim pek. Çünkü Yun’u Yun yapan ÅŸeyleri zaten kullanamayacaksınız simulatörde, eÄŸer daha basit uygulamalar yapacaksanız uno üzerinde koda hakim olun simulasyonlar yapın kodda fark olmadan yani çok fark olmadan kodu diÄŸer boardlara uyarlayabilirsiniz. Nasıl bir uygulama yapmak istiyorsunuz?

  14. Volkan Aslan dedi ki:

    Merhabalar, ISIS de arduino uygulamalarını yapmaya bu şekilde başladım ben de yeni bulduğum bir library ile artık arduino kartını direk olarak ISIS ee çağırabiliyoruz. Buradan okuyabilirsiniz.

    http://mvaslan.blogspot.com/2014/01/proteus-isisde-arduino-simulasyonu-nasl.html

  15. özay yılmaz dedi ki:

    verdiğiniz bilgiler için çok teşekkür ederim
    gerçekten faydalı bir makale olmuş

  16. 8.1 versiyonuyla Arduino importu da mümkün artık. hiçbirşey yapmadan tüm arduino kartı ekleyebiliyorsunuz.

  17. faysal dedi ki:

    isis de ardino buton ygulamasında butonu görmüyor.problem ne olabilir?

  18. ozay dedi ki:

    merhabalar isiste attiny85 ile simülasyon yapmak istiyorum ama bir türlü çalıştıramadım bredboard üzerinde yaptığım çalışmaları çalıştırıyorum ama isiste yapamıyorum bana bu konu hakkında yardımcı olabilirmisiniz? şimdiden teşekkürler.

  19. Ömer Koman dedi ki:

    şurada da anlatılmış kayıtlarımızda dursun http://www.elektrikport.com/teknik-kutuphane/proteus-ile-arduino-simulasyonu/12005#ad-image-0

  20. utku dedi ki:

    yazılım kısmıyla ilgili bir sorum olucak blink 13. pin ama burda ledi 19.pine bagladık nasıl çalışıyor

    • Ömer Koman dedi ki:

      proteusta entegrenın gerçek bacak numarası belirtilmiş. 13 nolu konnektor 19 nolu işlemci bacağına bağlı. utku araştırsaydın keşke.

  21. Hüseyin KADEROĞLU dedi ki:

    UÄŸur”can” kadreÅŸim;
    Önce eline ve aklına saÄŸlık, bileÄŸine kuvvet. Herzaman söylemeye çalıştığım gibi, “bilginin bir sır gibi saklandığı” bir zamanda, böylesine güzel ve faydalı bilgiler verdiÄŸin için teÅŸekkürler.
    Ben bir “elektronik amatör”üyüm. Zaman zaman bilgi konusunda sıkıntılara düşüyorum. Son uÄŸraÅŸtığım konu, pic programlama. Bu konuda size “yazıp yazamayacağımı” belirtebilirseniz, çok memnun olurum.
    Bu yazıyı “elinize saÄŸlık” demek için yazdım. Kalın saÄŸlıcakla.

E-posta adresiniz gösterilmeyecek. Gerekli alanlar * ile işaretlidir.

*



Sosyal AÄŸlar