void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

Benzer belgeler
Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

LED YAKMAK. Circuit 2. Kablo LED. Direnç. Arduino LED. Direnç (330ohm)

Online Elektronik Devre Simülasyonu 123D Circuits

Elif İLİKSİZ. Keziban TURAN. Radio Frekanslarla Hareket Eden Araç

IOT UYGULAMALARINA GİRİŞ

Örnek. int analogpin = 3; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogread(analogpin); Serial.

VTIY DERS-4 YARDIMCI NOTLARI -2018

DENEY-2. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

ARDUİNO PROGRAMLAMA 1.ARDUİNO YU TANIMAK

1- KULLANILACAK DEVRE ELEMANLARININ TANITILMASI

ARDUINO NEXTION UYGULAMASI. Bu makale, Arduino UNO kartı ile Nextion HMI ekranlarının nasıl kontrol edildiğini anlatmaktadır.

Mikroişlemciler ve Programlama Dersi- ARDUINO. Sensörler ve Analog-Digital Çeviriciler İle Çalışma

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

Yazar Hakkında: Hasbi SEVİNÇ

Yazar Hakkında: Hasbi SEVİNÇ

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK SİSTEMLER LABORATUVARI 1

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

PROJE RAPORU. Proje adı: Pedalmatik 1 Giriş 2 Yöntem 3 Bulgular 6 Sonuç ve tartışma 7 Öneriler 7 Kaynakça 7

Melih Hilmi ULUDAĞ. Yazılım Mühendisi Mekatronik Mühendisi. a aittir.

Arduino Temel Bilgiler

Bilgisayar ile Nasıl İletişim Kurulur?

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

BLGM423 Gömülü Sistem Tasarımı

DENEY-1. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

ARDUINO NEDİR? Nasıl Kullanılır? Nasıl Programlanır?

TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ MİKROBİLGİSAYAR TABANLI SİSTEM TASARIMI DERSİ

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ GÖMÜLÜ SİSTEMLER DENEY FÖYÜ

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

Terminal Üzerinden Led Kontrol Uygulaması

UYGULAMA 1 24V START CPU V LO. Verilen PLC bağlantısına göre; START butonuna basıldığında Q0.0 çıkışını aktif yapan PLC programını yazınız.

7. Port Programlama. mikroc Dili ile Mikrodenetleyici Programlama Ders Notları -42- Şekil 2.1. Atmega16 mikrodenetleyici pin şeması

HSancak Nesne Tabanlı Programlama I Ders Notları

TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ MİKROBİLGİSAYAR TABANLI SİSTEM TASARIMI DERSİ

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

2019

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

web-sitesi : satış : teknik destek : tel : IM-SMO20 Ultrasonik Mesafe Sensörü Özellikler

Hızlı ve Kolay Arduıno. Volkan Kanat

Deneyde Gerekli olan Malzemeler: Arduino Uno, 8.2 k direnç, buton, bağlantı kabloları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Hacettepe Robot Topluluğu

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

İNTERNET TABANLI PROGRAMLAMA

BİLG Dr. Mustafa T. Babagil 1

BİLGİSAYAR BİLİMİ DERSİ (KUR-2)

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Mikroişlemciler ve Mikrodenetleyiciler

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BUTON KONTROLÜ. Pull-Down Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=1 Butona basıldığında Giriş=0

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

FP52 PROXIMITY KART OKUYUCUSU KULLANIM KILAVUZU

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Nice MC424. Kontrol Ünitesi

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

ALGORİTMA VE PROGRAMLAMA II

SCRATCH İLE ARDUİNO PROGRAMLAMA

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

idea rsbasic KOMUTLARI

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Android Ders Notları

KİRLİ BOR YAĞI TEMİZLEME MAKİNASI

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Akış Kontrol Mekanizmaları

Sistem Programlama Deney 1

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

SEESAW 24V DC BARİYER KONTROL KARTI KULLANIM KİTABI V 2.0

LCD (Liquid Crystal Display )

Zaman Değişkeni Tanımlama ve Yürürlükteki Zaman Değerini İfade Etme

OĞUZHAN ÇİFTÇİ DENEYLERLE ELEKTRONİK. Arduino Destekli

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

MATLAB/Programı Dallandıran İfadeler

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

KOD PARÇACIKLARI 1 / 5

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

DENEY-7. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

Transkript:

ARDUİNO PROGRAMLAMA

fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız. fonksiyonu: Diğer programlama dillerinden alışık olduğumuz main() fonksiyonu gibidir. Farklı olarak loop fonksiyonu işlevi bitince tekrar baştan başlar yani sonsuz bir döngüdür aslında. Arduino Programlama Şeması: // İlk başta kütüphaneleri ekleyebiliriz // Global cinsteki değişkenlerimizi tanımlayabiliriz // Fonksiyonlarımızı burada yazabiliriz // ilk başta çalışmasını istediğimiz kodlar buraya yazılır // sonsuz döngü şeklindeki main fonksiyonumuz 8 // programı buraya yazıyoruz Uygulama:1 10.Pine Bağlı olan led 1 Saniye aralıkla yanıp sönecektir. int LED = 10; // Pin numarası olarak 10 değerine yazmak yerine LED olarak tanımlandı pinmode(led, OUTPUT); digitalwrite(led,high); delay(1000); digitalwrite(led,low); delay(1000); // LED pini yani Arduino nun 10. Ayağı çıkış yapıldı // LED in bağlı olduğu pinden 5 volt gerilim sağlandı // 1000 ms yani 1 saniye program duruyor // LED söndürülüyor // bir saniye bekliyoruz

Arduino ile Buton Kullanımı Pull-Down Bağlantı Butona basıldığında 5 Volt arduinonun input ayağına ulaşır.(lojik 1 ) Butondan elimizi kaldırdığımızda input ayağı 10K lık direnç üzerinden şaselenir. (Lojik 0) Pull-up Bağlantı Butona basılmadığı durumlarda arduinonun input ayağı 5 volttadır.(lojik 1) Butona basıldığında akım arduinonun input ayağı yerine toprağa ulaşmaktadır. Pull-Down direnç sisteminin tam tersi şeklinde çalışmaktadır. Direncin konulma nedeni butona basıldığında 5 Voltun doğrudan toprağa şaseye ulaşmasını engellemektir. Genellikle 10K değerinde direnç kullanılmaktadır. Koşullar (if-else-elseif): Yazılım dillerinin en temel komutlarından birisidir. Elinizde bir durum var ve bu durum doğru ise a işini yapmasını eğer yanlış ise b işini yapmasını istiyorsanız, bu kod sistemi tam bu işe uygun. Kısaca kod şemasına bakalım. İf( a == 5 ) Else //Buraya doğru durumda çalışması istenilen kodlar A nın 5 olmadığı durumda çalışacak kodlar. a == 5 burada bizim koşulumuzu oluşturmaktadır. Dikkat edilmelidir ki iki tane eşittir kullanılmaktadır. Yani denk midir anlamına gelmektedir. Koşul alanında kullanabileceğim ifadeler, Koşullarımıza else kullanımı zorunlu değildir. Sadece if kullanımı yapılabilir, böylece koşul doğru değilse ekstradan bir kod çalışmaz. Birden fazla koşulumuz var ise elseif ile yeni koşullar ekleyebiliriz.

İf( a == 1 ) // a = 1 durumunda burası çalışır elseif (a == 2 ) // a = 2 durumunda burası çalışır elseif (a == 3 ) // a = 3 durumunda burası çalışır Uygulama:2 2. Pine bağlı olan butona basıldığı sürece 3.Pindeki ledi yakan program. int ButonDurumu = 0; // Butonun durumu adlı değişken tanımlandı ilk değeri sıfır atandı. pinmode(2, INPUT); pinmode(3, OUTPUT); // Butonun bağlı olduğu pini çıkış olarak ayarlıyoruz. // Ledin bağlı olduğu pini çıkış olarak ayarlıyoruz. Uygulama:3 ButonDurumu = digitalread(2); if (ButonDurumu == HIGH) digitalwrite(3, HIGH); else digitalwrite(3, LOW); // Butonun basılı olup olmadığını kontrol ediyoruz. // Buton basılı ise bize HIGH değil ise LOW olarak geri dönmektedir (1 veya 0) // Buton basılı mı? // 3.Pine Lojik 1 gönderildi. Led yandı. // Buton basılı değil ise ledi söndür 5 Led in sırayla döngüsel olarak yanıp sönmesi. (Karaşimşek_1).. Amatör programlama //9,10,11,12,,13. pinler çıkış olarak tanımlandı. pinmode (9, OUTPUT); pinmode (10, OUTPUT); pinmode (11,OUTPUT); pinmode (12, OUTPUT); pinmode (13, OUTPUT); //9.Ledi yak, bekle 9'u söndür 10'u yak bekle, 10'söndür 11'i yak bekle...13'ü söndür. digitalwrite (9, HIGH); delay (100); digitalwrite (9, LOW); digitalwrite (10, HIGH);

digitalwrite (10, LOW); digitalwrite (11, HIGH); digitalwrite (11, LOW); digitalwrite (12, HIGH); digitalwrite (12, LOW); digitalwrite (13, HIGH); digitalwrite (13, LOW); digitalwrite (12, HIGH); delay (100); digitalwrite (12, LOW); digitalwrite (11, HIGH); digitalwrite (11, LOW); digitalwrite (10, HIGH); digitalwrite (10, LOW); digitalwrite (9, HIGH); // Döngüsel olarak devam eder. For döngüsü: Yazdığımız kodların belli bir adet veya süre tekrar etmesini isteyebiliriz. Bunun için döngüler kullanmalıyız. For(int i =0; i < 10; i ++) // burası 10 kere okunacak // program buraya her uğradığında i değeri bir arttırılacak // i değeri 10 a ulaşana kadar döngü devam edecek While döngüsü: For gibi while kodları da döngü amacıyla kullanılır. b = 20; while( b > 10) // b değişkeninin 10 dan büyük olduğu durumlarda döngü devam eder b = b 1 ; // her döngüde b nin değerini bir azalttık // dikkat edilmelidir ki eğer b nin değerini değiştirmeseydik // döngü koşulu hep doğru olacağından program burada takılı kalacaktı

