Temrin Temrin No Analog Girişler 6 · analog giriş pininden gelen gerilimin sayısal...

2
Öğrencinin Adı Soyadı Numarası Sınıfı Ders Öğretmeni Değerlendirme Teknoloji İş Alışkanlığı İşlem Basamakları Süre Toplam Yazı ile Rakamla İmza Temrin Adı Temrin No Bilişim Alanı Elektronik Uygulamalar Dersi Uygulama Temrinleri (40P) (10P) (30P) (20P) DATÇA ŞEHİT ERSOY YORULMAZ MESLEKİ VE TEKNİK ANADOLU LİSESİ Analog Girişler 6 Uğur GÜRLEK 11 Bilişim Detaylı Bilgi: https://ugurlek.wordpress.com/arduino-mega-uno-nano/ Temrinleri indirme sayfası: https://ugurlek.wordpress.com/download/ Şimdiye kadar Arduino’muzun hep dijital giriş/çıkış pinlerini kullandık. Fakat siz de fark etmişsinizdir ki Arduino kartımızda bir de “Analog Input” kısmı mevcut. Bu pinleri kullanarak dijitalden analoğa dönüşüm yaparak voltaj okumamız mümkün. Analogdan Dijitale Çeviriciler (Analog-to-Digital Converter, ADC) Arduino kartımızdaki işlemcide, 10bit çözünürlüğe sahip analogdan dijitale dönüştürücü (ADC –analog to digital converter) mevcuttur. Peki, bu 10-bit ne anlama geliyor? Bildiğimiz üzere Arduino’muzun mikrokontrolcüsü 5V gerilimle çalışmakta. Bu mikrokontrolcüde sahip olduğunu söylediğimiz 10-bit ADC, 0V ile 5V arası gerilimleri 2 10 = 1024 adım hassasiyet ile okuyabilir. Yani analog input pinle- rinden birine vereceğimiz 0V gerilim bize 0 değerini; aynı şekilde 5V gerilim ise 1023 değerine denk düşüyor. Eğer 5V’tan daha düşük bir gerilimi referansımızın üst noktası olarak almamız gerekirse, Arduino üzerinde bulunan AREF pinini kullanmamız ve kodda küçük bir değişiklik yapmamız gerekir. Bu pine herhangi bir gerilim uygulamadığımız takdirde ADC’miz 0-5V arasında çalışacaktır. Potansiyometre Aslında çevremizde her gün kullandığımız cihazların nere- deyse hepsinde mevcut olan bir devre elemanıdır. Örneğin, müzik setimizin ses seviyesini değiştirmek için çevirdiğimiz düğme bir potansiyometredir. En basit açıklama ile potansi- yometre, değerini elimizle çevirerek ayarladığımız bir direnç- tir. Mikrokontrolcü uygulamalarında ise genellikle gerilim bölücü olarak kullanılır. Potansiyometreyi bir yöne çevirdiği- mizde yan yana olan iki bacağının direnci değişir. Bunu bir multimetreyle ölçerek görebiliriz. Biz bu uygulamamızda ise 0 ile 5V arasında voltaj değişimini sağlamak için potansiyo- metre kullanacağız. Uygulamamızın ilk adımında sadece analog giriş pininden gelen gerilimin sayısal karşılığını seri porttan okuma işlemini yapacağız. Bu şekilde bağlantı yapıl- dığında, potansiyometremizin orta bacağında 0-5V arası değişen bir gerilim alabiliriz. Şimdi yazacağımız kodla bu gerilimin sayısal karşılığını seri porttan görebileceğiz: int potPin = A0; void setup() { Serial.begin(9600); Serial.println(”Analog input okuma örneği.”); } void loop() { int deger = analogRead(potPin); Serial.println(deger); delay(100); } Bu yazdığımız kodu Arduino’muza yükledikten sonra seri port ekranını açıyoruz ve po- tansiyometreyi çevirmeye başlıyoruz. Değerlerdeki değişimi görebilirsiniz. Şimdi ise analog giriş pininden okuduğumuz değere göre çoklu LED yakma uygulamasını yapalım. Bu devre ile kullanacağımız kodu diğer sayfamızda bulabilirsiniz. Gerekli malzemeler: Arduino NANO, Breadboard, 74HC595 shift register entegresi, 8 adet 220 direnç, 8 adet LED, 10 kpotansiyometre, İki ucu erkek jumper kablo

