Arduino Uno Pin Giriş/Çıkış, Örnekler, Programlama
Arduino Uno, bu karta programlar yükleyerek gerçek dünyadaki şeylerle etkileşime geçmek için bu kartı kullanmanıza izin verdiği için açık kaynaklı bir geliştirme kartı olarak bilinir. PIC mikrodenetleyicileri, ST mikro denetleyicileri, Texas mikrodenetleyicileri gibi birçok başka mikro denetleyici vardır, ancak Arduino çoğunlukla ucuz olduğu ve çeşitli şekillerde kullanılabildiği için kullanılır. ATMEL ATmega328p mikrodenetleyicisine dayanmaktadır .Elektrikle kontrol edilen herhangi bir şeyle herhangi bir şekilde etkileşime girebilir. Ayrıca motorlar, sensörler ve elektromıknatıslarla etkileşime girebilir. Kısaca bu panoyu kullanarak dünyaya tepki veren ve tepki veren cihazlar yapabiliriz. Kısaca Arduino binlerce projenin beyni diyebiliriz.ARDUINO UNO Kartlarının farklı türleri
Arduino, her biri farklı yeteneklere sahip farklı türde geliştirme kartları yapar. Gibi Arduino Mega , Arduino UNO, Arduino Nano, Lily Pad Arduino ve çok daha fazlası avans olarak bizim projeler, çünkü Arduino bilimsel araştırmalarda kullanılıyor öğretmenleri, öğrencileri ve bu panoları olarak güncellenen ilgili diğer insanları tutmak için geliştirme kartını güncelleme devam ediyor yanı sıra robotik ve diğer birçok gelişmiş alan. Bu kartlar, pahalı olmadıkları, platformlar arası (bu geliştirme kartlarına kod yapmak için kullanılan IDE yazılımı Linux, OSX ve Windows işletim sistemi üzerinde çalışabilirken, bazı kartlar yalnızca pencerelerle sınırlıdır), genişletilebilir ve açık oldukları için yaygın olarak kullanılmaktadır. - donanım ve yazılım kaynağı.
ARDUINO Uno Giriş
Arduino UNO, Arduino ailesinin ünlü mikrodenetleyici kartlarından biridir ve Arduino.cc tarafından geliştirilmiştir. Temel olarak Arduino.cc, açık kaynaklı bir platformdur ve temel olarak AVR mikro denetleyici Atmega328'e dayanmaktadır. Arduino ailesinin en ekonomik kartlarından biridir ve Arduino UNO'nun ağabeyi olan Arduino mega'ya göre az sayıda giriş-çıkış pini ve küçültülmüş boyutundan dolayı yaygın olarak kullanılmaktadır. Bu yazımızda kısaca Arduino UNO'dan bahsedeceğiz. Özellikleri, pin konfigürasyonu, boyutları, kalkan uyumluluğu, kodlama yazılımı, bu kartın kullanıldığı uygulamalar ve projeleri tartışacağız.
Arduino Uno Pinout Şeması
Pinout diyagramı, her bir pinin PWM, kesintiler, genel amaçlı giriş-çıkış ve analog kanal gibi birden fazla işlevi olduğunu gösterir. Ancak bir seferde her iğnenin yalnızca bir işlevini kullanabiliriz. Toplam 14 GPIO pininden oluşur . Tüm pimlerin bir PWM özelliği yoktur.
Pin Yapılandırması Açıklaması ve kullanımı
Bu bölümde her bir pinin işlevini göreceğiz. Bu pinleri belirli bir özellik için nasıl başlatabiliriz?
GPIO pimleri
Son bölümde bahsedildiği gibi, Arduino Uno'da on dört adet dijital I / O pini bulunmaktadır. Tüm bu pinleri dijital giriş pinleri veya dijital çıkış pinleri olarak kullanabiliriz. Bu pinlerin sadece 2 durumu vardır, yani yüksek veya düşük veya basit kelimelerle 5 V veya 0 V arasında hiçbir değer yoktur. Bu pinler çoğunlukla anahtar açık veya kapalıyken dijital voltaj seviyesi varlığını algılamak için kullanılır). Örneğin Arduino Uno dijital girişine bağlanan switch açıkken sıfır voltaj seviyesini algılayacaktır. Anahtar kapalıysa 5 volt algılayacaktır.
- Herhangi bir pini giriş veya çıkış olarak başlatmak için pinMode (pin_number, mode) işlevini kullanırız. Örneğin, bu işlevi bu 'pinMode (13, OUTPUT)' gibi kullanmak, 13 numaralı pini dijital çıkış pini olarak başlatacaktır.
- Benzer şekilde bu 'pinMode (13, INPUT)', pini bir dijital giriş pini olarak başlatacaktır.
- digitalWrite (pin_number, state) fonksiyonu, dijital çıkış pinini durum parametresine bağlı olarak yüksek veya düşük aktif hale getirir. Bu parametre YÜKSEK veya DÜŞÜK olabilir.
- digitalRead () işlevi, bir dijital giriş pininin durumunu okur ve giriş pini üzerindeki voltaj düzeyine göre lojik yüksek veya düşük değeri döndürür.
Analog Kanal Pinleri
Arduino Uno altı analog kanal sunar. Kartın sol tarafındaki başlıkta tüm bu analog pinler bir arada bulunur. Bu şema, analog pinlerin Pinout konumunu gösterir.
A0'dan A5'e kadar ve 10 bitlik bir çözünürlükle geliyorlar. Herhangi bir harici analog cihazı bu pinlerle bağlama esnekliği sağlarlar. Bu pinler analog voltajı 0 V ila 5 V arasında okuyabilir. Ancak, Arduino IDE'de bulunan AREF pini veya analogReference () işlevi kullanılarak daha düşük aralıkta yapılandırılabilirler. Ancak bu analog kanallarla doğrudan okuyabileceğimiz maksimum voltaj 5 volttur. Bununla birlikte, daha yüksek voltajı ölçmek için voltaj düşürme devrelerini kullanabiliriz.Bu pinleri örneklemek için ADC (analogdan dijitale dönüştürücü) kullanılır. Bu pinler analog sinyal alır ve ADC çevirici kullanarak bu analog sinyali 0 - 1023 arasında sayısal sayıya çevirirler.
Analog kanal Örnekleri
Analog kanalları kullanmak için bu işlevi kullanıyoruz
int analogoutput = analogRead (int pin_number);
analogRead () işlevi, bu işleve argüman olarak belirtilen bir pin numarasından analog voltajı okur. Çıktı değerini tam sayı tipi bir değişkene kaydediyoruz.
Arduino PWM Pinleri
Geliştirme Kurulu 14 GPIO pinine sahiptir. Ancak bunlardan sadece altı tanesi darbe genişlik modülasyon özelliğine sahiptir. 5, 6, 9, 10 ve 11 numaralı pinler PWM çıkışı sağlar. Hepsinin 8 bit çözünürlüğü var.
Diğer Pinler
- USB girişi
- TX ve RX pinleri (seri iletişim için)
- SPI (seri çevre birimi arabirimi)
- Bu panele 12 volta kadar harici güç kaynağı ile güç sağlamak için harici adaptör (kart kendi voltaj regülatörünü kullanacak ve bu voltajı gereksinimlerimize göre 5 V veya 3,3 V'a çıkaracaktır)
- Reset Pin: Tüm kartımızı sıfırlamak ve onu çalışan programın ilk aşamasına götürmek için kullanılır. Örneğin, panomuz çalışan programımızın ortasında asılı kalır, sonra bu pini kullanabiliriz ve bu pin her şeyi temizler ve programı baştan başlatır.
- ICSP konektörü (USB bağlantı noktasını atlamak ve kartımızı doğrudan seri aygıt olarak arabirimlendirmek için kullanılır. Bu bağlantı noktası, bozulursa ve bilgisayarımızla konuşamıyorsak yongamızı yeniden yüklemek için gereklidir)
ARDUINO UNO'NUN BELLEĞİ
- Flash Bellek: 13KB (bir dizi talimatı kod biçiminde saklamak için kullanılır)
- 2 KB SRAM
- 1 KB EPROM
- 16 MHz kristal osilatör
- Çalışma voltajı 5 V'tur ve bir USB portu veya harici bir adaptör kullanılarak elde edilebilir.
- Harici bir mikro SD kart desteklenir
- Bu kart yerleşik bir voltaj düzenleme özelliği ile birlikte gelir, yani cihaz diğer harici cihazlara bağlandığında voltajı kontrol altında tutar ve böylece kartın hasar görmesini önler.
- Kolay USB arabirimi, yani harici cihazınızı bu bağlantı noktasına takın ve cihazınız kullanıma hazırdır. Bu arayüz aynı zamanda kartınızı bilgisayarınızda sanal bir seri port olarak kaydetmek için kullanılır ve avantajı, bu tip seri iletişim kurulumunun son derece kolay ve rahat olmasıdır.
- 16 MHz saat, çoğu uygulama için yeterince hızlı olmasını sağlar.
- Kodumuzda kolay ve hızlı hata ayıklama için yerleşik LED
- Projemizin işlevselliği veya doğası, panomuzu daha fazla bilgi depolamak için karmaşık hale gelirse, mikro SD kartlar kullanılabilir.
Arduino Uno üzerinde D0-D13 14 adet digital pini, a0,a5 arasında 6 adet analog pini var.
Arduino Uno’ da ICSP isimli pinler digital 11, 12, 13 numaralı pinlerle aynı olup kısa devredir. Yani bu pinleri d11, d12, d13 pinleri olarak kullanabilirsiniz. Ancak ICSP’ yi veya digital pinleri kullandığınızda diğer digital 11, 12, 13 pinlerini farklı amaçla kullanamazsınız.
Arduino Uno’ da SMD ve DİP model olarak 2 farklı çipli model mevcuttur. Bu modellerin farkları DİP soketli modelde mikrodenetleyiciyi sökebilir dışarıda kullanabilirsiniz. Bunun yanı sıra DİP soket modellerinde digital pinlerin üzerinde sol tarafta 6 adet pin bulunur. Bu pinler SPI haberleşmede kullanılan MOSI(Master Out Slave In), MISO (Master In Slave Out), SCK(Serial Clock), Reset pinleridir. Bu pinler digital 11, 12, 13 pinlerinden farklı olarak kullanılabilirler. Kalan 2 pin ise 5 volt ile GND’ dir.
Digital Pinler : 0 veya 5 volt giriş, çıkış (input,output) verebilen pinlerdir. Bu pinlerden bazılarının ekstra özellikleri vardır. Mesala D13 pini Serial Clock pini olarak kullanılır yani SPI haberleşmede 2 cihazın saat hızlarını eşitleyip senkronizasyon sağlamak amaçlı kullanılır. Bunun yanı sıra PWM (pulse with modulation) dalga modülasyonu olarak kullanılabilir yani normalde digital pinler 0 veya 5 volt gerilim verebilirken PWM pinleri analogWrite komutu ile 0,019 volt hassasiyetle 0-5 volt arası gerilim verebilirler. Bu pinler hassas motor sürme gibi amaçlarla kullanılabilir.
PWM Pinleri : Yukarıda digital pin tanımında da belirttiğim gibi 0,5 volt arasında 0,019 volt hassasiyetle voltaj alabilirsiniz. Bu pinler digital pinlerden ~işaretli olanlardır. Uno için; 3,5,6,9,10,11 numaralı digital pinlerdir.
Analog Pinler : A0-A5 Arasındaki pinlerdir, analog giriş çıkış amaçlı kullanılırlar, Analog olarak 0-5 volt arası gerilimi 5/1024 hassasiyet ile alıp verebilir. IN olarak kullanıldığında cihazların verdiği gerilimi ölçebilirsiniz.
MOSI Pini (Master Out Slave In) : Bu pin digital 11 pininde olup SPI haberleşme de master çıkışı olarak kullanılır.
MISO Pini (Master IN Slave Out) : Bu pin digital 12 pininde olup SPI haberleşme de master girişi olarak kullanılır.
SCK Pini (Serial Clock) : Bu pin SPI haberleşme de veya farklı iletişim yollarında kullanılır. 2 cihazın çalışma saat hızlarını eşitleyip senkronizasyon için kullanılır.
SS Pini (Select Slave) : Bu pin Master-Slave bağlamtılarında slave seçimi için kullanılır.
Reset Pini : Bu pin bi çok cihazda kullanılır, cihazları resetlemek amaçlı kullanılır.
IOREF : Arduino kartlar üzerindeki bu pin, mikrodenetleyicinin çalıştığı voltaj referansını sağlar.
AREF : Bu pin analog pinlerdeki voltaj ölçümü için referans pinidir.
RX Pini : Receive pinidir, Seri haberleşme de input için kullanılır, ancak arduino usb üzerinden bilgisayara bağlı ise bu pinler kullanılamaz.
TX Pini : Transmit pinidir, Seri haberleşme de output için kullanılır, ancak arduino usb üzerinden bilgisayara bağlı ise bu pinler kullanılamaz.
I2C Pinleri : Analog4 ve Analog5 pinleridir. I2C haberleşme metodu kullanılarak 2 cihaz haberleşebilir.
SDA(Serial Data) Pini : SDA Pini A4 pinidir. Bu pin analog pin özelliğinden farklı olarak I2C Bağlantısı için kullanılabilir.
SCL(Serial Clock Line) Pini : SCL Pini A5 pinidir. Bu pin analog pin özelliğinden farklı olarak I2C Bağlantısı için kullanılabilir.
3.3v Pini : 3.3 voltluk çıkış pinidir, 3.3v besleme gerektiren cihazlarınızı bu pine bağlayabilirsiniz. Ancak maksimum 50mA akım verebilir.
5v Pini : 5 voltluk çıkış pinidir. 5v besleme gerektiren cihazlarınızı bu pine bağlayabilirsiniz. Maksimum 450mA akım verebilir.
GND Pini : Toprak (-) pinidir. Cihazlarınızın gnd veya – uçlarını bu pine bağlayabilirsiniz.
VIN Pini : Voltage IN anlamına gelir, Arduino kartınızı bu pinden 5,9,12 volt gerilim ile besleyebilirsiniz. Bu pinden beslemek için güç kaynağınızın gnd ucunu da Arduino’nun herhangi bir gnd pinine bağlamanız gerekmektedir.
SPI Haberleşme Nedir ?
SPI (Serial Peripheral Interface) PIC programlama da sıklıkla kullanılan arduino’ nun da desteklediği bir haberleşme türüdür. Kısa mesafe destekler tam bir mesafe belirtilmiyor. (Ben 4 metreden sağlıklı veri alabiliyorum.) iletişim yöntemi olarak I2C e benzer. Arduino ile başka bir arduino veya sensörlerin haberleşmesi için kullanılır. Örnek olarak RFID. SPI haberleşme çok hızlıdır 8mbps civarında bir hız alınabilmektedir.
I2C Nedir ?
Inter-Integrated Circuit, Arduino’ da kullanılan seri haberleşme türüdür. 3 hat ile kullanılır bunlardan biri GND hattıdır. Yani 2 cihazın gndlerinin ortak olması gerekmektedir. Diğer hatlardan biri SDA diğeri SCL pinleridir bunlar Analog4 ve Analog5 pinleridir. Arduino da pin sayısı yetmiyor diyorsanız I2C modülleri bulunmaktadır bu modüller 8 giriş 2 çıkış şeklindedir. Yani 8 pinli 8 adet cihazı 8 adet I2C modülü ile tek bir arduino’ ya bağlayabilirsiniz.
ARDUINO UNO PROGRAMLAMA
- Arduino ailesinin diğer geliştirme kartları gibi, bu da eskiz yapmak için Arduino IDE yazılımını kullanır (Arduino programlarına eskiz denir)
- Arduino IDE üzerinde geliştirilen eskizler bilgisayarımıza USB portu ile bağlanarak direkt olarak aktarılabilir.
- IDE, Linux, MAC veya Windows işletim sistemiyle uyumludur
- Programlama dilleri C ve C ++ kullanılır
- Arduino'nun gereksinimlerimize göre bir şeyler yapmasını sağlamak için kullanabileceğimiz binlerce önceden yüklenmiş eskiz kolayca mevcuttur.
ARDUINO UNO'NUN KODLAMASI
Kod yazacağınız zaman hatırlamanız gereken önemli şeyler:
- Taslak bir Arduino programıdır
- Arduino taslağındaki tüm kodlar yukarıdan aşağıya doğru işleyecek
- Bu çizimler genellikle 10 parçaya bölünmüştür:
- Çizimimizde ne yapacağımızı açıklayan bir başlık ile başlar.
- Global değişkenler tanımlanır
- Sabit isimler farklı Arduino pinlerine atanır
- İlk değişkenler belirlenir ve yapılandırılır
- İlk değişkenler ayarlandıktan sonra, gerekirse değişkenlerin başlangıç koşullarını belirlediğimiz bir kurulum rutini ile başlar.
- Sadece bir kez çalıştırmak istediğimiz ön kodu çalıştırır ve bu noktada seri monitörü çalıştırmak için seri haberleşme başlatılır.
- Kurulum işlevinden döngü rutinine atlıyoruz ve bunun eskizin ana rutini olduğunu aklımızda tutuyoruz.
- Çizimimiz çalışmaya devam ettiği sürece döngü rutini tekrar tekrar yürütülecektir.
- Döngü rutinden sonra, birçok kullanıcı tanımlı işlev listelenir ve bu işlevler yalnızca kurulum veya döngü işlevinde çağrıldıklarında çalışır.
- Bu kullanıcı tanımlı işlevlerin yürütülmesi, bunların kurulum işlevinde mi yoksa döngü işlevinde mi çağrıldıklarına bağlıdır. Kullanıcı tanımlı bir işlev çağrıldığında, o işleve gider, onu çalıştırır ve ardından o işlevin çağrıldığı bir sonraki çizim satırına geri döner.
- Taslağın yalnızca 2 bölümü zorunludur, yani döngü ve kurulum işlevi
ARDUINO UNO'NUN KALKAN UYUMLULUĞU
Arduino UNO'muzun özel bir işlevi yerine getirmesini sağlamak için, kalkanları (kartın üstüne takılan pahalı bir adaptör) kullanacağız. Sayısız Arduino kalkanı mevcuttur. Kalkan seçimi, projemizin ihtiyacına ve işlevselliğine bağlıdır. Herhangi bir kalkan satın almadan önce, bu kalkanın çalışma voltajının kartımızın voltajını aşmadığından emin olun, aksi takdirde kartımızı tahrip eder. Bu nedenle, çalışma voltajından emin olduktan sonra, piyasada bulunan kalkanlardan herhangi birini kullanabiliriz. Yaygın olarak kullanılan önemli kalkanlardan bazıları aşağıda listelenmiştir:
- Ethernet Kalkanı
- Kablosuz Kalkan
- Motor Kalkanı
ARDUINO UNO UYGULAMALARI
Daha önce tartışıldığı gibi, en ekonomik ve ucuz kart Arduino UNO'dur. Bu nedenle çok sayıda uygulama bu kart tarafından desteklenmektedir. Arduino UNO kullanılarak geliştirilen bazı önemli uygulamalar aşağıda listelenmiştir.Fikir vermesi amaçlı değerlendirebilirsiniz.Zaten internet üzerinde de çok fazla kaynak bulunmaktadır.
- Yerleşik sistem
- Robotik
- Hareket kontrol donanımı
- DC motor kontrolü (H köprüsü kullanarak)
- Ardupilot (drone donanımı ve yazılımı)
- Savunma ve güvenlik savunması
- Otopark sayacı
- Ev ve endüstriyel otomasyon
- Game Duino (retro 2D oyunlar oluşturmak için)
- Su kalitesi testi
- Veri kaydediciler (bilimsel araştırmada kullanılır)
- Xoscillo (açık kaynaklı osiloskop)
- Trafik ışıkları için geri sayım sayacı
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.