Uygulama:4 10.pine bağlı olan ledi 5 kere yakıp söndüren program. void setup () pinmode(10, OUTPUT); // 10. Pin çıkış yapıldı. for(int i=1; i<6;i++) digitalwrite(10,high); delay(500); digitalwrite(10,low); delay(500); Uygulama:5 8. Pindeki ledi 4 kere yakıp söndüren programı yazınız. void setup () pinmode(8, OUTPUT); // 8. pin çıkış yapıldı. for(int i=15; i>5;i=i-3) // i'nin değeri 15,12,9,6 için toplam 4 kere led yanıp sönecek digitalwrite(8,high); delay(500); digitalwrite(8,low); delay(500);

Uygulama:6 5 Led in sırayla döngüsel olarak yanıp sönmesi. (Karaşimşek_1).. Profesyonel programlama const int ledpini[] = 9,10,11,12,13; //int tipinde 5 elemanlı dizi tanımlandı. void setup () for(int i=0; i<5;i++) pinmode(ledpini *i+, OUTPUT); // LED pinlerini çıkış olarak tanımladık for(int i=0; i<5; i++) digitalwrite(ledpini[i],high); digitalwrite(ledpini[i],low); for(int j=4;j>-1; j--) digitalwrite(ledpini[j],high); digitalwrite(ledpini[j], LOW); Arduino ile SeriPort Üzerinden Bilgisayara Veri Yollama Gerek arduinonun kontrolü gerekse işlenen değerlerin kullanıcıya aktarılması için arduinomuz ile bilgisayarımız arasındaki haberleşmeyi yapmamız gerekir. Bu haberleşme arduinonun RX ve TX ayaklarından gerçekleşecektir. Haberleşme için her zamanki gibi arduinoyu USB üzerinden bilgisayarımıza takmamız yeterli olmaktadır. Haberleşme için setup fonksiyonumuza başlatma kodunu yazmayı unutmayalım. Aşağıdaki kod ile bilgisayara her saniye artan sayımızı yolluyoruz. Uygulama:7 int sayici = 32760; Serial.begin(9600); // sayici adında ve ilk değeri 32760 olan bir değişken tanımlandı. // Bilgisayar ile arduinomuzun haberleşmesini başlatıyoruz. // Bilgisayarın ve arduinonun aynı hızda çalışması için 9600 yazdık. // Yani saniyede 9600 tane bit transferi olacaktır. Serial.print("Sayicimizin degeri= "); // Ekrana mesajımızı yazdırıyoruz. Serial.println(sayici); // sayaç değerimizi ekrana yazdırıp yeni satıra geçiyoruz. delay(1000); // Bir saniye bekle sayici = sayici+1; //Sayıcının değerini bir arttır.

Not: İnt veri tipi maksimum +32767 değerini alır sayacın değeri bu rakamı geçtiğinde -32768 değeri oluşacaktır. Dolayısıyla veri tipleri ve değişkenler planlanırken limitlerine dikkat edilmesi gerekir. Uygulama:8 2.pindeki butona her basıldığında sayaç değerini 0 dan başlayıp bir arttıran ve seri bilgi olarak gönderen program. const int buttonpin = 2; // Butonun pin numarası int sayici = 0; //sayacimiz int ButonDurumu = 0; // Butonun durumu pinmode(buttonpin, INPUT); //butonpin olarak adlandırılan 2 nolu pin giriş olarak tanımlandı Serial.begin(9600); //Seri iletişim tanımlaması ButonDurumu = digitalread(buttonpin); //2.pin (buton pini) değeri lojik 1 veya lojik 0 değişkene aktarıldı if (ButonDurumu == HIGH) //Eğer butona basıldıysa sayici ++; // sayici = sayici + 1; Serial.print("Sayicimizin degeri= "); // Ekrana mesajımızı yazdırıyoruz. Serial.println(sayici); // sayaç değerimizi ekrana yazdırıp yeni satıra geçiyoruz. while(butondurumu == HIGH) // Butondan elini çekene kadar program burada kalır // Böylece butona her basıldığında sadece bir kere değer arttırılır ButonDurumu = digitalread(buttonpin); While korumasına rağmen butona bir kez basıldığı halde birkaç artım olması daha iyi çözüm bulunması gerektiğini göstermektedir.