Transcript of Temrin Temrin No Analog Girişler 6 · analog giriş pininden gelen gerilimin sayısal...

Page 1: Temrin Temrin No Analog Girişler 6 · analog giriş pininden gelen gerilimin sayısal karşılığını seri porttan okuma işlemini yapacağız. Bu şekilde bağlantı yapıl-dığında,

ÖğrencininAdıSoyadıNumarasıSınıfı

Ders Öğretmeni

Değerlendirme

Teknolojiİş Alışkanlığı

İşlem

Basamakları

Süre

Toplam

Yazı ile Rakamla

İmza

Temrin

Adı

Temrin No

Bilişim Alanı Elektronik Uygulamalar DersiUygulama Temrinleri

(40P)(10P)

(30P)

(20P)

DATÇA ŞEHİT ERSOY YORULMAZ MESLEKİ VE TEKNİK ANADOLU LİSESİ

Analog Girişler 6

Uğur GÜRLEK

11 Bilişim

Detaylı Bilgi: https://ugurlek.wordpress.com/arduino-mega-uno-nano/ Temrinleri indirme sayfası: https://ugurlek.wordpress.com/download/

Şimdiye kadar Arduino’muzun hep dijital giriş/çıkış pinlerini kullandık. Fakat siz de fark etmişsinizdir ki Arduino kartımızda bir de “Analog Input” kısmı mevcut. Bu pinleri kullanarak dijitalden analoğa dönüşüm yaparak voltaj okumamız mümkün.Analogdan Dijitale Çeviriciler (Analog-to-Digital Converter, ADC)Arduino kartımızdaki işlemcide, 10bit çözünürlüğe sahip analogdan dijitale dönüştürücü (ADC –analog to digital converter) mevcuttur. Peki, bu 10-bit ne anlama geliyor? Bildiğimiz üzere Arduino’muzun mikrokontrolcüsü 5V gerilimle çalışmakta. Bu mikrokontrolcüdesahip olduğunu söylediğimiz 10-bit ADC, 0V ile 5V arası gerilimleri 210= 1024 adım hassasiyet ile okuyabilir. Yani analog input pinle-rinden birine vereceğimiz 0V gerilim bize 0 değerini; aynı şekilde 5V gerilim ise 1023 değerine denk düşüyor. Eğer 5V’tan daha düşük bir gerilimi referansımızın üst noktası olarak almamız gerekirse, Arduino üzerinde bulunan AREF pinini kullanmamız ve kodda küçük bir değişiklik yapmamız gerekir. Bu pine herhangi bir gerilim uygulamadığımız takdirde ADC’miz 0-5V arasında çalışacaktır.

PotansiyometreAslında çevremizde her gün kullandığımız cihazların nere-deyse hepsinde mevcut olan bir devre elemanıdır. Örneğin, müzik setimizin ses seviyesini değiştirmek için çevirdiğimiz düğme bir potansiyometredir. En basit açıklama ile potansi-yometre, değerini elimizle çevirerek ayarladığımız bir direnç-tir. Mikrokontrolcü uygulamalarında ise genellikle gerilim bölücü olarak kullanılır. Potansiyometreyi bir yöne çevirdiği-mizde yan yana olan iki bacağının direnci değişir. Bunu bir multimetreyle ölçerek görebiliriz. Biz bu uygulamamızda ise 0 ile 5V arasında voltaj değişimini sağlamak için potansiyo-metre kullanacağız. Uygulamamızın ilk adımında sadece analog giriş pininden gelen gerilimin sayısal karşılığını seri porttan okuma işlemini yapacağız. Bu şekilde bağlantı yapıl-dığında, potansiyometremizin orta bacağında 0-5V arası değişen bir gerilim alabiliriz. Şimdi yazacağımız kodla bu gerilimin sayısal karşılığını seri porttan görebileceğiz:

