Konu özeti
1. Hafta: Mikrodenetleyicilere Giriş
- Bu dersimizde ders hakkında kısa bir bilgi verdikten sonra ders sürecince kullanılacak yazılım ve donanımları tanıttık.
2. Hafta: Mikrodenetleyici Kartları
Arduino'ya yeni başlayanlar ya da başlamayı düşünenler için bilinmesi gereken bazı önemli konuları bu dersimizde ele aldık ve dersin sonunda Arduino Uno'ya Arduino IDE aracılığı ile ilk programımızı attık.
3. Hafta: Program Geliştirme Platformu
Yeni bir program öğrenirken ilk projemiz "Merhaba Dünya" uygulamasıdır. Gömülü sistem programcılığının merhaba dünyası ise "Led Yak Söndür" uygulamasıdır.
Derste yapılan benzetime aşağıdaki bağlantıdan ulaşabilirsiniz:
https://circuits.io/circuits/4635730-led-yak-sondur
7. Hafta: Genel Amaçlı Giriş-Çıkış Birimi
Bu dersimizde Arduino Uno R3 ile 0-99 Aşağı-Yukarı Sayıcı Uygulamasını gerçekleştiriyoruz. Tabi ki bu uygulamanın tek bir çözüm yolu olmadığı gibi daha iyisini sizler de yapabilirsiniz. Buna yönelik sizlerden aşağıdaki özellikleri uygulamaya eklemenizi bekliyoruz.
1) Devreye bir buzzer ekleyelim ve butona her basıldığında bip sesi çıksın.
2) Devreye bir 7 segment display daha ekleyelim ve sayacıyı 1 ile 100 arasında çalışacak şekle getirelim.
3) Arttır ya da azalt butonuna uzun süre basıldığında sayıdaki değişim giderek hızlansın. Lütfen kendi yaptığınız çalışmaları dersin yorum kısmında paylaşalım.
Bir sonraki dersimizde uygulaması anlatılacak devrenin çizimini gösterilmektedir.
Devre çizimine ulaşmak için: https://www.tinkercad.com/things/3sGl7uKs7bR
Bu dersimizde Arduino'da yer alan geliştirilmiş Giriş-Çıkış fonksiyonları ve belli başlı kullanım alanlarını anlatacağız. Ders çekilirken bu katagoride yer alan tüm fonksiyonlara değindik;
noTone()
pulseIn()
pulseInLong()
shiftIn()
shiftOut()
tone()
Ayrıca dersin sonunda sizlere burada kısaca özetleyeceğim eğlenceli iki adet uygulama bırakıyorum.
1) Park sensörü uygulaması (Led ve Ses dahil)
2) Karaşimşek uygulaması (Müzikte çalacak)
8. Hafta: Zamanlayıcılar ve Sayıcılar
Bu dersimizde Arduino'da tanımlı zamanlama fonksiyonları ve iki farklı kullanımını anlatacağız.
Derste yapılan uygulama: https://www.tinkercad.com/things/9x6cS8ItpNS
9. Hafta: Analog Girişler
Dijital sistemler analog dijital çevrim için ADC, dijital analog çevrim DAC çevresel birimlerini kullanırlar. Arduino Uno içerisinde ADC çevresel birimi mevcuttur. Ama DAC çevresel birimine sahip değildir.
Bu dersimizde Arduino Uno'nun Analog Giriş-Çıkış (IO) işlemini nasıl gerçekleştirdiğini RGB LED uygulamasını geliştirerek göreceğiz. Derste yapılan uygulamaya aşağıdaki bağlantıdan ulaşabilirsiniz:
https://www.tinkercad.com/things/fDiuHSDDtTl
Konu anlatımın sonunda sizlerden beklediğimiz uygulamalar:
1) Işık şiddetini kontrol edebileceğimiz ikinci bir potansiyometre ekleyiniz.
2) LED'i farklı animasyonları oluşturacak şekilde yakmamızı sağlayan bir buton ekleyiniz. Butona basıldığında her bir ışık kaynağı ayarlanan şiddette sıra ile yalnız yansın.
3) Animasyon butonuna bir daha basılınca RGB ledleri arasındaki geçiş ara değerlerin hepsini içerecek şekilde olsun.
10. Hafta: Seri İletişim
Bu dersimizde Arduino Uno kartının bilgisayar ile haberleşmesi ve programlanmasında kullanılan USART çevresel birimini tanıttık. Bundan sonraki derslerimizde bu birimi özellikler bilgisayar tarafına bilgi akışını sağlamak için kullanacağız.
Bu dersimizde aşağıdaki soruların cevaplarını bulabilirsiniz:
1:53 if(Serial){} kullanımı Arduino Uno gibi 328P tabanlı mikrodenetleyici barındıran kartlar için neden gereksizdir? Serial Kütüphanesi için aşağıdaki fonksiyonlarının işlevlerini açıklayınız.
3:47 available()
20:29 availableForWrite()
33:21 find() findUntil() fonksiyonunda karşılaşılan hatanın düzeltilmiş haline aşağıdaki bağlantıdan ulaşabilirsiniz. https://drive.google.com/open?id=1iWJNAVPzlnI7mD3ytkpWFqcd5Y07EyXH
45:47 parseFloat()
54:57 peek()
59:06 readBytes() readBytesUntil() fonksiyonunda karşılaşılan hatanın düzeltilmiş haline aşağıdaki bağlantıdan ulaşabilirsiniz. https://drive.google.com/open?id=1LEtNq20EwD-SBAaq0esVrOyLgiJF3WoJ
1:07:39 readString() gelen bilginin tamamlandığını nasıl algılar?
1:17:01 SerialEvent() Char Kütüphanesi için aşağıdaki fonksiyonlarının işlevlerini açıklayınız.
1:22:39 isAlpha()
1:22:59 isAscii()
1:23:06 isControl()
1:23:28 isDigit()
1:23:31 isGraph()
1:24:20 isSpace() ve isWhiteSpace() fonksiyonları arasındaki fark nedir?
1:24:43 isHexadecimalDigit()
1:24:59 isLowerCase()
1:25:01 isUpperCase()
1:25:06 isPunct()
1:25:34 string ile String() arasında nasıl bir fark vardır? String Kütüphanesi için aşağıdaki fonksiyonlarının işlevlerini açıklayınız.
1:26:12 charAt()
1:26:18 compareTo()
1:26:24 concat()
1:26:28 c_str()
1:27:21 endsWith()
1:27:36 equals()
1:27:40 equalsIgnoreCase()
1:27:47 getBytes()
1:28:23 indexOf()
1:28:40 lastIndexOf()
1:28:44 length()
1:28:50 remove()
1:29:36 replace()
1:30:05 reserve()
1:30:41 setCharAt()
1:30:47 startsWith()
1:30:51 substring()
1:31:52 toCharArray()
1:32:10 trim() String Kütüphanesi için aşağıdaki operatörlerin işlevlerini açıklayınız.
1:32:44 [ ]
1:32:51 +
1:32:53 +=
1:32:56 ==
1:33:11 !=
11. Hafta: Darbe Genişlik Modülasyonu
Dönem Sonu Projesi - Part 1.0
DHT11 sensörünün bağlantısı ve Arduino Uno ile sıcaklık ve nem ölçümlerin alınması.
12. Hafta: Çevresel Birim Uygulaması
Dönem Sonu Projesi - Part 1.1
Uygulamamızda kullanılan DHT11 sensörü kütüphanesinin internetten indirilmesi ve Arduino projelerinde kullanılmasını açıklayan kısa bir video, iyi seyirler dilerim.
13. Hafta: Çevresel Birim Uygulaması
Bu hafta mikrodenetleyici uygulamalarında kullanıcı arayüzü olarak sık kullanılan karakter LCD kütüphanesini inceleyeceğiz.
Derste yapılan uygulamaya aşağıdaki bağlantıdan ulaşabilirsiniz. https://www.tinkercad.com/things/fr0xmj6tabH
Dönem Sonu Projesi - Part 1.2
Bu uygulamamız sıcaklık ve nem ölçümleri uygulama serisinin ilk kısmını oluşturmaktadır. Buradaki amacımız Arduino Uno ile DHT11 sıcaklık ve nem sensöründen okuduğumuz değerleri 16x2 LCD ekranda yazdırmak. İyi seyirler.
14. Hafta: Çevresel Birim Uygulaması
Bu dersimizde mikrodenetleyici uygulamalarında kullanıcı ayarlarının kalıcı olarak saklandığı E2PROM hafıza kütüphanesini anlatıyoruz. Yine mikrodenetleyici uygulamalarında kullanıcı arayüzü olarak kullanılan tuş takımı (keypad) konusuna bu dersimizde değiniyoruz. Uygulamamıza *.zip kütüphane dosyasının nasıl yüklendiği ve Arduino kütüphane yönetimini ele alıyoruz. Ve son olarak dersimizi güzel bir on/off kontrol yapabilen uygulama ile tamamlıyoruz.
Evet biraz uzun bir ders oldu ama size faydalı olacağını düşünüyorum.
Derste yapılan uygulamaya aşağıdaki bağlantıdan ulaşabilirsiniz. https://www.tinkercad.com/things/cC1nNMyk9wy
Dönem Sonu Projesi - Part 2.0
Bir önceki uygulamamızı geliştirerek sıcaklık ve nem için sınır koşullarını program ile belirliyoruz ve aşağıdaki durumlara göre RGB ledlerin durumlarını yenileniyor.
Kırmızı Işık;üst sınır değeri aşılmış
Yeşil Işık; değer belirlenen aralık değerinde
Mavi Işıl; alt sınır değerinden daha azİleri Konular
Arduino Uno kartında harici (External) ve zamanlayıcı (Timer) kesmesini ele aldık. Bu dersimizde aşağıdaki soruların cevaplarını bulabileceksiniz:
00:31- Kesme nedir ve neden önemlidir?
6:19 - Program Sayıcının (Program Counter) görevi nedir?
12:21 - Yığın (Stack) Hafızası nedir, ne amaç ile kullanılır?
13:07 - FILO (First Input Last Output) mantığı nedir, kullanım alanına bir örnek vererek açıklayınız.
30:08 - Arduino Uno kartında kesmeleri aktif hale getirmek için kullanılan fonksiyon hangisidir?
32:25 - Arduino Uno kartında harici bacak kesmesi her bacaktan elde edilebilir mi?
38:39 - Arduno Uno kartında tanımlı harici kesme modları nelerdir?
49:42 - RTC (Real Time Clock) nedir?
Bu dersimizde aşağıdaki soruların cevaplarını bulabilirsiniz.
Adafruit DC Motor Kütüphanesi
33:02 AF_DCMotor motorname(portnum,freq)
35:54 setSpeed(speed)
36:06 run(cmd) Adafruit Stepper Kütüphanesi
39:17 AF_Stepper steppername(steps,portnumber)
40:51 step(steps,direction,style)
44:53 setSpeed(RPMspeed)
45:55 onestep(direction,stepstyle)
46:15 release() Arduino Servo Motor Kütüphanesi
47:03 attach()
49:03 detach()
49:34 attached()
49:54 write()
50:21 writeMicroseconds()
50:59 read()
Bu dersimizde diğer derslerimizde değinmediğimiz Arduino Uno fonksiyonlarına değineceğiz.
Analog IO
1:54 analogReference()
Math
8:31 abs()
9:10 constrain()
10:09 map()
11:00 max(), min()
11:19 pow()
11:37 sq()
11:55 sqrt()
12:21 Trigonometry cos(), sin(), tan()
13:26 random(), randomSeek()
Bits and Bytes
18:32 bit()
19:43 bitClear()
20:15 bitRead()
20:43 bitSet()
20:49 bitWrite()
21:10 highByte(),lowByte()