İstanbul-Eylül 2016 DENEYLERLE ELEKTRONİK OĞUZHAN ÇİFTÇİ Marmara Üniversitesi Elektrik- Elektronik Mühendisliği #3 İÇİNDEKİLER sayfa no 1. Giriş 3 2. Kod Yazmak Nedir ? 4 3. Temel Devre Elemanları 6 3.1 Direnç Nedir ? 6 3.2 Kondansatör Nedir ? 7 3.3 Bobin Nedir ? 8 3.4 Transistör Nedir ? 9 3.5 Led Nedir ? 10 3.6 LDR, NTC, PTC Nedir ? 11 4. Multimetre ve Breadboard Nedir ? 12 4.1 Multimetre Nedir ? 12 4.2 Breadboard Nedir ? 13 5. Servo Motor Nedir ? 14 6. UNO ile Deneyler 15 6.1 Led Yakma 15 6.2 Buton ile Kontrol ve Serial Port 17 6.3 Serial Port Kullanma 19 6.4 Pot Kullanma 21 6.5 LDR Kullanma 23 6.6 Termometre Yapalım 25 6.7 Flip-Flop Devresi 28 6.8 Sıcaklık ile Fan Kontrolü 30 6.9 Servo Motor Kontrolü 32 7. Bitirme Projesi 34 2 1. Giriş Bu föyde elektronik ve robotik uygulamalar için bilinmesi gereken temel bilgileri bulacaksınız. Bu bilgiler elbetteki elektronik hakkındaki her şeyi içermiyor. Amacım temel olan şeyleri göstermek ve bunların sizde merak uyandırmasını sağlamak. Çünkü internette yapacağınız araştırmalar sizi daha fazla geliştirecektir. Ve küçük bir tavsiye, hiç bir zaman bir konu hakkında yalnızca tek bir kaynaktan bilgi edinmeyin. Çünkü, ancak derinlemesine bir araştırmayla yeni şeyler öğrenebilirsiniz. Bu föyde bulacağınız tek şey kitabi bilgi olmayacak. Burada Robotik uygulamaların vazgeçilmezi olan Arduino nun asıl kahraman olduğu bir takım deneyler bulacaksınız. Bu deneyler elektronik bilginizi sıfırdan başlayıp artık büyük bir proje yapabileceğiniz aşamaya taşıyacak. Başlığın en sonundaki bitirme projesiyle artık siz de bir “elektronikçi” olabileceksiniz. Arduino ve bu föyde bulunan tüm başlıklar için açıklama videolarını Scientific Uno isimli Youtube Kanalından izleyebilirsiniz. Link : https://www.youtube.com/watch?v=TCFFpXkE5h0 Deneylerimizin büyük bölümünde Arduino kullanacağız ve bu microişlemcinin bilgisayarda programlanabilmesi için kullanılan arayüz yazılımını alttaki linkten indirebilirsiniz. Ayrıca bu siteyi incelemenizi de tavsiye ederim. Link : https://www.arduino.cc/en/Main/Software Arduino kart ile yapmayı planladığınız devre kartlarının tasarımını bilgisayar üzerinden yapmanıza imkan sağlayan fritzing isimli yazılım programını da alttaki linkten indirebilirsiniz. Bu tabi ki ilk etapta pek kullanacağınız bir program değil ama bulunmasında fayda var. Link : http://fritzing.org/download/ Deneylerde kullanılacak olan malzemelerin (bitirme projesi dahil) genel listesini alttaki linkte bulabilirsiniz. Fiyatlar listenin üstünde yazan tarih için geçerlidir ve tüm liste direnc.net isimli siteden alınmıştır. Diğer elektronik malzeme satan sitelerden de fiyat karşılaştırması yapabilirsiniz. Örn. robotistan , robotus , robotpark gibi. Toplam 9 deneyle elektronik ve kod yazma konusunda az çok yorum yapabilir konuma geleceğinizi düşünüyorum. Umarım her şey gönlünüzce olur. Başarılar ve kolay gelsin… 3 2. Kod Yazmak Nedir ? Bu konu hakkında aslında söylenebilecek çok fazla şey var. Kod yazmak kişilerin zihinlerinde oluşturdukları herhangi bir şeyi bilgisayar ortamında gerçekleştiğini görebilmelerini sağlamanın en basit yoludur. Bugün kod yazarak yani yazılım programlarıyla hem endüstri sektöründe hem eğlence,oyun sektörlerinde ve hatta akla gelmeyen bir çok sektörde daha istenilen her şeyi yapabiliyoruz. İsterseniz bu konu hakkında günümüzde bu alanda dev diye nitelendirebileceğimiz insanların yorumlarını izleyelim. Bu yorumlar aslında kitaplara sığmayacak olan anlatımın küçük bir tezahürü ve özeti. Videoya Scientific Uno isimli Youtube kanalından erişim sağlayabilirsiniz. Video'nun ismi; "Kod Yazmak Nedir ?". Videonun başında Steve Jobs'un söylediği söz gerçekten üzerinde düşünülmesi ve uğraşılması gereken bir konuya parmak basıyor. Ülkedeki herkesin bilgisayar programlamayı öğrenmesi gerekiyor. Çünkü bu insana düşünmeyi öğretiyor. Bunu kendi ülkesi için söylemiş olsa da kendi ülkemiz içinde bunun böyle olması gerektiği kanaatindeyim. İleride hangi meslekle uğraşıyor olursak olalım, artık bilgisayarlar her an her yerde önümüze çıkıyor. Bilgisayar programlayıcılığı ise yaptığımız işlerdeki iş yükümüzü inanılmaz derece hafifletiyor ve vakitten tasarruf etmemize imkan sağlıyor. Günümüzde kod yazmak için kullanılan yüzlerce dil var. Bu diller aslında gerçek manada bir dil gibidirler. İnsanlar nasıl Türkçe, İngilizce, Arapça gibi dilleri öğrenmeye can atıyorsa aslında bu dilleri öğrenmeye de bir o kadar istekli olmalılar. Çünkü esasen bu dillerin çoğu birbirine benziyorlar ve bazı gramatik farklılıklar haricinde neredeyse hepsinde aynı mantık hakim. Pseudo Coding aslında tüm programlama dillerinin temeli denebilir. Çünkü pseudo code sayesinde günlük yaşantımızda kullandığımız dil ile neyi anlatmak istiyorsak anlatabiliriz. Aslında mantık çok basittir. Bilinmesi gereken bir kaç tane yapı vardır. Bu yapıların kısaltmaları ingilizceden geçmiştir. Mesela "if-else". "If" ingilizcedeki kelime manasıyla türkçede "eğer" demektir. Yani bir koşul bildirir. Bunu bir örnekle açıklayalım. Örneğin, eğer yaşın 18 in üstündeyse Türkiyede ehliyet alabilirsin. Bu türkçe ifade pseudo coding sayesinde şu hale dönüşür: if (yaş > 18) write (ehliyet alabilirsin) Üst paragrafta bahsettiğim bir diğer yapı ise "else" di. Bu kelimede ingilizce kökenlidir ve manası Türkçede "aksi koşulda" olarak çevirilebilir. Bunu da yine üstteki aynı örnek cümle üzerinden pseudo code a çevirelim: 4 if (yaş > 18) write (ehliyet alabilirsin) else write (ehliyet alamazsın) Kod yazarken sıkça kullanılan bir diğer yapı ise döngülerdir. Döngülerin mantığı ise bilgisayara bir işlemi istediğiniz sıklıkta yaptırmaktır. Bunu kod yazarak yaptırabilmek için "while" veya "for" anahtar kelimeleri kullanılır. "While" kelime manası gereği "belirlenen koşul devam ettikçe" demektir. "for" ise bildiğimiz gibi "için" demektir ve yine "belirlenen koşullar için" demektir. Örneğin, bilgisayarın art arda 10 defa bir oyunu açmasını istiyorsunuz. Bunun için pseudo kodunuz şu şekilde olmalıdır : kacdefa 10 while (kacdefa > 0) open (oyun) kacdefa - 1 Pseudo kodumuzu kısaca açıklamak gerekirse, "kacdefa" diye bir değişken oluşturmuş olduk ve ilk baştaki değerini "10" yaptık. "While" döngüsü içerisindeki kontrolümüz ise bu "kacdefa" isimli değişkenin "0" dan büyük olmasını inceliyor. Eğer "kacdefa" isimli değişkenimiz sıfırdan büyük olursa "open" anahtar kelimesiyle oyunumuz bilgisayara açtırmış oluyoruz. Ancak şöyle bir sorunumuz var. Eğer "kacdefa" isimli değişkenin tuttuğu değeri döngünü içine her gittikten sonra 1 azaltmazsak döngümüz sonsuz olur ve eğer uzun süre farketmezsek bilgisayarımızın RAM ini aşırı yüklenme sonucu yakabiliriz. Bu en çok dikkat edilmesi gereken mevzulardan biridir. Bu 1 azaltma işlemini de bildiğimiz ve matematikte kullandığımız eksi "-" işaretiyle yapıyoruz. Böylece "kacdefa" isimli değişkenimiz her döngüye girdikten ve oyun açıldıktan sonra 1 azalmış oluyor ve değeri 0 a ulaştığında döngümüzün koşulu artık sağlanmadığı için oyun bir daha açılmıyor. While döngüsündeki temel mantığı kavradıysak, for döngüsü içinde temelde aynı mantık olduğunu söyleyebiliriz. Ancak for döngüsü biraz daha farklı kullanım alanlarına sahip. Bununla ilgili geniş bilgiye şu an için çok ihtiyacınız olmayacaktır. 5 3. Temel Devre Elemanları 3.1 Direnç Nedir ? Direncin kelime anlamı, birşeye karşı gösterilen zorluktur. Devre elemanı olan dirençte devrede akıma karşı bir zorluk göstererek akım sınırlaması yapar. Elektrik enerjisi direnç üzerinde ısıya dönüşerek harcanır. Direncin birimi ''Ohm'' 'dur. Ohm 'un ast katları; pikoohm, nanoohm, mikroohm, miliohm, üst katları ise; kiloohm, megaohm ve gigaohm 'dur. Dirençlerin devrelerdeki görevleri: Devreden geçen akımı sınırlayarak belli bir değerde tutmak, Devrenin besleme gerilimini bölüp küçülterek diğer elemanların çalışmasını sağlamak, Hassas devre elemanlarının yüksek akımdan zarar görmesini engellemek, Yük (alıcı) görevi yapmak ve Isı enerjisi elde etmek gibi amaçlarla kullanılır. Devrelerde kullanacağımız direncin değerini hesapladıktan sonra dirençlerin üstlerinde bulunan renk kodlarından karşılaştırma yaparak doğru direnci seçebiliriz. Renk kodları ve okuma yöntemi şöyledir: * "Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 6 3.2 Kondansatör Nedir? Kondansatörler elektrik yüklerini kısa süreliğine depo etmeye yarayan devre elemanlarıdır. Diğer bir isimleri de Kapasitördür. Kondansatörlerin sembolü c, birimi ise faraddır. Kondansatörler yapısal olarak iki iletken levha arasına konulmuş bir yalıtkandan oluşur. İletken levhalar arasında bulanan maddeye elektriği geçirmeyen anlamaında dielektrik adı verilir. Kondansatörlerde dielektrik madde olarak; mika, kağıt, polyester, metal kağıt, seramik, tantal vb. maddeler kullanılabilir. Elektrolitik ve tantal kondansatörler kutupludur ve bu nedenle sadece DC ile çalışan devrelerde kullanılabilirler. Kutupsuz kondansatörler ise DC veya AC devrelerinde kullanılabilir. Kondansatörlerin elektrik depolama kapasitesi; plakaların yüzey alanına, plakalar arasındaki uzaklığa ve kullanılan dielektrik maddenin cinsine bağlı olarak değişir. Kondansatörler elektriği piller gibi uzun süre depolayamaz, herhangi bir devreye bağlı olmasalar da zamanla boşalırlar. Yandaki resimde kutuplu ve kutupsuz kondansatör sembolleri gösterilmiştir. Kondansatörün devre içindeki özelliklerinden birisi yük depolamaktır. Bunun yanısıra yük depolarken içinden akım geçirirken, kapasitesi dolunca içinden yük geçirmez. Böylece tamamen boşalmadan devrenin kendi üzerinden akım geçirmesine imkan vermez. Kondansatörün birimi olan farad çok büyük bir kapasite değerine karşılık geldiğinden, uygulamalarda çoğunlukla faradın ast katları olan; pikofarad, nanofarad, mikrofarad ve milifarad kullanılır. Mesela 5 Faradlık bir kapasitör bir buzdolabı büyüklüğüne kadar ulaşabilir. * "Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 7 3.3 Bobin Nedir ? Bobin bir iletken telin üst üste ya da yanyana sarılması ile üretilen devre elemanıdır. Bobinin birimi henry (H), simgesi ise L dir. Bobine AC akım uygulandığında, akımın yönü sürekli değiştiğinden dolayı bobin etrafında bir manyetik alan oluşur. Bu manyetik alan akıma karşı ek bir direnç gösterdiğinden, AC devrelerde bobinin akıma gösterdiği direnç artar. DC devrelerde ise bobinin akıma karşı gösterdiği direnç, sadece bobinin üretildiği metalden kaynaklanan omik dirençtir. Bobinlerin üzerine sarıldığı kısma makara, mandren ya da karkas, iletken mandren üzerinde bir tur yapışına ise spir, tur ya da sarım denir. Bobin sarımlarında genellikle üzeri vernikli (izoleli) bakır tel kullanılır. İndüktans, bobinin kendi kendini etkileme derecesidir. İndüktans birimi henry 'dir. Bir henry, bobin üzerinden geçen 1 A değerindeki AC akımın 1 saniyedeki değişimi, 1 voltluk zıt elektromotor kuvveti (EMK) oluşturuyorsa bu bobinin indüktansına karşılık gelen miktardır. Henry, indüktans değeri bakımında çok yüksek bir değere karşılık geldiği için uygulamalarda çoğunlukla henry 'nin ast katları kullanılır. Bobinler ile kondansatörler arasındaki benzerlik her iki devre elemanının da elektrik enerjisini harcamayan reaktif devre elemanları olmalarıdır. Kondansatörlerin elektrik yüklerini depolayabildikleri gibi, bobinler de elektrik enerjisini kısa süreliğine manyetik alan olarak depo ederler. Bu iki devre elemanı arasındaki önemli fark ise; kondansatörler devreye bağlıyken gerilimi geri bırakırken (faz farkı), bobinlerin gerilimi ileri kaydırmasıdır. Bobin ve kondansatörlerin gerilim ve akım arasında yarattığı faz farkı uygulamalarda farklı şekillerde fayda ve zararlara neden olur. Bobinlere akım verilince etraflarında oluşturdukları kuvvete manyetik kuvvet denir. Doğal bir mıknatısı demir tozu içine koyduğumuzda gördüğümüz şeklin aynı biçimde ,etraflarında bir manyetik alan oluşur. "Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 8 3.4 Transistör Nedir ? Transistör yan yana birleştirilmiş iki PN diyodundan oluşan, girişine uygulanan sinyali yükselterek akım ve gerilim kazancı sağlayan, gerektiğinde anahtarlama elemanı olarak kullanılan yarı iletken bir devre elemanıdır. Transistör kelimesi transfer ve rezistans kelimelerinin birleşiminden doğmuştur. Uygulamada 100000 'e yakın çeşidi bulunan ve her geçen gün yeni özelliklerde üretilen transistörler temel olarak bipolar ve unipolar olmak üzere iki gruba ayrılır. Bipolar transistörler NPN ve PNP olmak üzere iki tiptir. Üç kutuplu devre elemanları olan transistörlerin kutupları; Emiter (E), Beyz (B) ve Kollektör (C) olarak adlandırılır. Emiter (yayıcı); akım taşıyıcıların harekete başladığı bölge, Beyz (taban); transistörün çalışmasını etkileyen bölge ve Kollektör (toplayıcı); akım taşıyıcıların toplandığı bölgedir. Çalışma mekanizması kabaca şöyledir: Transistörler NPN veya PNP biçiminde yerleştirilmiş üç yarı iletken maddenin bileşiminden oluşmaktadır. Beyz kutbu tetiklendiği zaman kollektör ve emiter arasında direnç değeri azalır ve akım geçirir hale gelir. Kollektör ve emiter arasından geçen akımın miktarı beyz kutbuna uygulanan akımın miktarına bağlıdır. Transistörler elektronik sistemlerde anahtarlama görevini üstlenirler. Ancak anahtarlama için kullanılan tek devre elemanı değildir. Tristor, Mosfet, Jfet gibi daha başka anahtarlama görevinde kullanılan devre elemanları mevcuttur. Matematikte mantık olarak bilinen şey aslında elektroniğin temeli oluşturur. Elektronik cihazların tümü 0 ve 1 lerle çalışır. Bu 0 ve 1 ler, elektrik akımının o devreden geçip geçmediğini ifade eder. Mantıksal Kapılar ismi verilen bir takım sistemler vardır. Bu sistemler yine matematik mantık konusundaki "ve, veya" gibi işlemleri temsil ederler. Bu mantıksal kapıların fiziksel karşılığı olan entegre devreler ise büyük oranda transistörler kullanılarak oluşturulur. Hesap makinemizin bir toplama işlemini yapabilmesi için öncelikle girdiğimiz iki sayıyı öncelikle "binary" ikilik sisteme dönüştür yani 2 ye göre mod unu alır. Bu çıkan değer girdiğimiz sayıları "ve,veya" gibi mantık şemalarındaki sonuçlarına göre tek tek hesaplar. Bulduğu bu sonucu ise tekrar 10 luk sisteme dönüştürerek sonucu bize verir. Şemada görülen şekiller "ve" ile "veya" işlemlerini temsil ediyor. Bu entegrenin kurulmasında ise transistörler kullanılır. Çok karışık gibi görülen bu işlemler hesap makineleri tarafından yalnızca bir kaç milisaniyede yapılabilir. *"Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 9 3.5 Led Nedir? Işık yayan diyotlardır. LED (Light Emitting Diode) kelimesinin kısaltmasıdır. LED'ler elektrik enerjisini ışık enerjisine çevirmektedir. LED'lerin normal diyotlardan farkı ışık yaymasıdır. LED'ler soğuk ışık yayar, dokunduğunuzda ısınmadığını hissedersiniz. İçerisindeki katkı maddeleri nedeni ile farklı renklerde ışık yayarlar. LED'ler doğru akımla (DC) çalışır. Genellikle 1,6 V - 4 V gerilimle çalışmaktadır. Yarı iletken özelliği gösterir, bu nedenle devreye bağlanırken + ve – uçlarına dikkat etmek gerekmektedir. LED in iki ucu vardır. Bunlardan uzun olanı (+), kısa olanı (-) dir. Ters bağlı olarak 5-10 Volt verildiğinde bozulabilir. Fazla voltaj vermek LED in verdiği ışığın artmasına neden olur, fakat kullanım ömrü de azalır. Aşırı Volt verilmesinde ise patlayabilir. LED'ler genellikle seri bağlanır. Seri bağlı LED'ler 10, 12, 24, 48 Volt doğru akım (DC) veren güç kaynakları veya batarya ile çalıştırılır. LED'ler isminden de anlaşılacağı üzere bir çeşit diyotturlar. Diyotlar bilindiği üzere akımı yalnızca belirli bir yönde geçirirler(eser miktardaki kaçak akım gözardı edilirse). Bu yüzden + ve - kutuplarının voltaj kaynaklarına bağlanma yönleri oldukça önemlidir. Ters bağlanırlarsa Led'ler ışık vermeyeceklerdir. Robotik uygulamalarında oldukça sık kullanılan ledler, programların ilgili yerlerinin çalışıp çalışmadıklarının fiziksel olarak görebilme olanağı sağlar. Genellikle kontrol amacıyla kullanıldığını söyleyebiliriz. Bizim yapacağımız deneylerde de öncelikli olarak yine kontrol amacıyla kullanacağız. *"Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 10 3.6 LDR, PTC, NTC Nedir ? Bunların üçü de aslında temel mana da birer dirençtirler. Ancak bazı özellikleri birbirlerinden ayrılmalarına sebep olur. LDR denilen cihazın isminin açılımı Light Dependent Resistor olup Türkçe meali Işığa Bağımlı Direnç demektir. Çalışma mantığı ise üstünde bulunan bir malzemenin ışığın şiddetinin artmasıyla LDR nin direnci azalır. Yani ters orantılıdır. Aynı şekilde ışık şiddeti azaldıkça da direnci artacaktır. Aslında temel mana da bir sensördür ancak özellikle endüstri de tercih edilmez. Bunun yerine küçük elektronik ve robotik deneylerde kullanılır. NTC denilen malzeme ise sıcaklığa bağlı olarak direncini değiştiren birnevi sensördür. Açılım Negative Temperature Coefficient olup, literatürde Negatif Isı Katsayılı Termistör diye geçer. Çalışma prensibi ise, bulunduğu ortamın veya temas ettiği yüzeyin sıcaklığı arttıkça elektriksel direncinin azalmasıdır. PTC nin açılımı ise Positive Temperature Coefficient olup ,Pozitif Isı Katsayılı Termistör olarak Türkçeye çevrilebilir. Çalışma prensibi ise NTC nin tersi olarak, bulunduğu ortamın veya temas ettiği yüzeyin sıcaklığı arttıkça elektriksel direncinin de artmasıdır. *"Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 11 4. Multimetre ve Breadboard Nedir ? 4.1 Multimetre Nedir ? Multimetre(Avometre); doğru ve alternatif akım, doğru ve alternatif gerilim ve direnç ölçmeye yarayan ölçme aletidir. Analog ve digital olarak bulunan günümüzdeki multimetreler ile direnç dışında frekans, sıcaklık, kapasitans, hfe, duty cycle ölçümü ve transistör, diyot, bobin, transformatör ve sigorta, kısa devre testleri de yapılır. Multimetrelerde ölçüm prob adı verilen ve multimetreye takılan siyah ve kırmızı olmak üzere iki kabloyla yapılmaktadır. Probe adı verilen bu kablolar bakır ve alüminyum gibi iletken malzemelerden yapılır ve dirençleri oldukça küçüktür ( Genelde 5 ohm’ dan küçük ). Ölçüme başlamadan önce bu kabloların sağlamlığı da kontrol edilmelidir. Multimetre buzzer () konumuna alınıp kablolar birbirine dokundurulduğu anda ses gelmektedir. Sesin gelmesi kabloların sağlam olduğunu göstermektedir. Multimetrede kablolar, ölçülecek olan fonksiyona göre uygun girişlere takılmalıdır. 4 farklı fonksiyonlara uç bulunmaktadır ve bunlar COM, VΩHz (volt, ohm, frekans), mA (miliamper) ve A(Amper) uçlarıdır. Yukarıdaki resimde de görüldüğü gibi COM ucu ortak uçtur ve bütün işlemlerde siyah kablo bu uca takılır. Ölçülecek fonksiyona göre kırmızı kablo da diğer girişlere takılır. Örneğin; direnç ölçümü yapacak isek Ω simgesinin olduğu uca kırmızı kabloyu takmamız gerekmektedir. Ölçeceğimiz akım değeri mA mertebelerinde ise ‘mA’ ucuna, amper mertebelerinde ise şekildeki ‘20A’ ucuna takılmalıdır. Bu multimetre de en büyük ölçülecek değer 20A olarak belirtilmiştir. Multimetrenin kullanımında bu değer üzerinde belirtilir.Ayrıca dikkat edilmesi gereken bir diğer hususta, ölçüm yapılacak akım ya da gerilimin ölçümünü AC ya da DC olarak yapacağımızı seçmemizdir. AC olarak ölçülecek bir büyüklük DC kademesinde ölçülürse multimetremiz kullanılamaz hale gelebilir ve ciddi sorunlar çıkarabilir. Mutimetreler; ölçüm sonucunu en yakın değerde okumak için mertebelere ayrılmıştır. 200Ω, 2k,20k,200k 2M,20M v.b. gibi. Ölçeceğimiz değer hangi aralıkta bulunmaktaysa o mertebe ayarlanmalıdır. Örneğin; ölçeceğimiz değer 1.5k civarı ise 2k mertebesini ayarlamak bize kolaylık sağlar. 2k mertebesinde 2k ‘dan büyük direnç değeri ölçülmez. Bilmediğimiz bir değer için en yüksek mertebeden başlayarak mertebeyi düşüre düşüre doğru aralığı bulabiliriz. * "Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 12 4.2 Breadboard Nedir ? Breadboard devreleri tak çıkar mantığı ile oluşturmamıza yarayan, belli satır ve sütunları kendi aralarında iletken edilmiş devre tahtasıdır. Ayrıca birden fazla breadboard kendi aralarında çentikleri sayesinde birleşetirerek daha büyük devre tahtası elde etmiş oluruz. Breadboard sayesinde devreleri daha hızlı şekilde oluşturarak test etme imkanı sunar. Bu sayede lehimleme, baskı devre gibi işlemler ile uğraşarak vakit kaybını önler. Üzerinde beşerli satır ve sütunlarla oluşturulmuş devre elemanlarının bacak yuvaları mevcuttur. Satır ve Sütunlardaki bağlantılar: Bu satır ve sütunlar yandaki görselde nasıl bir bağlantı kurdukları gösterilmiştir. A, B, C, D, E breadboardu yatay olarak tuttuğumuzda dikey sütunlar kendi aralarında birbirleri ile bağlanmıştır. en altta ve en üstte bulunan “+”,”-” olarak belirlenmiş kısımlarda yatay olarak kendi aralarında iletken edilmiştir. Paralel ve Seri Bağlantı Seri: Resimde belirtilen kırmızı ile dikey sütunlar breadboard yuvaları arasındaki bağlantıyı simge eder. Sol direncin bitiş noktası ile sağ direnci başlangıç noktası aynı dikey sütuna denk getirilmiştir bu sayede birbirleri ile bağlantı sağlanıp seri bağlantı oluşturulmuştur. Paralel: Resimde görüldüğü üzere dikey olarak belirtilen flu kırmızı çizgiler breadboard yuvaları arasındaki bağlantıyı gösterir. İki direnç bu dikey sütunda birbiri ile paralel bağlanmış olur. Bu olayı birbirlerine lehimleme olarak düşünebiliriz. Bu sayede lehimleme yapılmadan dirençler yuvalara oturtularak paralel bağlantı sağlanmış olur. * "Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 13 5. Servo Motor Nedir ? Motorlar elektrik enerjisini hareket enerjisine çeviren aygıtlardır. Piyasada bir çok motor çeşidi bulunabilir. Bunlardan bir kaçı DC motorlar, AC motorlar, Step motorlar,Servo Motorlar, RC servo motorlar olarak örnek gösterilebilir. Servo motorlar aslında endüstride en çok kullanılan motor çeşididirler ve çok yüksek enerjilerle çalışıp çok yüksek verimle çok yüksek miktarda hareket enerjisi açığa çıkartabilirler. Servo motorların en büyük avantajları geri bildirim yapabilmeleridir. Ayrıca encoder denilen harici veya bazen dahili cihazlarla anlık veri takibi yapılabilmektedir. Bizim devrelerimizde kullanacağımız servolar ise RC Servo motor olarak isimlendiriliyor ve daha küçük çaplı işlerde kullanılıyor. Ancak ne kadar küçük olarak nitelendirsem de kibrit kutusu büyüklüğünde bir RC Servo motoru tam verimle kullanabilirsek eğer kimi modellerinde cm^2 başına 15 kg hatta bazen daha fazla yükleri kaldırabilecek bir enerji sağlayabiliyorlar. Endüstriyel Servolar da bu rakam tonlara kadar çıkabiliyor. Ayrıca RC Servo motorların bir özellikleri de 0-180 derece arası dönüş yapabilmeleri. Ama bazı özel modellerinde 0-360 derece arasında çalışanları da mevcuttur. Motor seçimini her motorun kendi seri numarasına göre inceleyebileceğiniz datasheet lere bakarak yapıyoruz. Datasheet okumak mühendislikte en mühim şeylerden biridir. Çünkü her malzemenin seri numarasını veya bütün özelliklerini bilmek mümkün değildir. O yüzden internetten bir kaç datasheet örneği incelemek de fayda var. Mesele şimdilik anlamak değil de görmüş olmak diyebiliriz. * "Scientific Uno" isimli Youtube kanalından ilgili video'ya ulaşabilirsiniz. 14 6. UNO ile Deneyler 6.1 Deney #1 Led Yakma Kazanım: İlk deney olmasıyla birlikte Arduino nun çalışma biçimine alışmak için daha öncede bahsettiğim ledleri kullanacağız. Arduino'nun kod yazma arayüzüne aşinalık kazanılmış olacak. Kullanılacak Malzemeler: 1 adet Led 1 adet 100 Ω (ohm) direnç Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Arduino ile kod yazımına geçmeden evvel breadboard üzerinden devreyi kurmamız daha avantajlı olacaktır. Öncelikle deneyde kullacağımız direncin değerini multimetre ile ölçerek bu aletin kullanımını da biraz incelemek faydalı olur. 9 V pilimizi Arduino kitinde bulunan pil başıyla beraber Arduino Uno ya enerji sağlamak için kullanacağız. Ama kodu bilgisayarımızdan Arduino ya yükledikten sonra data kablosunu çıkartmadan da Arduino ve devreyi beslemeye devam edebiliriz. Bu durumda harici bir pile ihtiyaç olmayacaktır. Deney şeması: 15 Arduino Kodu: 16 6.2 Deney #2 Buton ile Kontrol ve Serial Port Kazanım: Bu deneyde Buton kullanarak Arduino'ya veri gönderip ledleri yakıp söndüreceğiz. Kullanılacak Malzemeler: 2 adet Led 1 adet buton 3 adet 150 Ω (ohm) direnç Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Elimizde bulunan buton, led ve dirençleri alttaki deney şemasına uygun olarak breadboard üzerine yerleştirelim. Ardından kodumuzu buton'a bir kere basıldığında soldaki ledin yanacağı ve ikinci defa basıldığında sağdaki ledin yanıp ilkinin söneceği şekilde ayarlayalım. Böyle if kavramına giriş yapmış olacağız. Ayrıca kod yazarken sürekli kullanılan "değişkenler" nedir bunu görmüş olacağız. Deney Şeması: fd 17 Arduino Kodu: 18 6.3 Deney #3 Serial Port Kullanma Kazanım: Bu deneyimizde 3 ayrı ledi farklı zamanlamalarla sırayla yakacağız. Böylece birden fazla veriyi Arduino ile işlemeyi öğrenmiş olacağız. Kullanılacak Malzemeler: 3 adet Led 3 adet 100 Ω (ohm) direnç Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: 3 led ve 3 direnci alttaki deney şemasına göre breadboard üzerine yerleştirin. Daha sonra Arduino kodunu yazın. Bu sefer bir önceki deneyden farklı olarak ledin ne kadar süreyle ne zaman yanacağına anlık olarak biz karar vereceğiz. Bunu da kod üzerinde "if" yapısını kullanarak yapacağız. Kodumuzda Serial Porttan veri girişi istiyor bizden. Her bir ledin kendine ait bir ismi olacak. Örneğin ilk ledin ismi "a" olsun. Bu "a" harfi Serial Porttan girildiğinde ilk led yanmaya başlayak. Sönmesi için de "s" harfine basılması yeterli olacak. Bu harfleri sistem yazılım dünyasında "char" -diye nitelendirilen- karakter olarak algılıyor ve porttan okunan değer ile "if" içerisindeki değeri karşılaştırıyor. Doğru ise "if" içinde yapılmasını istediğimiz şeyi yapıyor. Deney şeması: 19 Arduino Kodu: 20 6.4 Deney #4 Pot Kullanma Kazanım: Potansiyometreden aldığımız analog veriyi ledin parlaklığını nasıl değiştirdiğini göreceğiz Kullanılacak Malzemeler: 1 adet Led 1 adet 150 Ω (ohm) direnç 1 adet Pot Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Deneyin başında ledi, direnci ve Potu jumperlar ile alttaki deney şemasına uygun olarak breadboard üzerine yerleştirin. Deneyde potansiyometreden Arduino'ya analog veri vererek ledi yakacağız. Ancak Pottan alınan değeri Arduino 0 ile 1023 arası bir değerle ilişkilendirir. Pot bildiğiniz gibi bir nevi dirençtir ve 0 değeri direncin olmadığını 1023 değeri ise potun maksimum dirençte olduğunu bize gösterir. Öncelikle bu değerlere Serial portdan bakınız.(Kodda yorum içine alınmış kısmı çalıştırın.) Ledler ise 0 ile 255 arası bir değere göre parlaklıklarını değiştirirler. Yani 0 da iken yanmayıp 255 değerinde iken en yüksek parlaklıkta yanarlar. Ama bu 0-1023 ile 0-255 olan iki aralık birbiriyle örtüşmediğinden Arduino'nun yazılım kütüphanesinde bulunan bir foksiyondan yardım alacağız. Böylece pottan aldığımız 0-1023 arası değer, 0-255 arasında bir değere dönüştürülüp led'e veri gönderilecek. Bu fonksiyonun ismi map() dir. Deney Şeması: 21 Arduino Kodu: 22 6.5 Deney #5 LDR Kullanma Kazanım: LDR kullanarak if yapısıyla birlikte led yakma Kullanılacak Malzemeler: 4 adet Led 4 adet 150 Ω (ohm) direnç 1 adet 10k Ω (ohm) direnç 1 adet LDR Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Deneyin başında ledi, direnci ve Potu jumperlar ile alttaki deney şemasına uygun olarak breadboard üzerine yerleştirin. Deneyde LDR den okunan ortam ışık şiddetine bağlı olarak ledlerin yanmasını sağlayacağız. Ortam ne kadar aydınlık ise o kadar led fazla led yanacak ve aynı şekilde ortamın ışık şiddeti azaldıkça da yanan led sayısı azalacak. Bunu daha öncede gördüğümüz "if" koşul yapısıyla yapacağız. LDR lerden Arduino'ya veri analog olarak gider. Bu yüzden de LDR 'yi Arduinonumuzun Analog pinlerinden birine bağlayacağız. Ve bunun bir sonucu olarak alacağımız değerler 0-1023 arasında olacak. Bu değerleri de 4 ayrı kategoride sınıflandırarak hangi aralıkta kaç tane ledimizin yanmasını istiyorsak onları belirledik. Deney Şeması: 23 Arduino Kodu: 24 6.6 Deney #6 Termometre Yapalım Kazanım: DS18B20 isimli sıcaklık sensörünü kullanarak hem Serial Porttan anlık sıcaklık takibi hem de ledler yardımıyla sıcaklık artış ve azalışını inceleyeceğiz. Kullanılacak Malzemeler: 4 adet Led 4 adet 150 Ω (ohm) direnç 1 adet 4.7k Ω (ohm) direnç 1 adet DS18B20 Sıcaklık Sensörü Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Deneyin başında ledi, direnci ve DS18B20 sıcaklık sensörünü, jumperlar ile alttaki deney şemasına uygun olarak breadboard üzerine yerleştirin. Bu deneyde kullanacağımız kod, biraz daha karmaşık ve başlangıç aşamasında çok da bilinmesi gereken şeyler değil. Yani C ve C++ dillerini ayrıca kendiniz öğrenmek isterseniz bunlarla ilgili hem youtube da hem normal internet sitelerinde çeşitli eğitim setleri bulunabilir. Şimdilik bilinmesi gereken Arduino nun yazılım kütüphanesine iki tane kütüphane yüklenmesi gerektiği. Bunları yazının en altındaki linklerden indirebilirsiniz. Sensörümüz digital veri verir ve bu kütüphaneler bize bu verileri bildiğimiz Santigrat derece olarak çevirir. Biz de bu dereceleri "if" yapısı kullanarak ledleri yakmakta kullanacağız. Koddaki yorum kısımları kaldırılarak, Serial Porttan da sıcaklık değerleri görünebilir. Deney Şeması: 25 Sensörün Açık Bağlantı Gösterimi: Arduino Kodu: 26 (Kodun çalışabilmesi için OneWire.h ve DallasTemperature isimli kütüphanelerin Arduino kütüphanesine koyulması gerekiyor. Bunları isimlerini internette aratıp indirerek kurabilirsiniz.) 27 6.7 Deney #7 Flip-Flop Devresi Kazanım: Transistör ve kondansatörlerin devredeki görevleri incelenmiş olacak. Kullanılacak Malzemeler: 2 adet Led 2 adet 470 Ω (ohm) direnç 2 adet 10k Ω (ohm) direnç 2 adet BC 547 NPN Transistör 2 adet 100uF kondansatör Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Bu deneyimiz öncekilerden biraz daha farklı olacak. Kontrol için yine ledlerden faydalanacağız ancak bu sefer Arduino gibi bir microcontroller'a ihtiyaç duymayacağız. Onun yerine transistör ve kondansatör kullanıp ledlerin sırayla yanmasını sağlayacağız. Çalışma mantığı ise şöyle: Devremize ledler üzerinden gelen 9V luk beslememiz transistörden geçer ve devreyi ilk kondansatör ve ikinci transistör üzerinden tamamlayıp, led yanar. Önemli bir bilgi, kondansatörler üzerinden geçen akımla dolarlar ve dolduktan sonra üzerlerinden akım geçirmezler. Bu yüzden kondansatör dolana kadar yanan led, daha sonrasında sönecektir. Bu sefer ilk transistör den geçmeye çalışan akım, ikici transistör üzerinden biraz önceki yolu izleyerek devreyi tamamlar ve ikinci led yanar. Bu devir daimdir. Yani kondansatörler sürekli dolup boşalırlar ve ledler sürekli yanıp sönerler. Ta ki bataryamız bitene kadar. Deney Şeması: 28 Hatırlatma: Devre şemasında kullanılan transistör modeliyle, asıl devrede kullanılan modeller birbirinden farklı. O yüzden bu dizilimi esas alıp transistörü ters çevirin. 29 6.8 Deney #8 Sıcaklık ile Fan Kontrolü Kazanım: Bu deneyimizde NTC kullanarak ortamın sıcaklığının artışı ve azalışına göre fanımızı çalıştıracağız. Kullanılacak Malzemeler: 1 adet 10k NTC 1 adet 330 Ω (ohm) direnç 1 adet 4.7k Ω (ohm) direnç 1 adet 100k Ω (ohm) direnç 1 adet 3.2k Ω (ohm) direnç 1 adet 47k trimpot 1 adet 12V Fan 2 adet C945 NPN Transistör 22uF Kondansatör Jumper 12V pil Breadboard Digital Multimetre Deneyin Yapılışı: Deneyin başında ledi, direnci,kondansatörü, transistörleri ve fanı jumperlar ile alttaki deney şemasına uygun olarak breadboard üzerine yerleştirin. Bu deney aslında öğrenme deneyinde ziyade biraz uygulama deneyi. O yüzden kimi bağlantıları anlatmakta biraz güçlük çekilebilir. Bu tür devreleri yapmak zamanla kolaylaşır. Ve yine Arduino kullanmadan kendi kendini programlayan bir sistem olarak düşünebilirsiniz. NTC den alınan sıcaklık verisine göre fanın dönme hızı artıp azalacak. (Fan yerine yine ledler kullanılabilir. Ancak bu sefer batarya, kondansatör, direnç değerleri azaltılarak ayarlanmalıdır. Aksi halde devreye fazla yükleme yapılarak led patlatılabilir.) Bu deney hakkını vererek yapabilirseniz, sizin elektronik hakkındaki bilgi ve deneyiminizi gerçekten artıracak bir deney olacaktır. O yüzden bütün bağlantıları büyük bir dikkatle yapınız. Deney Şeması: 30 31 6.9 Deney #9 Servo Motor Kontrolü Kazanım: Potansiyometreden aldığımız analog veriyle Servo motor kontrolü yapacağız. Kullanılacak Malzemeler: 1 adet Pot 1 adet Servo Motor Arduino UNO Jumper 9V pil Breadboard Digital Multimetre Deneyin Yapılışı: Deneyin başında Servo Motoru ve Potu jumperlar ile alttaki deney şemasına uygun olarak breadboard üzerine yerleştirin. Bu devre sayesinde pottan aldığımız analog veriyle servo motorun dönmesini sağlayacağız. Deney Şeması: 32 Arduino Kodu: 33 7. Bitirme Projesi Föyümüzü gerek bilgi kısmıyla gerek deneyler kısmıyla bitirmiş bulunmaktayız. Bu yüzden bunu bir Bitirme Projesiyle kutlamalıyız !! Bu projede, yaptığımız 9 deneyde de sık sık kullandığımız Arduino tekrar sahneye çıkıyor. Bu bölümde, projenin yapım aşamasında kullanmanız gereken malzemeler ,sayı belirtilmeden ve projenin konusu verilecek. Ancak örnek şema ve kod verilmeyecektir. Çünkü elektronik hayal gücünüzle gelişir. Malzemeleri breadboard üzerinde istediğiniz gibi yerleştirebilirsiniz. Ayrıca daha önce de belirttiğim gibi yazılım konusunda kopyalayapıştır ne kadar çok işe yarasa da, öğrenme aşamasındayken kolaya kaçmak hiç de akıl kârı değildir. Bu yüzden projenin kodu da sizin tarafınızdan yazılacak. Eğer takıldığınız ve sormak istediğiniz bir şey olursa, çekinmeden alta yorum bırakabilirsiniz. En yakın zamanda cevaplamaya çalışacağımdan emin olabilirsiniz. Hepinize kolay gelsin. Konu: Öncelikle tüm sistem LDR'ye bağlı olmalı. Yani ortam karanlık olursa sistem çalışmayı durduracak ve belirli bir ışık şiddetinin üstüne çıktığında ancak sistem çalışmaya başlayacak. Ama ortamın karanlık olduğu ve sistemin durduğu ledler yardımıyla kullanıcıya bildirilecek. Bununla birlikte ortamın sıcaklığı da bir diğer belirleyici etken olacak ve eğer çalışır durumdaki Servo Motor durup Fan çalışmaya başlayacak ve motoru ve ortamı soğutmaya başlayacak. Ve elbette Motorun durup-çalışması ve fanın durup-çalışması ledler ve buzzer yardımıyla kullanıcıya bildirilecek. Ayrıca kullanıcı pot yardımıyla servo motora hareket verebilmeli ve potun en yüksek değerinde en çok, en alt değerinde de hiç led yanmayacak şekilde bir düzenek olmalı. Böyle kullanıcı motorun hızını ledler yardımıyla kontrol edebilmeli. Ve tüm bu sistemden bağımsız olarak Transistör kullanarak Arduino ile led yakmanız gerekiyor. Malzemeler: Ledler Dirençler Pot DS18B20 Sıcaklık Sensörü Servo Motor Fan LDR Transistör Buzzer Multimetre Breadboard 12 V pil 34