int potPin = A0; void setup() Serial.begin(9600); Serial.println(”Analog input okuma örneği.”); void loop() int deger = analogRead(potPin); Serial.println(deger); delay(100);

Bu yazdığımız kodu Arduino’muza yükledikten sonra seri port ekranını açıyoruz ve po-tansiyometreyi çevirmeye başlıyoruz. Değerlerdeki değişimi görebilirsiniz. Şimdi ise analog giriş pininden okuduğumuz değere göre çoklu LED yakma uygulamasını yapalım.

Bu devre ile kullanacağımız kodu diğer sayfamızda bulabilirsiniz.

Gerekli malzemeler: Arduino NANO, Breadboard, 74HC595 shift register entegresi, 8 adet 220 Ω direnç, 8 adet LED, 10 kΩ potansiyometre, İki ucu erkek jumper kablo

Page 2: Temrin Temrin No Analog Girişler 6 · analog giriş pininden gelen gerilimin sayısal karşılığını seri porttan okuma işlemini yapacağız. Bu şekilde bağlantı yapıl-dığında,

ÖğrencininAdıSoyadıNumarasıSınıfı

Ders Öğretmeni

Değerlendirme

Teknolojiİş Alışkanlığı

İşlem

Basamakları

Süre

Toplam

Yazı ile Rakamla

İmza

Bilişim Alanı Elektronik Uygulamalar DersiUygulama Temrinleri

(40P)(10P)

(30P)

(20P)

DATÇA ŞEHİT ERSOY YORULMAZ MESLEKİ VE TEKNİK ANADOLU LİSESİ

Uğur GÜRLEK

11 Bilişim

Detaylı Bilgi: https://ugurlek.wordpress.com/arduino-mega-uno-nano/ Temrinleri indirme sayfası: https://ugurlek.wordpress.com/download/

int potPin = 0;int latchPin = 5;int clockPin = 6;int dataPin = 4;int leds = 0;

void setup() pinMode(latchPin, OUTPUT); pinMode(dataPin, OUTPUT);

Bu kod, potansiyometremizin voltaj değerini 8 LED için ayrı adımlara bölerek, gerilim arttıkça daha fazla LED’in yanmasını sağlıyor. Bu uygulamadaki potansiyometreyi, analog çıkışlı başka elemanlarla değiştirerek sizler de farklı uygulamalar yapabilirsiniz. Örneğin LM35 sıcaklık sensörüyle bir sıcaklık seviyesi göstergesi ya da bir mikrofon ile birlikte kullanacağınız preamfi devresiyle ses şiddeti göstergesi (vumetre) yapmak mümkün. Biz de bir sonraki uygulamamızda ışık şiddetine göre artan sayıda LED yakma işlemini yapacağız. Bu nedenle devrenizi Breadboard üzerinden sökmeyin.

pinMode(clockPin, OUTPUT);

void loop() int deger = analogRead(potPin); int yanan_ledsayisi = deger / 114; //1023 / 9 leds = 0; for (int i = 0; i < yanan_ledsayisi; i++)

bitSet(leds, i); registeraYaz();

void registeraYaz() digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, leds); digitalWrite(latchPin, HIGH);

Tamamlayıcı Sorular1. ADC nedir? Bu işlemi nasıl yapmaktadır? İzah ediniz.2. Potansiyometre nedir? Günlük hayatımızda nerelerde ismini bilmeden kullanmaktayız? Yazınız. Elektronikteki sembolünü çiziniz.3. Programın ilk satırlarındaki “int”’in görevi sizce nedir?4. “void setup()” komutunun görevi nedir?5. “void loop( )” komutunun görevi nedir?6. Programdaki “ for”’un görevi sizce nedir?7. “deger“ değişkeni içindeki sayı niçin 114 gibi bir rakama bölünüyor?