Arduino öğrenirken yol haritası (1)

Genelde Arduino nedir sorusundan sonra “Nasıl kullanacağım, neyi öğreneyim?”  konusunda bir kafa karışıklığı yaşayan dostlarımıza robot çalışmalarına başlamadan önce kolaylık olması için bir Arduino öğrenim yol haritası ilk bölümünü aşağıda bulabilirsiniz.

Aşağıdaki çalışmaları yapmadan önce Arduinoyu bilgisayarınıza yüklemiş olmanız ve en az bir arduino bordunuzun da olması gerekmektedir.

Aruino seçimi veya nasıl yükleneceği konusundaki konuları şuradan http://arduinoturkiye.com/kategori/arduinoya-giris/ bulabilirsiniz.

Bu yazıdaki içerik ve resimler arduino.cc den alınarak Türkçeleştirilmiştir.

Baştan yanılmamanız için şunu belirteyim “Arduino Basittir ama kolay değildir”.

Yıllarını elektronikte harcamış bir çok abimiz Arduinoda 1 satırlık komutu görüp, kendi yazdıkları 100 satır kod karşısında, hem dudak bükerler, hem küçümserler, hemde kıskanırlar.

Önemli olan işi yapmaksa Arduino bunu size basit yoldan sağlar ancak bir çok temel elektronik bilgisi ve program yazma bilgisini de baştan bildiğinizi farzeder.

Bu baştan bilmeniz gereken temel bilgi olmadan da arduino ile bir şeyler yaparsınız ancak, internette bulduğunuz onun bunun kodunun elinde oyuncak olursunuz kapı kapı forumları dolaşarak kodunuzu düzelttirecek insanların peşinden koşarak zaman, para kaybeder en sonunda arduinoyu bir kenara atar (hayallerinizi de) unutur gider başarısız olursunuz. Biz bunu istemeyiz.

O halde buyrun buradan…

Temel Fonksiyonlar / Core Function

1. İlk bilgiler / Basics
Kodlarda geçen komutların işlevi araştırmayı teşvik için özellikle anlatılmamıştır.
Kodların içinde geçen "// bla bla" şeklindeki işret ve laflar programın tek satırlık açıklamalarıdır kod değildir.
Aynı şekilde

/*
programın açıklamaları
bu şekilde de birden fazla satırda da yazılabilir
*/

1.1 Minimum temel kod / BareMinimum
Arduninoda programlara sketch adını veriyorlar setup() ve Loop() bölümlerinin programınızda olması gerekmektedir.


void setup() {
// ilk değerler ve ilk başta bir kere çalışacak kodlar
}
void loop() {
// devamlı tekrarlanarak sırasıyla çalışacak  kodları burada yazıyoruz
}


1.2 Led yakıp söndürme / Blink

Bunu mutlaka yapın. Süreleri değiştirerek farklı yanma hızlarını keşfedin…
ExampleCircuit_bbExampleCircuit_sch_bb

/*
Blink
Led yakıp söndürür
*/
// Pin 13 e LED bir direnç ile bağlanmıştır
int led = 13;
//reset butonuna basıldığında ilk önce setup bir kez çalışır
void setup() {
// ledin bağlandığı pin çıkış olarak ayarlanıyor.
pinMode(led, OUTPUT);
}
// sonsuz döngü
void loop() {
digitalWrite(led, HIGH);   // ledi aktif yap
delay(1000);               // 1 saniye bekle
digitalWrite(led, LOW);    // ledi söndür
delay(1000);               // 1 saniye bekle
}

Şunları kullandık: pinMode, digitalWrite, delay

1.3 Buton ve dijital port okuma / Digital Read
Buton okumak bir çok durumda lazım olacak bir robotuun ileri geri işlemlerinde kullanacağız mesela.
button
button_sch

/*
Pin 2 yi okur sonucunu serialmonitor den gösterir
*/
// pin 2 ye buton bağladık ve tanımladık
int pushButton = 2;
// setup bir kez çalışır
void setup() {
// seri portumuzu 9600 baud a ayarladık
Serial.begin(9600);
//butonu okuyacağımız pini giriş olarak ayarladık
pinMode(pushButton, INPUT);
}
//sonsuz döngü
void loop() {
//buton pini oku
int buttonState = digitalRead(pushButton);
// butonun değerini buttonState değerinden ekrana seri porttan yolla
Serial.println(buttonState);
delay(1);        // biraz bekle
}

Şunları kullandık: pinMode, serial.Begin, digitalRead, Serial.println

1.4 Potans okuma / Analog Read

Hayatta hiç bir şey buton değerleri gibi bir veya sıfır değil. Daha neler göreceksiniz denemeden bilemezsin.
AnalogReadSerial_BBAnalogReadSerial_sch

 


/*
10K lık bir potansiyometreyi Arduinoya bağlayın
*/
// ilk kurulum değerlerini burada yazıyoruz
void setup() {
// seri portumuza 9600 baud değerini veriyoruz
Serial.begin(9600);
}
// sonsuz döngü
void loop() {
// pin 0 dan analog değer okuyoruz
int sensorValue = analogRead(A0);
// sensor değerini ekrana serial port üzerinden yazıyoruz
Serial.println(sensorValue);
delay(1);        // biraz bekle
}

Şunları kullandık: serial.Begin, analogRead, Serial.println, delay

1.5 Led parlaklığı kontrol / Fade
Ledi yaktınız parlaklığını da kontrol etmeyi ihmal etmeyin.
İleride servo motorların kontrolünde de aynı yöntemi kullanacağız.

simplefade_bbsimplefade_pin9_schem


/*
Pin 9 daki ledin parlaklığını değiştirir
*/

int led = 9;           //ledin bağlandığı pin
int brightness = 0;    // ilk parlaklık değeri sıfır yaptık
int fadeAmount = 5;    // parlaklık adımları değeri. her seferinde 5 birim artar azalır demek.
//ilk kurulum değerleri. Resetten sonra bir kez yapılır.
void setup()  {
// pin 9 u çıkış yaptık
pinMode(led, OUTPUT);
}
// sonsuz döngü
void loop()  {
// pin 9 parlaklığını ayarla
analogWrite(led, brightness);// parlaklığı değiştir
brightness = brightness + fadeAmount;
// parlaklık değerleri sona gelince mantığı değiştir
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// gözümüzün değişikliği algılaması için 30 milisaniye bekle
delay(30);
}

Şunları kullandık: pinMode, analogWrite, delay


1.6 Voltaj okumak / Analog Read

Arduino ile voltaj okuyarak hassas işler yapmamıza olanak verir. Yukarıdaki Pot okuma programından faydalanarak voltajları okuyabiliriz. Yerleşim şekli ve şeması şöyle

AnalogReadSerial_BBAnalogReadSerial_sch

/*
Pin A0 a potansın orta ucu bağlanır ve okuma yapılır. voltaj değeri hesaplanır.
*/
// ilk değerler
void setup() {
// seripotun hızı 9600 baud yapılır
Serial.begin(9600);
}
// sonsuz döngü
void loop() {
// analog pin 0 daki değer okunur ve sensorvalue ye konur
int sensorValue = analogRead(A0);
// analog okunan değerler 0 - 1023 arasındadır.
//sistem 5v ile beslendiğinden 5.0/1023 değeri ile okunan değeri çarparsak voltaj değeri bulunur
float voltage = sensorValue * (5.0 / 1023.0);
// okunan voltajı ekrana seri port üzerinden yaz.
Serial.println(voltage);
}

Şunları kullandık: serial.Begin, analogRead, Serial.println, delay


İlk temel işleri bitirdik, artık ilerideki maçlara bakacağız.


Yazının 2. bölümünü allah bilir ne zaman yazarım artık 😉

 

 

Ömer Koman

Elektronik hakkında ilk hatırladığım şey 5-6 yaşlarımdayken babamın arkadaşı radyocunun tezgahına burnumu dayayıp lambalı radyoları tamir edişini izlemekti...

412 comments

  1. Samet dedi ki:

    Kodlara baktım baya kolay geldi.(Temel düzeyde C biliyorum)
    Zor tutuyorum kendimi Arduino sipariş etmemek için. Kuvvetle muhtemel alıcam, inşallah vizeler yalan olmaz 🙂

  2. […] yaptıktan sonra arduino öğrenmek için yaptığımız araştırmalar sırasında http://arduinoturkiye.com/arduino-ogrenirken-yol-haritasi-1/   sitesine rastgeldik ve dökümanlarını incelemeye başladık. Dökümanlardan edindiğimiz […]

  3. cengizhan dedi ki:

    hocam çok sağol başlangıç için çok güzel bilgiler olmuş 🙂

  4. Tahsin Değirmenci dedi ki:

    Emeğinizi takdirle irdeledim. Gerçekten bunca cabayı gösteriyor olmanız takdiri sonuna kadar hak ediyor.İnanıyorum ki siz ve sizin gibiler sayesinde memlekette ARGE tabanlı elektrik elektronik endüstrisi yolunu daha hızlı ve güvenli bir şekilde alacaktır.Emeğinize sağlık.

  5. Okan dedi ki:

    İyi günler. Ben arduino da yeniyim. Kodlar baktım da sürekli “seri portumuzu 9600” neden ayarladık ?

    • Ömer Koman dedi ki:

      okan; yukarıdaki örneklerde kullanılan Serial.begin(9600) komutu bilgisayarla arduino arasında seri port üzerinden veri iletimi olacağını ve hızının 9600 baud olacağını belirlemektedir. ileteceğin verinin yoğunluğuna göre standart hızlarladan birini seçebilirsin. bazı satandart hızlar 2400, 9600, 14400, 33600,115000 gibi değerler seçilebilir. hız ayarları hem pc tarafında hem arduino tarafında aynı olmalıdır. daha detay istersen baud; anlık ses tonundaki değişim miktarıdır, ne kadar çok ton değişimi algılanırsa o kadar çok veri okunmuş olur. iletilen veri miktarı ((1/9600)*10)/8 bit) tir. bir byte lık data 8 bit tir ve protokole göre her 8bitin başına ve sonuna 1 er bitlik başlangıç bitiş işaret bitleri de eklenir ve öyle yollanır. bu tür seri iletişime asenkron veri iletiğimi denir. alıcı taraf her zaman bir start biti bekler ve bunu tespit ettikten sonra kalan 8 bit veri ve stop biti aldıktan sonra sıradaki diğer baytın start bitini bekler ve böyle sonsuza kadar gider. işte öyle 🙂 yukarıdaki bazı örneklerde arduino ile pc arasında iletişim olacaksa Serial.begin(9600) komutu ile iletişimi seçmiş olduk ve pc den arduinonun Serial.println(“buraya yazdıkların pcden okunur”) komutu ile yolladıklarını izlemiş olduk.

      • kadir dedi ki:

        hocam yapay el kodu gönderirmisiniz 2 aydır uğraşıyorum ne olursunuz. başım ağrıyo artık sınavlar başladı bana gönderin lütfen

        • Ömer Koman dedi ki:

          yapay el kodumuz yok faceook taki arduino forumlarında yapanları görmüştüm oradan bulmayı deneyin

  6. Ömer Koman dedi ki:

    9600 iyidir takma kafana. projeye odaklan sen…

  7. Burhan GÜLLÜ dedi ki:

    9600 ne amaçla kullanılmış Ömer hocam. arkadaşın anlamak istediği şeyi ben de anlayamadım. 9600 bildiğim kadarıyla iletişim hızında kullanılan baudrate hız değeri ama burada ne iş yaptığını açıkçası anlayamadım. neyle iletişim kuruyoruz da bu 9600 ü yazıyoruz? Yoksa bu şey 9600, pic programlamaya başlanıldığında başlangıçta yazılan org komutu gibi sürekli yazılan birşey mi : )

    • mustafa dedi ki:

      9600 genelde bu hız kullanılıyor dilersek daha düşük veya daha yüksek hızları seçebilirsiniz.Tamamen programcıya kalmış bir olay.Ne için kullanıldığını Ömer hocam yazmış zaten Arduino ile Pc arasında seri haberleşme için tabi ki.Yapılan devrede Analog sinyali bir şekilde görmemiz lazım devrede LCD bağlı olmadığına göre ölçülen değer Pc ekranından açılan küçük ekrandan görüntülenmesi için.

    • oguzhan dedi ki:

      neden arduinonun otomatik belirlediği baud değerini kullanmadı da 9600 yaptı baud değerini açıklar mısınız ?

      • Ömer Koman dedi ki:

        merhaba 2 ustteki yorumları okuyun istediğiniz hızı seçebilirsiniz bilgisayar ıle aynı olsun yeter arduıno otomatık hız seçmez hem ide de hem mıkro kodun ıcınde siz belirlemenız lazım. seri iletişim hızında değer ne kadar yukselirse ıletişim mesafesi kısalır mesela 115200 hız ıcın ıletişim mesafesi 1-3mt arasından fazlası onerılmez hattakı sınyal bozulmaları çok artar 9600 hızı hem mesafe hemde taşınan veri miktarı bakımında tatmın edıcı ve mıkroişlemcide fazla zaman kaybına neden olmadıgını farzedebılırsınız.

  8. Burhan GÜLLÜ dedi ki:

    Ayrıca yıllarca pic programlamayla uğraşmış biriyim bu Arduino bana hiç cazip gelmedi açıkçası. Bu daha çok yeni başlayanların, port lojik zamanlamalarının önemli olmadığı projeler yapan şahısların veya öğrencilerin işine yarayacak bir gömülü sistem ayrıca yer de kaplıyor. pic’teki gibi işin temeline inmedikçe programlama yaparken rahat edemiyorum ben 🙂 Arduino’da herşey programlamanın basit olması için C dili gibi kısaltılmış hazır kütüphanelerden geliyor iyi hoş ama komut işlenirken geçen süreler kaybedilen süreler belirsiz ve hazır kütüphaneler kullanıldığı için yaptırmak istediğiniz iş aslında ne kadar zamanda yapılıyor belli değil. Benim için programın temeli önemli çünkü hızın önemli olduğu projeler yapıyorum. Bu yüzden karman çorman da olsa, yazılımı bitirmek uzun da sürse, pic yazılımı yaparken C’ye bile geçmiyorum. Bir çok kütüphanemi assembly dilinde yazdığım programlarla kendim zaten yapmış durumdayım. Belli bir tecrübe edindiğinizde zaten yazılımınızı önceki yapmış olduğunuz pic yazılımlarındaki program parçalarından copy/paste yaparak kısa zamanda tamamlamış oluyorsunuz.

    • mustafa dedi ki:

      Bende Pic programlarıyla uğraşıyorum.Tabiki işin temelini önce öğreneceksin hele öğrenciysen ama proje aşamasında Pic yerine Arduino da kullanabilirsin.Ebat konusuna fazla takılmayın zira nano ve pro mini modelleri gayet küçük imal edilmiş ve fazla yer kaplamamaktadır.üstelik usb arayüzüne sahip bir tane PİC fiyatına Ebay dan 2 tane pro mini bir tane nano modeli alabilirsiniz.

  9. Oğuzhan dedi ki:

    Ben arduınoda yeniyim. uno r3 kartım var ve arduino ile cizgi izleyen robot yapmak istiyorum . Daha dogrusu performans ödevim . Bana yardım edebilir misiniz? Lütfen . gerçekten yardıma ihtiyacım var. 🙁

  10. Ömer Koman dedi ki:

    proje desteğini buradan veya direk mesajla ulaşanlara veremiyoruz ilerleme yapın birşeyler ekleyin bağlayın kodu yazın takıldığınız yer olursa forum kısmından sorun. devreniz için 2 adet motor 1 adet kontrast sensoru alın birde bu malzemeleri mantaj için araba platformu olması lazım gerisi kod yazma işi zaten yaparsınız kolay gelsin

  11. Ersen Kubilay Bayrak dedi ki:

    merhaba yazılımsal bir sornum oldu ben bundan önce picbasıc programlama dilinde çalışıyordum arduinoya geçince biraz afalladım kodu yazım yanlışlarımı anlıyacaksınız lütfen çözüm için yardım edin;

    int SOLarti= 49; // değişkenleri tanıttım
    int SOLeksi= 48;
    int SAGarti= 50;
    int SAGeksi= 51;
    int SOLsensor= 47;
    int SAGsensor= 46;

    void setup() {

    pinMode ( SOLarti,OUTPUT); // giriş ve çıkışları yazdım
    pinMode ( SOLeksi,OUTPUT);
    pinMode ( SAGarti,OUTPUT);
    pinMode ( SOLeksi,OUTPUT);
    pinMode ( SOLsensor,INPUT);
    pinMode ( SAGsensor,INPUT);
    }
    void loop()
    {
    SOLsenokuma = digitalRead(SOLsensor); // sensörleri okumasını söyledim
    SAGsenokuma = digitalRead(SAGsensor);

    while ( SOLsenokuma== LOW SAGsenokuma==LOW) {
    //sensör bilgisine göre çıkışları verdim
    {
    digitalWrite( SOLarti,HIGH )
    digitalWrite( SOLeksi,LOW )
    digitalWrite( SAGarti,HIGH )
    digitalWrite( SAGeksi,LOW )
    }
    while ( SOLsenokuma== LOW SAGsenokuma==HIGH {
    case 1;
    digitalWrite( SOLarti,HIGH )
    digitalWrite( SOLeksi,LOW )
    digitalWrite( SAGarti,LOW )
    digitalWrite( SAGeksi,HIGH )
    delay(5000);
    }
    while ( SOLsenokuma== HIGH SAGsenokuma==LOW) {
    digitalWrite( SOLarti,HIGH )
    digitalWrite( SOLeksi,LOW )
    digitalWrite( SAGarti,LOW )
    digitalWrite( SAGeksi,HIGH )
    delay(5000);
    }
    while ( SOLsenokuma== HIGH SAGsenokuma==HIGH) {
    digitalWrite( SOLarti,LOW )
    digitalWrite( SOLeksi,HIGH )
    digitalWrite( SAGarti,LOW )
    digitalWrite( SAGeksi,HIGH )
    }
    }

  12. Ömer Koman dedi ki:

    while şu şekilde kullanın http://arduino.cc/en/Reference/While condition kısmındaki kullanımınızda bir tuhaflık var…

  13. oguzhan dedi ki:

    Nokıa 3310 AT Kodlarını Kullanarak Arduino Esplora Ledi Yakma

    Merhaba .
    Ben Çanakkale 18 Mart Üniversitesi Mekatronik Bölümü Öğrencisiyim Arduino Esplora İle Bunu Yapmam Gerekiyo Ama Tam Bir Bilgiye Sahip olamadım Daha Kodlama Hakkında da Guzel Bı Bılgım yok Yanı Kodlamayı Bastan kendım Yapamam Nokıa 3310 un AT Kodunu Kendım Esplora ya Uyarlıycak kadar Iyı Değilim Yanı. Olay Şu ki Nokı 3310 Telefonundan Mesaj Gönderılınce Arduıno Esploranın Ledi Yanacak Proje Bu Şekilde. Nokı 3310 AT Kodları Kullanılarak Yapılacakmış Bılen Bırısı Bana Kodlama Şeklını Anlatabılırse Uzaktan Kontrol Seklınde Olcakmıs Sevınırım.

  14. Ömer Koman dedi ki:

    arduino uno yeterli projeniz için, esploranın özelliği ekranı olması ve uzerindeki sensorlerden faydalanarak proje yapmanızı sağlaması, sizin proje sadece bir ledin yakılması olduğunda esplora yerine uno ile yaparsanız hem standart bir iş olur hemde örnek bulmanız daha kolay olur. önce bir ardunio edinin daha sonra buradaki örnekleri deneyerek arduinoyu kolayca öğrenirsin. şu örneğe bir bakın http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59687

    • oguzhan dedi ki:

      öncelikle bilgileriniz için teşekkür ederim. şuanda elimizde arduino mevcut uno değil de esplora almamız gerekti yani elimizde esplora var.Bu kodları esplorada kullanma imkanımız var mı acaba ?

  15. Ömer Koman dedi ki:

    sitemizde esplora tanıtımı ve örnek kodlar var orayı incelemenizi ve örnekleri denemenizi önerebilirim. esplora daha çok üzerindeki sensorlerden faydalanarak kullanılacak bir ürün eğer lcd ekran kullanıyorsanız size kullanım için pin kalmaz thinker kit pinleri var ama bulabileceğiniz örnekler buna uygun olmayacak. yeni başlayan biri için önce esplora kullanımını öğrenip hakim olmanız lazım yoksa projeniz bitmez. şurada esplora için blink örneği var yukarıdaki blink örneği ile bile alakası bile yok şurada da esplora sayfası var http://arduino.cc/en/Main/ArduinoBoardEsplora ve https://www.arduino.cc/en/Guide/ArduinoEsplora

  16. Ersen Kubilay Bayrak dedi ki:

    şuanda programı arduinoda hatasız olarak bitirdim fakat bu sefer program if komutlarına göre haraket etmiyor başlıklardaki komutları direk yapıyor

    int SOLartiPini= 35;
    //Arduino kurlununun pinlerine isim verilmesi için int komutu kullanılır
    int SOLeksiPini= 36;
    int SAGartiPini= 37;
    int SAGeksiPini= 38;
    int SOLsensorPini= 39;
    int SAGsensorPini= 40;

    void setup() {
    // İşlenilenecek programın ana başlığı
    pinMode ( SOLartiPini,OUTPUT);
    //Arduino kurlununun pinlerine giriş veya çıkış yapıldı
    pinMode ( SOLeksiPini,OUTPUT);
    pinMode ( SAGartiPini,OUTPUT);
    pinMode ( SAGeksiPini,OUTPUT);
    pinMode ( SOLsensorPini,INPUT);
    pinMode ( SAGsensorPini,INPUT);
    }
    void loop() // İşlenilenecek programın alt başlığı
    {
    digitalRead(SOLsensorPini),(SAGsensorPini);
    //Arduino kurlununun devrede bulunan sensörlerimizi okuması istendi
    if ( (SOLsensorPini=LOW) , (SAGsensorPini=LOW)) { goto kom_1;}
    //Arduino kurlununun sensör durumuna göre belirli başlıklardaki işlemleri yapması istendi
    if ( (SOLsensorPini=LOW) , (SAGsensorPini=HIGH)) { goto kom_2;}
    if( (SOLsensorPini=HIGH) , (SAGsensorPini=LOW)) { goto kom_3;}
    if( (SOLsensorPini=HIGH) , (SAGsensorPini=HIGH)) { goto kom_4;}

    kom_1://başlık

    digitalWrite( SOLartiPini,HIGH );
    digitalWrite( SOLeksiPini,LOW );
    digitalWrite( SAGartiPini,HIGH );
    digitalWrite( SAGeksiPini,LOW ) ;
    delay(3000);
    //delay bekleme demektir,programlama dilinde 3000, 3sndir

    kom_2://başlık
    digitalWrite( SOLartiPini,LOW );
    digitalWrite( SOLeksiPini,HIGH );
    digitalWrite( SAGartiPini,HIGH );
    digitalWrite( SAGeksiPini,LOW );
    delay(3000);
    //delay bekleme demektir,programlama dilinde 3000, 3sndir

    kom_3: //başlık
    digitalWrite( SOLartiPini,HIGH );
    digitalWrite( SOLeksiPini,LOW );
    digitalWrite( SAGartiPini,LOW );
    digitalWrite( SAGeksiPini,HIGH );
    delay(3000);
    //delay bekleme demektir,programlama dilinde 3000, 3sndir

    kom_4://başlık
    if ( SOLsensorPini=HIGH , SAGsensorPini=HIGH)
    digitalWrite( SOLartiPini,LOW );
    digitalWrite( SOLeksiPini,HIGH );
    digitalWrite( SAGartiPini,LOW );
    digitalWrite( SAGeksiPini,HIGH );
    delay(3000);
    //delay bekleme demektir,programlama dilinde 3000, 3sndir

    }

  17. Ömer Koman dedi ki:

    goto ne abi. şu programı yavaş yavaş yeniden öğrenerek yazmayı öğrenmeniz daha hızlı olur picbasic ten kopyala yapıştır olmaz burada…

  18. Sercan YAĞCI dedi ki:

    Arduino uno r3 ve 128*64 Grafik LCD siparişi vercem ama almış olduğum donanımlar birbiriyle uyumlu mu araştırma yaptığımda hep 2*16 lcd uygulamaları bulunuyor.Kodlamasını yaparken sıkıntı çeker miyim?

  19. Ömer Koman dedi ki:

    2*16 lcd ler karakter bazlıdır grafik özelliği yoktur.(gerçi birkaç karakterin gragiğini 8×5 piksel gibi kendiniz doldurabiliyorsunuz ama kullanım amacı özel şekilli karakterleri yapmak için veya basit iconlar için konmuş bir özellik) şurada http://www.robotistan.com/Komponent,LA_114-2.html#labels=183-2 128×64 lcd ler var ancak bunların datasheetlerinden bacak adlarını öğrenip arduinoda uygun pinlere bağlamanız lazım şurada http://playground.arduino.cc/Code/GLCDks0108 detaylı bir anlatım var arduinoda hiç kod yazmadıysanız karışık gelebilir. genelde grafik uygulamalarda hafıza problemi yaşarsınız kullanılan grafikleri arduinonun anlayacağı koda dönüştürüp bunu kodun içine gömmeniz gerekiyor biraz ileri teknik kodlama gerektirir.

  20. Ayşe dedi ki:

    Bilgisayar Mühendisliği okuyorum.Dönem projemi donanım üzerinden aldım.Arduino ile bir Çamaşır Makinesi yapmam istendi.Arduino hakkında çok bilgiye sahip değilim.Sıradan 4 çıkışlı basit birşey alacaktım ancak bitirme projemi de düşünerek hafızası,portları,giriş çıkışları kullanışlı,mümkünse kendine ait ekranı olan bi malzeme almak istiyorum.Önerileriniz nelerdir.Acil yardım alabilir miyim?

  21. Ersen Kubilay Bayrak dedi ki:

    ömer bey goto komutu arduinoda var http://arduino.cc/en/Reference/Goto

  22. Ali Rıza dedi ki:

    Ömer hocam; öncelikle herkes adına teşekkür ederim böyle bir yazı hazırladığınız için.. Yazının 2. bölümünü de bekliyoruz sizden :).
    Ben Mekatronik Mühendisliğinde okuyorum , 1. sınıfta; bana bir arduino önerir misiniz lütfen. Okul bitene kadar her türlü işimi halledebileceğim ,robot yapımı gibi işlerde de kullanabileceğim birşey olursa sevinirim. Teşekkür ederim.

    • Ömer Koman dedi ki:

      arduino uno ve bir başlangıç seti ile temel işleri öğrenirsin, gerekirse işine göre eklentilerle geliştirirsin devrelerini…

  23. […] Video izleyeyemeyenler için yine Arduino Türkiye sitesinde Ömer KOMAN’ın aşağıdaki yazısını okuyabilirsiniz. Arduino öğrenirken yol haritası (1) […]

  24. Bahadır GÖLCÜK dedi ki:

    Elektrik Elektronik Mühendisliği okuyorum.Arduino uno almayı düşünüyorum ancak bunda c programlama yapabilecekmiyim.

    • Ömer Koman dedi ki:

      arduinoya yeni başlayanlar için sitede yazdığım diğer yazılara bir göz atarsan bir çok kişinin yaptığı hataları yapmadan hızlı bir ilerleme sağlayabilirsin. bu yazılardan birinde arduino kelimesi yanına merak ettiğiniz şeyi yazıp google arattığınızda en az 5 milyon sayfa gelir demiştim şunun gibi https://www.google.com/search?q=arduino+c+programing&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:tr:official&client=firefox-a bu gelen arama sonucundaki ilk 3 link sana fikir verir, hatta istersen tamamen arduino üzerinde c geliştirme ortamını anlatan bir kitap bile geliyor. bence arduinoyu ve başlangıç setini alıp ilk örnekleri yapmaya başla ve arduino ortamını anlamaya çalırsan C kısmında yapmak istediklerini daha iyi toparlarsın. birde neden C ile yazmak istediğini sorabilirmiyim ?

  25. Bahadır GÖLCÜK dedi ki:

    Öncelikle yanitiniz için çok teşekkür ederim.
    Şu an 1.sınıf olmam sebebiyle c dilini gördük ve diğerlerine de geçmeden önce c yi geliştirmek ve pratik hale getirmek istiyorum bunun yanında pic programlamada yararlanacağım için almak istoyordum ve diğer yazılımlardan neler var?

  26. Ömer Koman dedi ki:

    siz okuldaki işlere paralel bir donanımla devam edin bence. arduino daha pratik ve hızlı proje geliştirme için hedeflenmiş bir platform. diğer yazılımlardan ortaya karışık size assembler önerebilirim.

  27. Enes dedi ki:

    Öncelikle tesekkur ederiz . Ben Elektrik elektronik muh. 2.sinif ogrencisiym. cizgi izleyen robot yapiyorum fakat ilk olarak temelini ögrenmek icin pic ile micro c dili yardimiyla yapmak istedim ve bu doğrultuda robotun program kısmını hallediyorum . Daha sonraki bu tip projelerde ise arduino mega 2560 almayi düsünüyorum we o şekilde programlamak istiyorum . Ayrica ben elektrik sektorune atilmak istiyorum fakat bu tip isleri de seviyorum ,sizce bolumun werdigi programlarla mi yetinsem yoksa arduino ya girsem mi ?simdiden tesekkurler

  28. Ömer Koman dedi ki:

    aşçı olduktan sonra çorbadaki malzemeyi seçmek sizin zevkinize kalmış. bir işlemciyi programlamayı öğrendikten sonra hepsi aşağı yukarı aynı, ihtiyacınıza uygun işlemciyi seçerek projelerinizi yaparsınız bugün pic olur yarın atmega olur sonra arm olur, arduino olur, rasberypi olur, beagle olur. önemli olan siz bu araçları kullanacak bilgi seviyesi ile kendinizi donatın.

  29. ÖZAY YILMAZ dedi ki:

    ben elektronikçi değilim ama elektrik elektroniğe merakım var başlangıç için güzel örnekler teşekkürler elinize emeğinize sağlık

    • Ömer Koman dedi ki:

      bu yazıyı; yazının başında da belirttiğim gibi arduino.cc den alıp türkçeleştirerek yazdım. sitenin amacı tükçe kaynak eksikliğini gidermek ve başlangıç yapanlara yol göstermek. kolay gelsin, siz de sağ olun. yaptıklarınızı bize haber verirseniz memnun oluruz.

  30. mustafa dedi ki:

    ben bu arduino ile bir devre yapmam lazım yanlız sadece arduino ile işim bitmiyor aynı zamanda birda c# ile haberleşmeli yani c de yaptığım projeden butonlar vb araçlar ile kontrol etmek aynı zamanda kendiside çalışmalı bu konu hakkında yardımcı olurmusunuz bana

    • Ömer Koman dedi ki:

      sitemizi hiç incelememişin muhterem http://arduinoturkiye.com/arduino-c-net-haberlesmesi/

      • mustafa dedi ki:

        incelidim ama tek örnek aslında bir kaç tane farklı örnek daha olsa daha iyi olabilir yani tam çözemedim olayı biraz daha örnek uygulama yapmanızı istesem birde bu breadbroadın kullanımı hakkında yazı yazmışsınız bunun daha açık ve net yani su suraya söyle takılır su yüzden takılır gibisinden bilgi vererek anlatmanızı istesem

        • Ömer Koman dedi ki:

          tüm yapılan seriport üzerinden basit komutlar yollayıp bunun arduino tarafından yapılmasını sağlamak. arduinoya “0” komutu yollamak için serial1.write(“0”) kullanmış, arduinodan bir şey okuyacaksa serial1.read() kullanacaksın. geri kalan kod kullanıcı arayuzu bildirimleri ve c# ın tanımlama kodları.

  31. berat dedi ki:

    ömer hocam bende size teşekkür ederek başlamak istiyorum. biz electromanyetik levitation projesini arduino ile yapmaya çalışıyoruz bobinle metal cisim arasındaki mesafeyi mesafe sensörüyle ayarlamaya çalışacağız. bunun bilgisini programsal olarak nasıl yazabiliriz yol gösterirmisiniz acaba?

  32. Ömer Koman dedi ki:

    hangi tip sensor seçeceksiniz karar verdinizmi ultrasonic mi, kızılötesi mi yoksa lineer sürgülü potansiyometre kullanarak mı yada başka sensorlerle mi ölçeceksiniz, ölçüm hassasiyetiniz nedir mikron mu, milim mi, santim mi, metre mi nedir?

  33. Nehir dedi ki:

    ömer hocam öncelikle merhaba ve bilgilendirmeleriniz için teşekkürler. Bende elektrik-elektronik Müh 4. sınıftayım. Bitirme tezim ise ‘nabız ölçer’. ölçme devresi tamam. Fakat şimdi aldığım sinyali sayısal değer olarak lcd göstermek istiyorum. elimde arduino-uno var. Ve diğer dillere nazaran c diline daha hakimim. acaba izleyeceğim yol nasıl olmalı?

    • Ömer Koman dedi ki:

      arduino uno ya uygun bir lcd alıp mevcut kodları çalıştımayı deneyerek başlayabilirsin

  34. halit aslancı dedi ki:

    #include

    int yukari =4 ;
    int asagi = 6;
    int yukaridurum = 0;
    int asagidurum = 0;
    int leddurum = 0;
    int ledpin = 8;

    int i = 165;

    Servo servoyuas;

    void setup()
    {
    digitalWrite(7,LOW);
    digitalWrite(4, LOW);
    digitalWrite(6, LOW);
    pinMode(yukari, INPUT);
    pinMode(asagi, INPUT);
    pinMode(7, INPUT);
    pinMode(ledpin, OUTPUT);
    servoyuas.attach(3);

    }

    void loop()
    { asagidurum = digitalRead(asagi);
    yukaridurum = digitalRead(yukari);
    leddurum = digitalRead(7);
    if(asagidurum == HIGH) //&&(i>=125))
    {
    for(i;i>=120;i–)
    servoyuas.write(i);
    delay(100);
    }
    else if(yukaridurum == HIGH) //&&(i>=125))
    {
    for(i;i<=165;i++)
    servoyuas.write(i);
    delay(100);
    }
    if(leddurum == LOW)
    {
    digitalWrite(ledpin, HIGH);
    }
    }
    koda yardımcı olabilrseniz sevinirim…
    program ile butona basılı oldugu sürece servo derecesi artacak veya azalacak ayrıca butona bısılı oldukça led yanık kalacak….
    sorunlar if şartlarını kotrol etmeden direk içerideki kodları yapıyor.. örn: led sürekli yanıyor nerde hata yaptığımı soyler ve yol gösterebilirseniz sevinirim …

  35. Ömer Koman dedi ki:

    durum değişkenleri int tip olunca HIGH LOW değişkenlerini tutamayabilir durum değişkenleri boolen tip olarak seçmeyi deneyin

  36. halit aslancı dedi ki:

    yardımınız için teşekkürler program çalıştı

  37. nuri dedi ki:

    öncelikle yazı için emeğinize sağlık. bi sorum olacak; bi süredir arduino uno almak için siteleri araştırıyorum. çin malı arduino lar gayet ucuz 10-20 tl arası fiyatlar var. ama orjinal olanlar yerli sitelerde 50-60 tl arası. sizin tavsiyeniz nedir, aralarında ne gibi fark vardır, almışken adam akıllı bişey mi almalıyım??? şimdiden teşekkürler.

  38. Ömer Koman dedi ki:

    ilk alıyorsanız hiç elektronik ve gömülü yazılım tecrübeniz yoksa bir tane orjinal ürün alın kullanın. bazı kopya ürünlerde farklılaştırma yapılmış olabilir ve dökümantasyon da olmayabiliyor tecrübeniz yoksa programınızda kodunuzda işler yolunda gitmediğinde problemin sizin kodunuzdan mı yoksa donanımdaki sorun veya farklılaştırmadan mı kaynaklandığını bulamazsınız.

  39. omer gokmese dedi ki:

    ıyı gunler hocam yorumlarınızı okudum cok begendım bana yardımcı olabılecegınızı dusunerek yorumu yazdım . ardıuno ıle kronometre sanıye bazlı yanı 0 60 a kadar aycak ama nerden ve nasıl bır baslangıc yapcagım hakkında bırsey bılmıyorum ve ılk defa arıuno kullanıyorum yardımınıza gercekten ıhtıyacım var lutfen yardımcı olunuz .

    • Ömer Koman dedi ki:

      nereye sayacak? lcd ekrana mı sayacak led dısplayde mı sayacak yoksa serial monitorden mi sayacak. ardeuinodaki örnekleri dene istediğin gibi örnek olması lazım.

  40. Batu Tanker dedi ki:

    İyi günler hocam bir sorun yaşıyorum daha önce arduino kullananlarada danıştım fakat bir çözüm bulamadık elimde ikitane arduino var bunlardan ikisiylede blink uygulamasını yapıyorum uygulamada led i 13 e bağlıyorum bağlantılarımda hata yok birinde 13 e takınca ardunonun üzerindeki L ışığı 13 e led i taktığım anda çok zayıf yanmaya başlıyor ve uygulama çalışmıyor.Diğerinde ise hiç bir sorun yok çalışıyor ama mesela kendi örneklerinden atıyorum ethernet bilmemnesi uygulamasını upload ediyorum hala o devreyi yaparsam blik uygulaması çalışıyor birde uygulamada kodu alıp 13 ü 12 yapıyorum ama hala 13 de yanıyo sönüyo 12 de tepki vermiyo. Ne denediysek böyle bir yardımda bulunabilirmisini.

    • Ömer Koman dedi ki:

      bu soruyu forumdan sormuştun sanırım led e seri olarak 1k direnç bağlayıp deneyin direk led bağlanmaz aşırı akım çektiği için sorun çıkabilir.

      • Şerafettin dedi ki:

        Hocam forum sayfanızda üyelik için sorun veriyor.recaptcha çalışmıyor.

        • Ömer Koman dedi ki:

          admin bakım yapıyor forum yazılım versiyonu eski olduğu için yeni güncellemede veri kaybı olmadan geçiş yapılacak alt yapı çalışması var.

  41. Alperen Özbay dedi ki:

    İyi günler Ömer hocam benim elimde ödünç udoo quad var ona nasıl arduino programı atabilirim acaba ?

  42. Ömer Koman dedi ki:

    udoo nun içindki arduino ide arduino sktech uyumlu oldu için önce udooya bağlan daha sonra ideyi çalıştır sketchi udoo içinde cmpile et çalışır. http://www.udoo.org/ProjectsAndTutorials/getting-started-with-arduino-ide-on-udoo/?portfolioID=1394

  43. alperen özbay dedi ki:

    Teşekkürler Ömer hocam.

  44. Mehmet dedi ki:

    const int ledPin = 22;
    const int ledPinn = 24;
    const int ledPinnn = 26;
    void setup()
    {
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
    }

    void loop()
    {
    if(Serial.available())
    {
    int a = Serial.read();
    if(a == ‘1’)
    {
    digitalWrite(ledPin, HIGH);
    }
    if (a == ‘0’)
    {
    digitalWrite(ledPin, LOW);
    }
    if(a == ‘3’)
    {
    digitalWrite(ledPinn, HIGH);
    }
    if (a == ‘2’)
    {
    digitalWrite(ledPinn, LOW);
    }
    if(a == ‘5’)
    {
    digitalWrite(ledPinnn, HIGH);
    }
    if (a == ‘4’)
    {
    digitalWrite(ledPinnn, LOW);
    }
    }
    }

    bu kod çalışıyor ama

    int ledPin = 22;
    int ledPinn = 24;
    int ledPinnn = 26;
    void setup()
    {

    pinMode(ledPin, OUTPUT);
    pinMode(ledPinn, OUTPUT);
    pinMode(ledPinnn, OUTPUT);
    Serial.begin(9600);
    }

    void loop()
    {
    if(Serial.available())
    {
    int a = Serial.read();
    if(a == ’11’)
    {
    digitalWrite(ledPin, HIGH);
    }
    if (a == ’10’)++
    {
    digitalWrite(ledPin, LOW);
    }
    if(a == ‘3’)
    {
    digitalWrite(ledPinn, HIGH);
    }
    if (a == ‘2’)
    {
    digitalWrite(ledPinn, LOW);
    }
    if(a == ‘5’)
    {
    digitalWrite(ledPinnn, HIGH);
    }
    if (a == ‘4’)
    {
    digitalWrite(ledPinnn, LOW);
    }
    }
    }

    bu kod çalışmıyor 11 yazınca yakması 10 yazınca sönmesi lazım ama olmuyor int32 olarak felanda tanımlıyamıyorum daha önce böyle bişey olmuştu sanırım 0la 8 arasında int değer alabiliyorlar

    • Ömer Koman dedi ki:

      9 dan sonra 10 yollamak yerine “A” yollayın 11 yerine de “B” yollayın bu kodunuza göre sorun çözülür.
      if (a==”A”){….} şekline devam edin

  45. Kazım YEL dedi ki:

    0-1023 arasında değer okuması için arduino nun galiba 10 byte olması lazım bende bunu 8 bite çevirmek istiyorum bunu nasıl yapabilirim ?

    int sensorPin = A0; // select the input pin for the potentiometer
    int ledPin = 10; // select the pin for the LED
    int counter = 0; // variable to store the value coming from the sensor

    void setup() {
    // declare the ledPin as an OUTPUT:
    pinMode(ledPin, OUTPUT);
    }

    void loop() {
    int counter = analogRead(A0) ;
    // turn the ledPin on
    analogWrite(ledPin, counter) ;

    }

    Programım bu potansiyometreyi çevirirken led 4 defa yanıp sönüyor bunu ayarlamak için analogda okunan değerleri 0-256 arasına nasıl çekebilirim ?

  46. Emre Özdemir dedi ki:

    Ömer Abi be arduino motor shield alıcam ama karar veremiyorum
    sence
    -1 x L298N / 2 x DC / 1 x step / her kanaldan 2A akım
    http://www.robotistan.com/Arduino-L298N-Motor-Surucu-Shield-Arduino-Motor-Driver-Shield,PR-2158.html
    —————————————————————————–
    -2 x L293D / 4 x DC / 2 x step / 0,6A akım (Anlık 1,2A) http://www.robotistan.com/Arduino-Motor-Surucu-Shield-Arduino-Motor-Driver-Shield,PR-1774.html

    hangisini almalıyım karar veremedim ikiside aynı fiyat

  47. Emre Özdemir dedi ki:

    servo motorunu nasıl kullanıcam onun için özel motor shield mı var yoksa
    L298 olanla olurmu

  48. Ömer Koman dedi ki:

    servo motor için shield e gerek yok. pwm pinlerini kullanabilirsiniz. dc motor ve step motor için shield e gerek var. bu arada L298 li bord dc motor surmek için sadece, L293 lü bord biraz daha esnek 3-4 motoru aynı anda surmek için daha uygun, L293 lu borddakı servo çıkışları arduinodaki pwm pinlerine kullanım kolaylığı için direk bağlı ama sadece servo için shield almaya gerek yok.

  49. Emre Özdemir dedi ki:

    Çok teşekkür ederim Ömer Abi sağol ben 13 yaşındayım arduinoya yeni başladım

  50. ramazan dedi ki:

    hocam size nasıl ulaşabilirim bir ricam olacak sizden mail üzerinden konuşabilir miyiz

    • Ömer Koman dedi ki:

      işlerimin yoğunluğu nedeni ile özel proje yapamıyorum ve iletişim kuramıyorum aklınıza gelen proje ve konulara yardım taleplerinizi forumda yaparsanız oradan bir çok kişi size yardım edebilir.

  51. Uğur Arabacı dedi ki:

    iyi günler. Arduino bluetooth modülüyla proje geliştirmek istiyorum. Bağlantıyı tamamladım yalnız AT komutları çalışmıyor telefondan üzerinden “blueterm” uygulaması kullanıyorum şimdilik, proje durumuna göre uygulama yapacağım. Projem bluetooth üzerinden uzaktan araba kontrol bunun için. Motor kontrol shieldi ile bluetooth modlünü tek bir unoda nasıl kullanacağım? motor shieldi bütün pinleri kapatıyor

    • Ömer Koman dedi ki:

      forum bölümümüze gelin herkes bluetooth a bulaşmış durumda mutlaka size birileri yardım eder.

  52. merlin dedi ki:

    arduino nano ile nabız ölçme projem varda yardımcı olabilecek arkadaşlar varmı acaba

  53. Emre DAL dedi ki:

    Merhabalar. Phantom quadcopter şasesi satın aldım bu gün arduino takıp gsm shield ile uçurmak istiyorum sizce yapabilirmiyim elektronik bilgi gerektiriyor mu? Gerektiriyosa ne seviyede

    • Ömer Koman dedi ki:

      hazırda arduino uyumluysa pili takıp kumandayı ayarlayınca uçar, quadcopter alırken amaç neydi? arduino öğrenmek içinse pahalı ve zor bir yol seçmişiniz, amaç quadcopter uçurmaksa bitmiş bir ürün almakda fayda vardı. kolay gelsin foruma da bakleriz

  54. Enes Demirkaya 38 dedi ki:

    Arduino ve ultrasonic sensor ile bir proje yapacağım ama kafama takılan bir soru var arduino yu kodladıktan sonra sıfırlayıp başka bir proje için kullanabiliyormuyuz. Ve klon arduino kullanırsam bir sorun çıkar mı?

  55. Enes Demirkaya dedi ki:

    Çok teşekkür ederim

  56. #include “DHT.h”

    #define DHTPIN 11 // DHT11 VERİ GİRİŞİ
    #define RolePin 4 // ISI DURUMUNA GÖRE RÖLE ÇIKIŞI;
    #define echoPin 12 // Echo Pin, Arduino’nun digital 7. pinine bağlanmıştır.
    #define trigPin 13 // Trigger Pin, Arduino’nun digital 8. pinine bağlanmıştır.

    #define DHTTYPE DHT11

    DHT dht(DHTPIN, DHTTYPE);

    int GasPin = 10;
    int GasAlarmPin = 3;
    int HareketPin = 2; // Arduino’nun digital 13. pinine bağlanmıştır.
    int valGas;

    void setup() {
    Serial.begin(9600);
    pinMode(RolePin,OUTPUT);//pin çıkış verebilmek için kuruluyor.
    digitalWrite(RolePin,LOW);//çıkış pini low değere çekilerek initialize edilmiş oluyor
    pinMode(GasAlarmPin, OUTPUT);
    digitalWrite(GasAlarmPin,LOW);
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    pinMode(HareketPin, OUTPUT);

    dht.begin();
    }

    void loop() {

    float total_h=0;
    float total_t=0;

    for(int i=0;i=28)
    {
    digitalWrite(RolePin,HIGH);// Röle sür
    Serial.println(“ISI YUKSEK!”); //Giriş Lojik 1 ise yazdır.

    }
    else if ((t>25) && (t< 27))
    {
    Serial.println("ISI NORMAL!"); //Giriş Lojik 1 ise yazdır.
    }
    else if (t<=22)
    {
    digitalWrite(RolePin,LOW);// Röle kapat
    Serial.println("ISI DUSUK!"); //Giriş Lojik 1 ise yazdır.

    bu kısımda 2 tane fan kullanıldı ve belirlii dereceler arasında fanların çalışmaması gerekmektedir. Örneğin 24-27 derece arasında fanların 2 side çalışmaması gerekiyor. 24 derecenin altında 1 tanesi 27 derecenin üzerine çıkınca diğeri çalışması gerekiyor ama 24-27 derece arasında her iki fanda çalışıyor bana yardımcı olabilirmisiniz. Teşekkürler..

  57. tuğra ünsalan dedi ki:

    çok tşk ederim…
    bildiklerinizi karşılıksız paylaşıyor oluşunuz takdir edilesi bi hamle…
    saygılarımla…

  58. harun hatipoğlu dedi ki:

    Merhabalar.Bir sorum olacaktı. Elimde Arduıno R3 var . Arduınonun algılayabildiği minimum gerilim genliği kaç volttur?

  59. okan dedi ki:

    iyi günler
    biz ölçtüğümüz veriyi double olarak nasıl gönderriz karsı tarafa double ve float kabul etmiyor analog olarak göderiyorum karsı tarafta double yapıyorum fakat ölçtüğüm deger 4126 ise analog olarak onu göderemiyorum 8 bit olmuyor nasıl gönderebilirim şimdiden teşekkürler
    gönderdiğim veriler 2 tane si gidiyor dalgalanma yok fakat 2 tanesinde dalgalanma var
    nasıl çözebilirim

    • Ömer Koman dedi ki:

      rf veya serialden numerik veriler 8 bitten buyuk ise veriyi önçe stringe dönüştürün bu string i yollayın. analog sinyallerde dalgalanma olur bunu azaltmanın yolu analog okunan değeri birden fazla okuyun toplayın ve ortalamsını alın daha stabil bir değer oluşur. önce bir analog değer okuyun sonra arka arkaya 8, 16 veya 32 kere okuyun ve her okuduğunuzu önceki ile toplayıp 2 ye bölün.

  60. Göktürk dedi ki:

    Ömer hocam elektroniğe giriş noktasında bilgim var(trasistör, triyak, röle, opamp ve ilerisi hakkında pek pratiğim yok),
    Amacım cep telefonundan bluetooth la veri gönderip arduino da sırasıyla led yakma, lcd panele yazı yazma, ısı, nem, mesafe verisini telefona gönderme, elektrikle çalışan bir aleti kontrol etmek istiyorum.
    orta-ileri düzey c# bilgi düzeyine sahibim
    arduino yeni başlayacağım
    başlangıç seti almadan
    Orjinal Arduino SÜPER UYGULAMA Setinden başlamayı tavsiye eder misiniz?

  61. Gökhan İNCE dedi ki:

    Hocam Teşekkür ederim bu konu hakkında ki yazınız için. Uygulama olarak şimdilik Arduino alacak para olmadığı için verdiğiniz örnekleri Autodesk’in vermiş olduğu şimdiye kadar ücretsiz olarak bildiğim 123D Circuits sisteminden yapıyorum. Eğer cebinde parası olmayan arkadaşlar varsa ve gerçekten ilgilenip birşeyler elde etmek istiyorlarsa Google’da 123D Circuits şeklinde arama yapabilirler. Uygulama güzel. Web tabanlı ve bir bread board üzerinde istediğiniz şeyleri yapmanıza (sunduğu imkanlar kısıtlı da olsa) imkan sağlamakta.

  62. Gökhan İNCE dedi ki:

    Önerdiğiniz devreyi yaptım fakat sıkıntı şu ki iş kod kısmına geldiği zaman hiçbir şey yapamıyorum. Sadece örnek projeye bakarak kendi projeme geçirmek bir nevi kopyalamakta beni üzüyor ve bu işi çok sıkıcı bir hale getiriyor. Acaba bu programlama kısmında kendimi nasıl geliştirebilirim?
    Öğrendiğim kadarı ile progressing dili kullanılıyor ve ben bu dili nasıl öğrenebileceğimi merak ediyorum. Nasıl bir yol izlemeliyim?
    Düşüncem şu ki programlama kısmında bilgim olması dahilinde daha özgün projeler gerçekleştirebilirim. Ayrıca Arduino aldıktan sonra sıkılıpta kenara bırakma ihtimalim azalmış olur diye düşünüyorum. Yanlışsam düzeltin. 🙂
    iyi günler dilerim.

    • Ömer Koman dedi ki:

      kullanılan dil c++ dır. bol bol örnek yaparak komutların ne olduğunu anladığınınzda daha zevk alarak ilerlersiniz. türkçe bir kitaptan ilerlersen daha iyi olur belki. coşkun taşdemirin başlangıç kitabını bir kitapçıda inceleyin isterseniz.

  63. Gökhan İNCE dedi ki:

    Tavsiyeleriniz için teşekkürler hocam. Umarım başka sıkıntı ile karşılaşmam. En yakın zamanda da uygulamalarımı sizlerler paylaşabilirim. 🙂

    • Ömer Koman dedi ki:

      hoca değilim, bildiklerimi paylaşıyorum o kadar, çabanız ve gidiş yönünüz doğru başarılar dilerim…

  64. Emre ÖZDEMİR dedi ki:

    Ömer bey tez ödevim için iki adet ldr ile servo motor kontrolü yapmaya çalışıyorum kodlarda bi hata var sanırım bir türlü çalıştıramadım ilgilenirseniz sevinirim.

    #include
    Servo myservo;
    int sensorOne=2;
    int sensorTwo=3;
    int inputOne=0;
    int inputTwo=1;
    int currPos=0;
    void setup()
    {
    pinMode(sensorOne,OUTPUT);
    pinMode(sensorTwo,OUTPUT);
    digitalWrite(sensorOne,HIGH);
    digitalWrite(sensorTwo,HIGH);
    myservo.attach(9);
    myservo.write(currPos);
    }
    void loop()
    {
    int valueOne=analogRead(inputOne);
    int valueTwo=analogRead(inputTwo);
    int diff=valueOne-valueTwo;
    if(valueOne<300 || valueTwo=300)
    {
    currPos=currPos+2;
    myservo.write(currPos);
    delay(30);
    }
    else if(diff<=-300)
    {
    currPos=currPos-2;
    myservo.write(currPos);
    delay(30);
    }
    }
    }

    • Ömer Koman dedi ki:

      ldr ve servoları ayrı ayrı kod yazıp denedinizmi çalışıyormu. foruma gelin oradan da sorun…

  65. ismail dedi ki:

    Merhabalar
    Ben PCA9685 ile servo sürmek istiyorum ancak voidsetup bölümünde sürekli sorun çıkıyor. Bu konuda yardımcı olabilir misiniz?
    Şimdiden teşekkürler..

    • Ömer Koman dedi ki:

      adafruit sitesinde pca9685 ile ilgili konular var oradaki örnekleri deneyin, foruma da gelin oradan sorun…

  66. remzi dedi ki:

    uno R3 ebir türlü programı yükleyemedim
    Ardunio uno ya program yükleyemiyorum yüklerken hata oluştu
    avrdude: ser_open(): can’t open device “\\.\COM6”: sistem belirtilen dosyayı bulamıyor. şeklinde hata veriyor, yardıncı olabilir misiniz?

    • Murat Akgün dedi ki:

      Öncelikle USB driverının yüklü olduğundan emin olmak için Bilgisayarım/Özellikler/Aygıt Yöneticisinden driverı kontrol edin.Eğer yüklü ise Arduino programında Araçlar/Port sekmesinde portu işaretleyin düzelmesini umuyorum.

    • okan ozkan dedi ki:

      aynı sorun bende de oldu. eğer benim gibi aliexpressten klon bir arduino aldıysanız driver yükleme olayi farklı. ben aşağıdki linkteki driver ile sorunu çözdüm. yükleme başarılı olduktan sonra ide yazılımdan yeni portu seçerek çalıştırabilirsiniz.
      driver linki : http://www.mediafire.com/download/pk38wysr26mak2f/CH341SER.rar

  67. ali dedi ki:

    hocam projemızin adı ses kontrollü robot yapıyoruz ardıno da motorları calıstırdık fakat ses sensorunude bağladık ama calıstıramıyoruz bize yardımcı olurmusunuz.

    • Ömer Koman dedi ki:

      forumdan sorun hangi ses sesnsorunu kullanıyorsunuz kodunuz nedir filan onları da yazın.

  68. Muhammed Aksoy dedi ki:

    Ben lise 1 e gidiyorum yazilim ve donanim hakkinda bir bilgim yok ama arduino yu duyduktan sonra ve bol zamanim oldugu icin ogrenmek istiyorum. Oncelikle C dilini ogrenmeyi planliyorum. Ama daha sonra ne yapacagimi bilmiyorum. Sizce daha sonra ne yapayim ? Veya Arduino ya geçmem çok uzun sûrer mi ?

    • Ömer Koman dedi ki:

      muahmmet tebrik ederim elektronik ve yazılım güzel ve faydalı bir uğraş biraz sabır ve dikkatle çalışırsan kısa sürede öğrenir güzel projeler yapabilirsin. ben de bu projeleri deneyerek denerkende yazılım kodunu yazarak öğrendim, arduino için kendine 150tl kadar bir bütçe ayır bir arduino kitabı alabilirsin bir arduino seti alaırsan kitaptaki butun ornekleri bu setteki parçalarla yapabilirsin. butçen yoksa en azından bir arduino uno r3 alırsan klon bile olur farketmez robotistan.com veya direnç.net te guzel ürünler var 50tl lik bir butçe ile bile arduino öğremeye programcılığını geliştirmeye başlayabilirsin. sıfır bütçe ile bile olabilir aşağıda verdiğim linkle arduinodaki yaptığın bir çok elektronik ve yazzılım olarak deneyebileceğin bir ortam olarak başlayabilirsin. kolay gelsin.

      arduino breadboard simulasyonu ve kod denemeleri için web sayfası.
      http://123d.circuits.io/circuits/19376-led-shield (start simulation butonuna basarak kodu ve elektronik duzeni web sayfasında çalıştırabilirsin. kod editor kısmına girerek kodları kurcalayıp değiştiripğ nasıl çalıştığını öğrenebilirsin)

  69. Muhammet KILINÇ dedi ki:

    hocam iyi çalışmalar öncelikle. Robot kol projesiyle uğraşıyorum. bilindiği gibi eksenleri hareket ettirirken belirlenen bir noktaya gitmek için birden fazla servonun aynı anda farklı derecelerde dönmesi gerekiyor. Çok aramama rağmen aynı anda birden fazla pwm çıkışı nasıl alınabilir bulamadım. Arduino da kodlar sırasıyla çalıştığından dolayı bir hareket gerçekleştikten sonra kod bir alt satıra geçerek diğer hareket gerçekleşiyor. Yapılacak iş aynı anda seri olarak değil sırasıyla tek tek gerçekleşiyor. C dilinde aynı anda yapılan işlemler için thread komutu vardı. Boyle bişe arduinoda mevcut mu? Bu sorunu nasıl halledebilirim.Yardımcı olursanız memnun olurum.

    • Ömer Koman dedi ki:

      micro gömülü sistemlerde thread çalıştırabilmek için realtimeOS yüklemek gerekir ve programlaması oldukça zahmetli bir yol. zaten koşturacağı tread sayısı ise 3-5 bilemedin 7-8 dir. pclerdeki işlemgücü işlemleri birkaç milisaniyelik parçalara bölüp hepsini beraber çalıştırmaya müsaittir, micronun içinde de akıllı bir iş bölümlemesi yapmak gerekir. mevcut arduino programında tread çalışmaz ama denemek isterseniz şuraya bir bakın http://www.kwartzlab.ca/2010/09/arduino-multi-threading-librar/ interrupt/kesme mekanizmasını kullanarak birşeyler yapabilirsiniz belki servoların hareketlerini veya açılarını standart değerlere bölüp bunların hepsine kucuk hareketler vermek bır cozum olabılır belkı sizn program yazma yeteneğinize kalmış bir şey. robot kolunuzda kaç servo varsa bunların kambine hareketlerini 5-10 adıma bölüp bu adımları çalıştırıp sanki hepsi aynı anda hareker ediyormuş gibi bir etki alınabilir. zaman paylaşımlı bir iş yaman lazım.

    • Coşkun Taşdemir dedi ki:

      Arduino Due kartıyla beraber Scheduler kütüphanesini inceleyebilirsiniz: http://arduino.cc/en/Reference/Scheduler

  70. Caner dedi ki:

    Herkese merhabalar.
    1.2 Led yakıp söndürme / Blink örneğinde ledin 1 sn ara ile yanıp sönmesini istediğimiz için delay(1000); yazıyoruz ya, işte o komutu yazmasak bu led saniyede kaç defa yanıp söner? arduinonun pinleri “high”-“low” yapma hızı nedir. arduinonun komut satırlarını işleme hızı nedir? 1 saniyede kaç komut satırı işler? 1 Saniyede kaç defa 2+2 işleminin sonucunu hesaplayabilir? 4 pinli step Motor çalıştırdığımızı düşünürsek bu dört pini saniyede maksimum kaç defa sıralı olarak high-low turu attırır step motorun rpm’i en fazla kaç olabilir?

    İnternette çok aradım ama bulamadım.

    • Ömer Koman dedi ki:

      arrduino uno da kullanılan avr işlemci 20mhz hızındadır bu da saniyede 20milyon makine kodu işleyebilir anlamı çıksada genelde makine kodunda bir pini high low yapmak istediğimizde bir dönüşümle bunun bir adresi ve değerin porta yazılması veya porta karşılık gelen adresten bu bilginin okunması demek oluyor işlemciler herşeyi bir adrese dönüştürerek okur yazar. bu işlemler için ise 2 veya 4 adım veya daha fazla adımda yapılır buda krsital hızını 2 ye veya 4 e bölmek anlamına gelir. ayrıca arduino c++ kodunu da makne koduna çeviriken bir çok değişik işlemide yaptığından oldukça zaman kaybı oluşur. standart bir unoda bir portun high low süresi 2ms civarıdır. daha hızlı olmasını istiyorsanız kendi asm kodunuzu yazmanız gerekir.

  71. sezgin dedi ki:

    bu arduınoda dıyelım kı ben sureklı sınyal uygulanan bır devreye mudahale etmek ıstyrm mesela guneş algılacısıyla çalışan bır perdem var guneş oldgnda perde acılıyr guneş battıgında kapanıyr ama ben buna manuel olrk mudahale etmek ıstyrm buton yardımı ıle de acıp kapatmak ıstyrm bu arduıno mumkun mu projem için gereklı yardımcı olursanız sevınırım

    • Ömer Koman dedi ki:

      bunu geç gördüm pardon. ışık algılayıcı veya ldr yi veya fototransistorleri yapabılırsın otomasyon kısmını, manuel kısmını ise 2 buton koyup o butonu perde motorunu açmaya kapamaya programlarsın. bir uno motor sürüsü 2 buton 2 ldr ile yaparsın önclikle arduino komutlarını öğrenmende fayda var. bu sayfa basitten başlayarak sana arduino alıştırması yapmanı sağlar…

  72. Taha dedi ki:

    ben ilkokul 3 sınıf ım 9 yaşındayım elektrike çok merakım var sürekli elektrikle uğraşırım bi robot yapmayı planladım ardunio kullanarak akü ile bana yardımcı olur musunuz

    • Ömer Koman dedi ki:

      taha bu tip özel projelere vaktim yok sen araştırmana devam edip gerçekleştirmeyi dene. uno alıp sayfadaki örnekleri çöz programlamayı öğren robot yapımı aslın işin son zirve noktasıdır. hem öğreneyim hem robotum olsun kafası iyi değil aslında. elektronik konularını sindire sindire ilerle bence. forum kısmına da gel orada projeni anlat yapanlardan fikir al. kolay gelsin

  73. mustafa dedi ki:

    hocam kolay gelsin. ben arduino uno ile voltaj ayarlı boost converter devresi projesi yapmak istiyorum. bu devreyi arduino ile kontrol edebilir miyim. kontrol edebilirsem nasıl yapabilirim. yardımcı olur musun?

  74. mehmet bol dedi ki:

    çok acil
    Klavyeden iki sayı girilecek ve bu sayılar Arduino tarafından okunacaktır.
    Birinci sayı Arduino üzerindeki ledin (pin13) kaç kere yanıp söneceğini, ikinci sayı ise yanıp sönmeler arasındaki beklemeyi (ms cinsinden) ifade edecektir. bu konuda yardımcı olabilirmisiniz ?

    • mehmet bol dedi ki:

      Arduino IDE kullanılmaktadır.

    • Ömer Koman dedi ki:

      forum kısmına gelirseniz daha fazla kişi yardımcı olur beklemenize gerek kalmaz buradan yorumları onay mekanizması var. sorununuza gelince pek ısmarlama işlere kimse yanaşmaz bir arduino alın ve kendiniz kodunuzu bir şekilde yazın ilerletin takıldığınız yeri sorun daha çabuk biter…

  75. aliihsan dedi ki:

    Arkadaşlar bağlantıları yaparken led ve button gibi 220 ohm direnç kullanmasak ne olur cihaz yanar mı ?

    • Ömer Koman dedi ki:

      dirençler gerekiyor kullanmazsan led de bozulur arduino da bozulur. direnç arduinodan akımı sınırlandırır ledin bozulmasını arduino portununda yanmasını engeller.

  76. Arif Samet dedi ki:

    İyi günler öncelikle bir şey sormak istiyorum
    Bende arduino kullanmayı düşünüyorum acaba AliExpress güvenlimidir sipariş vermeyi düşünüyorum da

    • Ömer Koman dedi ki:

      şöyle düşünün ürünü alibaba dan aldınız taktınız çalışmıyor ne yapacaksınız ? tr den aldığınızda arızalı da çıksa faturalı olacak iade eder yenisini alırsınız. bazı arduino ürünleri orjinal malzeme kullanılmadığında usb de tanımama sorunu oluyor driverlar bulummuyor. ılk başlarken cimrilik yapmayın bence.

  77. Arif Samet dedi ki:

    Doğrudur ona sözüm yok ama arada bayağı bir fiyat farkı var AliExpress te sadece 3 dolar burada 30-40 tl kadar

  78. Arif Samet dedi ki:

    Pekala arduino kitabını önerirmisiniz sizce nasıl aklınızda belli yayın evi varsa söylermiisiniz. Benim aklımda direk servo motor sürmek var siz nedersiniz

    • Ömer Koman dedi ki:

      sitemizin kurucularından ve yazarı coşkun taşdemirin kitapları var onları bir inceleyin derim. dikeyeksen yayın evi bir çok kitap çıkardı arduino ile ilgili insanların ilgi alanlarına göre onları da inceleyin. malzeme alımında robotistan.com u tanıyoruz iyi ürünler getiriyor orayı da inceleyin. ayrıca direnc.net var uygun ürünler de bulabilirsiniz orada… kolay gelsin

  79. Arif Samet dedi ki:

    Pekala arduino kitabını önerirmisiniz sizce nasıl aklınızda belli yayın evi varsa söylermiisiniz. Benim aklımda direk servo motor sürmek var siz nedersiniz
    He bide AliExpress ten gelen arduino ların hepsimi arızalı yoksa nadir mi?
    YORUMLARINIZ İÇİN TEŞEKKÜRLER

    • Ömer Koman dedi ki:

      servo motorları direk arduino ıle surebılırsınız ek bir karta da ıhtıyac duymazsınız uno yeterlı bunun için. foruma gelin sorun uğraşanlar var konuşursunuz aranızda. çinden mal getirmek de sorun yok biz de getiriyoruz kullanıyoruz yeri gelince. ürün kalitesi veya sipraiş ettiğiniz ürün yerine başka bir ürün veya arızalısı gelme ihtimali her zaman var hemen olacak diye de bir şey yok, ürün ucuzluğu sorunları görmezden gelmeye itiyor insanı kaybedeceğiniz para ve zaman önemsizse deneyin kaybedeceğiniz şey belli. fazla güvenerek iş yapmayın çin piyasasından derim.

  80. Arif Samet dedi ki:

    Teşekürler

  81. Arif Samet dedi ki:

    Aklımda 5 servo motor kullanarak bir robot kol yapmak var, ama siz nedersiniz araştırma yaptım ve servoyu sürmek aman aman zor bir şey degil belki de başlangıç için zor ama led yakıp söndürmekleuğraşmak istemiyorum bana basit gibi geliyor ama yinede tavsiyeleriniz benim için önemli

    • Ömer Koman dedi ki:

      eskiden sınav olunca hocaya sorardık istediğimiz sorudan başlayabilirmiyiz diye. o da yapın derdi. ama sonuçta o birinci soruyu yapmak da gerekir. led blink yapacaksın günün birinde.

      • Arif Samet dedi ki:

        Anladım da yani ne bileyim robot kol daha iyi geliyo ben servo sürmeyi kitaplardan öğrenebilirmiyim direnç.net te sensörler le ilgili kitaplar var bunlar işimi görür mü veya bu tarz kitaplar

        • Ömer Koman dedi ki:

          Bir uno al servoyu al internete arduino servo diye arat ilk gelen projeyi yukle kitaptan daha hizli ogrenirsin. Once led blink yap hepsi 10 satir zaten ama kod duzenini ogrenirsin

  82. mumin dedi ki:

    merdiven otomatiği mikro projem var da yardımcı olabilir mısın çalışma prensimi butona bir kere bastıdığında led yancak 30sn-1dk sonra sönecek LIST P=16F628A
    INCLUDE “P16F628A.INC”
    __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
    ;————————————————————————————————————————————————————
    SAYAC EQU h’20’
    ORG h’0000′
    CLRF PORTB
    BANKSEL TRISB
    CLRF TRISB
    MOVLW b’11111111′
    MOVWF TRISA
    BANKSEL PORTB
    BASLA
    BTFSS PORTA,4
    BSF PORTB,3
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    GECIKME
    MOVLW h’99’
    MOVWF SAYAC
    DONGU
    DECFSZ SAYAC,F
    GOTO DONGU
    CLRF PORTB
    GOTO BASLA
    END
    ;————————————————————————————————————————————————————

    • Ömer Koman dedi ki:

      pic konularına destek veremiyoruz başka sitelere gidin burası uygun değil. ustelik birde assemler ıle yazmışsın bunu burada anlayacak çok az insan var faydalı da olamayız. picproje ye gidip oraan sorun anında cevap alırsınız.

  83. mumin dedi ki:

    tek sorun pıc hz 500hzde devre butona basıllı tutduğumuda devre calısıyo

    4MHz pıc ile butona basıldığında led hemen sonuyor

    • Ömer Koman dedi ki:

      her clock hızı ıcın gecıkme rutinideki sayacı yenıden yazmalısın. sorunca senın cevabın var zaten 500khz deki gecıkme 4mhz dekı gecıkmeyle bır olurmu hıc dusunsens arada 100k fazla zaman farkı var rutının de 100 kat daha uzun sure beklemesı lazım. pic assemlerı debug yap her adımda gecen zamanı ölç ne kadar zaman bekleyeceksen sayaçla o kadar zaman sayman lazım sayacın byte degıl word olsun. pic sorunlarını bize sormayın konu dağılıyor. picprojeye gitmenizi bir daha tavsiye ediyorum.

  84. Arif Samet dedi ki:

    Arduino mega ya robotkol yapmak için toplam kaç servo motor bağlaya bilirim

  85. fatih dedi ki:

    *
    * Switch test program
    */

    /*
    Changing the PWM frequency on Pins 11 and 3
    Setting Divisor Frequency
    0x01 1 31250 //should not be able to hear this though the frequency is a little high for the l298
    0x02 8 3906.25
    0x03 32 976.5625
    0x04 64 488.28125 // default
    0x05 128 244.140625
    0x06 256 122.0703125
    0x07 1024 30.517578125 //here is also good..in theroy but may be a little to low for the dc motor
    */

    int potx = A0; // analog pin 0, connected to VRx on the joystick board
    int poty = A1; // analog pin 1, connected to VRy on the joystick board
    // The joystick board 5 volts needs to be connected to the Arduino 5 volts pin
    // The joystick board ground needs to be connected to an Arduino ground pin

    int motor1 = 3; //Digital pin 3, connected to Enable pin A(ENA) on the L298N
    int motor2 = 11; //Digital pin 11, connected to Enable pin B(ENB) on the L298N

    int IN1 = 4; //Digital pin 4, connected to IN1 on the L298N
    int IN2 = 5; //Digital pin 5, connected to IN2 on the L298N
    int IN3 = 6; //Digital pin 6, connected to IN3 on the L298N
    int IN4 = 7; //Digital pin 7, connected to IN4 on the L298N
    // The L298N ground needs to be connected to an Arduino ground pin.
    // In the L298N one DC motor terminals will be connected to OUT1 and OUT2 and the second DC motor to OUT3 and OUT4
    // polarity in the motors is determined by the direction that you want for pan and tilt.

    int value = 6; //4 being the default giving 488.28125hz

    int CenterX = 0;
    int CenterY = 0;

    void setup() // run once, when the sketch starts
    {
    Serial.begin(9600); // set up Serial library at 9600 bps
    pinMode(potx, INPUT);
    pinMode(poty, INPUT);
    pinMode(motor1, OUTPUT);
    pinMode(motor2, OUTPUT);
    pinMode (IN1, OUTPUT);
    pinMode (IN2, OUTPUT);
    pinMode (IN3, OUTPUT);
    pinMode (IN4, OUTPUT);
    TCCR2B = (TCCR2B & 0xF8) | value;// change the value of the (Timer 2 pins 11, 3?) register to a value ranging between 1 – 7

    CenterX = analogRead(potx); // Get the center x value in the joystick
    CenterY = analogRead(poty); // Get the center y value in the joystick

    }

    int getPotX() {
    int v;
    v = analogRead(potx);
    return v;
    }
    int getPotY() {
    int v;
    v = analogRead(poty);
    return v;
    }

    int moveMotorX() {

    int ValueX = getPotX();
    if( ValueX < CenterX ){
    digitalWrite (IN1, HIGH);
    digitalWrite (IN2, LOW);
    ValueX = CenterX – ValueX;
    ValueX /= 4;
    ValueX = max(ValueX, 0);
    ValueX = min(ValueX, 255);
    analogWrite(motor1, ValueX);
    }
    else{
    digitalWrite (IN1, LOW);
    digitalWrite (IN2, HIGH);
    ValueX = ValueX – CenterX;
    ValueX /= 4;
    ValueX = max(ValueX, 0);
    ValueX = min(ValueX, 255);
    analogWrite(motor1, ValueX);
    }
    }
    int moveMotorY() {

    int ValueY = getPotY();
    if( ValueY < CenterY ){
    digitalWrite (IN3, HIGH);
    digitalWrite (IN4, LOW);
    ValueY = CenterY – ValueY;
    ValueY /= 4;
    ValueY = max(ValueY, 0);
    ValueY = min(ValueY, 255);
    analogWrite(motor2, ValueY);
    }
    else{
    digitalWrite (IN3, LOW);
    digitalWrite (IN4, HIGH);
    ValueY = ValueY – CenterY;
    ValueY /= 4;
    ValueY = max(ValueY, 0);
    ValueY = min(ValueY, 255);
    analogWrite(motor2, ValueY);
    }
    }

    void loop() // run over and over again
    {
    moveMotorX();
    moveMotorY();
    }

    böyle bir yazılım buldum ama 2 motorda aynı andan ve tek eksende çalışıyor ne gibi yanlış olabilir benim amacım joystick ile pan tilt hareket vermek şimdiden teşekkürler

  86. Ömer Koman dedi ki:

    kodda hata göremedim joystik veya pot bağlantılarınızı kontrol edin potların ikisini birden hareket ettrimesenizde aynı aynda 2 motorda hareket ediyorsa potların bağlantısı a0 a1 pinleri kısa devre veya kodun üzerinde değişiklik yaptıysanız oraları da kontrol edin. foruma da sorun oradanda yardım gelir burada bir onay süreci olduğu için zaman kaybedersinz…

  87. fatih dedi ki:

    Cok tesekkurler peki sizin projelerinizden yada bir yerdebişdiğiniz proje varmıdır

    • Ömer Koman dedi ki:

      kodu bulduğunuz yerde de sorun belki bir değişiklik vardır kodda. bildiğim proje yok ama genelde bilinen adafruit sparkfun arduino.cc gibi sitelerden denenmiş kodları bulup kullanmanızda fayda var veya onu bunun kodunu düzeltene kadar temel işlemleri öğrenip kendi program yapınızı oluşturmanızı tavsiye ederim.

  88. ibrahim dedi ki:

    merhaba
    benim bi master mega 2560 ve buna bağlı iki adet slave uno karım var pc serial porttan A harf ile slave 1 deki 11 nolu çıkışı aktif a harf ile aynı çıkışı de aktif yapıyorum B harfi slave 1 12 nolu çıkış aktif b ile deaktif
    C ile slave 2 11 nolu çıkış aktif c ile deaktif D ile slave 2 12 nolu çıkış aktif d ile deaktif
    benim sorum şu olacak bu çıkışları ben deaktif yapmak istemiyorum serial monitöre A 2000 yazdığımda 2 saniye aktif olsun sonra deaktif olsun master kart ve slave karttaki kodları gönderiyorum yardımcı olabilirseniz sevinirim yardımlarınız için teşekkür ederim
    master
    #include
    char data ;
    void setup() {
    Serial.begin(9600);
    cli(); //interreptlar durduruluyor
    Wire.begin();
    }
    // put your setup code here, to run once:

    void loop() {

    if (Serial.available()>0)
    {
    data=Serial.read();
    if(data==’A’)

    {
    Wire.beginTransmission(5);
    Wire.write(‘H’);
    Wire.endTransmission();
    }
    delay data=Serial.read();
    else if(data==’a’)
    {
    Wire.beginTransmission(5);
    Wire.write(‘L’);
    Wire.endTransmission();
    }

    if(data==’B’)

    {
    Wire.beginTransmission(5);
    Wire.write(‘C’);
    Wire.endTransmission();
    }
    else if(data==’b’)
    {
    Wire.beginTransmission(5);
    Wire.write(‘D’);
    Wire.endTransmission();
    }

    if(data==’C’)

    {
    Wire.beginTransmission(1);
    Wire.write(‘E’);
    Wire.endTransmission();
    }
    else if(data==’c’)
    {
    Wire.beginTransmission(1);
    Wire.write(‘F’);
    Wire.endTransmission();
    }
    if(data==’D’)

    {
    Wire.beginTransmission(1);
    Wire.write(‘G’);
    Wire.endTransmission();
    }
    else if(data==’d’)
    {
    Wire.beginTransmission(1);
    Wire.write(‘J’);
    Wire.endTransmission();
    }
    }

    }

    SLAVE 1
    #include

    void setup()
    {
    Wire.begin(5);
    Wire.onReceive(receiveEvent);

    pinMode(12,OUTPUT);
    digitalWrite(12,LOW);
    pinMode(11,OUTPUT);
    digitalWrite(11,LOW);
    }

    void loop()
    {
    }

    void receiveEvent(int howMany)
    {
    while(Wire.available())
    {
    char c = Wire.read();
    if(c == ‘H’)
    {
    digitalWrite(12,HIGH);
    }

    else if(c == ‘L’)
    {
    digitalWrite(12,LOW);
    }

    if(c == ‘C’)
    {
    digitalWrite(11,HIGH);
    }
    else if(c == ‘D’)
    {
    digitalWrite(11,LOW);
    }
    }
    }
    SLAVE 2
    #include

    void setup()
    {
    Wire.begin(1);
    Wire.onReceive(receiveEvent);

    pinMode(12,OUTPUT);
    digitalWrite(12,LOW);
    pinMode(11,OUTPUT);
    digitalWrite(11,LOW);
    }

    void loop()
    {
    }

    void receiveEvent(int howMany)
    {
    while(Wire.available())
    {
    char c = Wire.read();
    if(c == ‘E’)
    {
    digitalWrite(12,HIGH);
    }

    else if(c == ‘F’)
    {
    digitalWrite(12,LOW);
    }

    if(c == ‘G’)
    {
    digitalWrite(11,HIGH);
    }
    else if(c == ‘J’)
    {
    digitalWrite(11,LOW);
    }
    }
    }

  89. Ömer Koman dedi ki:

    merhaba bu tip proje sorularını foruma gelin sorun anında yayınlanır. burada boşuna bekleme yapmaya gerek yok.

  90. Mustafa Taha Atalmış dedi ki:

    ben 3. sınıfa gidiyorum telefon programı için çok teşekkür ederim aşırı işime yaradı

  91. Burak dedi ki:

    Ömer Bey merhaba,
    serial.begin(x); ile baud hızını X e sabitliyoruz. Ama benim projemde sabitlenmemesi baute hızını otomatik algılaması gerekiyor.
    Pc tarafından gönderilen verinin arduino ile otomatik algılanmasını nasıl yaparız.
    Teşekkür ederim.

    • Ömer Koman dedi ki:

      şurada bir örnekte yapmışlar ama karşı sıstemı otomatık ayarlamk ıcın yapmışlar, once bir senkron karakteri atıyorlar 0xAA bu karakteri alan karşıdaki sistem zaman hesaplaması yaparak gerekli bautrate ayarına getiriliyor.
      Arduinoda da yapılır ama gerekli mi bilemedim. https://www.pololu.com/docs/0J44/6.7.1

      karşıdaki sistem size bir kez 0xAA karakteri atacak siz rx pini sıfıra duştuğu andan itibaren timer başlatıp daha sonra rx pin tekrar 1 olunca arada geçen sureyı bauta donusturmenız gerekecek.

      şöyle aratınca cok örnek geliyor farklı sıstemler ıcın ama mantık aynı https://www.google.com.tr/search?q=arduino+auto+baud&ie=utf-8&oe=utf-8&gws_rd=cr&ei=XH5xVfTPFsaMsAGljoGQCA

      • Burak dedi ki:

        Ömer Bey merhaba,
        Projemizi sayaç , seri dönüştürücü ve software den oluşuyor.
        Sayaçlar ya 1200 ya da 2400 baud hızı ile iletişim sağlayabiliyor.
        Sayaçlar bir kablo ile arduino kullandığımız seri dönüştürücüye bağlanıyor.
        USB ile seri dönüştürücü PC ye bağlanıyor.
        PC den sayacı okumak için gönderilen verilerin baud hızı ile sayacların baud hızının aynı olması gerekiyor.
        Dolayısı ile Arduino serial ayarları
        serial.begin(2400), yaparsan 2400 baud hızı ile iletişim sağlayan sayaç okunuyor
        Ama 1200 baud hızla iletişim sağlayan diğer sayaç okunamıyor.
        Benim yapmak istediğim, Sayaçların marka marka baug hızları belli, PC yazılımdan baud hızını markaya göre tanımlayıp okuma verisini gönderdiğimde seri dönüştürücünün dolayısı ile arduino nun bizim gönderdiğimiz baud hızını algılaması ve direk sayaca da bu hızla göndermesi gerekiyor.
        Umarım açıklayıcı olmuştur.
        Teşekkür ederim.

        • Ömer Koman dedi ki:

          şöyle yapsanız nasıl olur setup kısmında. once 1200 baud yapın ve bir while loop içinde pc den gelen karakterleri okumaya çalışın misal 0xAA yollatın pc den arka arkaya arduino tanımazsa busefer 2400 baud set edip tekrar while dongusu içinde gelen karakteri tanımaya calıssın. hangisinde tanımışsa rutinden çıkın. loop kısmı oşekilde devam etsin. arduino her resetlendiğinde once 1200 de okuma yapmayı denesin olmuyosa 2400 denesin hangisinde tanıdıysa oyle devem etsin.

          aklıma gelen ornek siz kodu duzenlersiniz
          void setup() {
          Serial.begin(1200);
          while {
          //burada okuma yap “0xAA geliyormu bak gelmıyorsa cık}
          Serial.begin(2400);
          while {
          //burada okuma yap “0xAA geliyormu bak gelmıyorsa cık}

          }

          void loop() {
          //verileri oku…
          }

  92. ibrahim dedi ki:

    merhaba ömer hocam ben hatamı farkedip aynı gün konuyu foruma taşıdım zaten

  93. ibrahim dedi ki:

    merhaba ömer hocam ben hatamı farkedip yazdığım gün konuyu foruma taşıdım
    zaten bu sayfayı meşgul ettiğim için kusura bakmayın
    size bu proje ile ilgili bir sorum olacak pc den seri port iletişimi ie mega 2560 r3 haberleşiyor seri porttan mega’ya hem çıkış pin bilgisi hemde aktif olacağı zaman bilgisini aynı anda göndermek mümkünmüdür örnek meganın 12 nolu çıkışını 2 saniye aktif edeceğim
    yardımınız için şimdiden teşekkürler

    • Ömer Koman dedi ki:

      rs232 standartında rx tx dışında kullanılan handshake pinleri de var onları da hıgh low olarak kontrol etmek mumkun bunları pc tarafında da aktıf pasif yapabilirsiniz. ama arduinoda sadece rx tx bağlandığından diğer pinleri okuyup yazmak için araya bır max232 ıle donüşüm yapmanız lazım. sanırım size DTR pini gerekiyor “data terminal ready” pini işinizi görür ancak iletişime geçmeden önce bu pini izleyip durumuna göre iletişimi devam ettırmlısınız. rts cts pinleride kontrol edilebilir pinlerin biri input diğeri outputtur. kullanığınız protokol rs232 dir internette bol kaynak var https://www.google.com.tr/search?q=rs232&tbm=isch&tbo=u&source=univ&sa=X&ei=ZYdyVdT7LsS07gaWt4LoBw&ved=0CD0QsAQ&biw=1366&bih=665

      • Burak dedi ki:

        Ömer Bey merhaba,
        USB den veri alışverişi sağlayan bir programımız var. Bu program piyasada halihazırda bulunan pic ve FTDI chip kullanılarak hazırlanmış seri convertor devrelerde sıkıntısız çalışıyor. Bizde, Arduino micro kullanarak bir seri convertor tasarladık. Kulandığımız program convertor ile iletişim kurarken DTR pin kontolü yapıyor. Dolayısı ile veri alışverişi yapamıyoruz.DTR pini aktif edebileceğimiz bir yöntem yada yol var mıdır. Bunu donanımsal olarak mı yoksa arduinoyu programlarken yazılımsal olarak mı yapmalıyız.
        Şimdiden teşekkür ederim.

        • Ömer Koman dedi ki:

          dtr pini ile dsr pinin kısa devre et pc tarafında yada sizin pc tarafında comm port ayarlarında flow kontrol enable işaretlenmiştir flow kontrolu kaldır disable yap çalışması lazım.

  94. ibrahim dedi ki:

    Hocam Farklı bir haberleşme mi kullanmam gerekiyor su anda bu kartlar haberleşiyor usb sadece seri port ekranından 12 nolu pini A karakterini gonderdiğinde 2 saniye veya 3 saniye aktif yapacak sadece zaman bilgisi değişecek atıyorum A2000 gonderdiğimde 2 saniye A3000 gonderdiğimde 3 saniye aktif olacak şuan bu pinleri kontrok edebiliyorum fakat kesme işlemini dahil etmek istiyorum 12 nolu pin sadece bir örnek 40 adet pini bu şekilde sürmem gerekiyor bu konuda fazla bilgim yok

    • Ömer Koman dedi ki:

      iletişim kuruyorsan A2000 komutunu da çözebiliyorsan geriye sadece digitalwrite(12,high) ve delay(2000) yazacaksın olacak bitecek. foruma gel sor bunları fikir veren çıkar

  95. büşra dedi ki:

    merhaba projemde sıkıntı yaşıyorum. grafik lcd 21 girişli olan 128×240 xıamen lcd çeşidinde. arduino uno ile çalıştırıp.ekranda isim yazdırmam gerekıyor projenın yeterli kod ve devresini bulamadım yardımcı olursanız sevinirim.

    • Ömer Koman dedi ki:

      foruma gelin sorun belki bilen çıkar ama lcd nin tam ürün kodu gerekir hatta datasheet olursa bulmak daha kolay olur. dunyada binlerce farklı 128×240 lcd var kımbılır hangisi sizinki birde arduino uyumlu olduğunu nereden anladınız da aldınız onu merak ettım herşey arduino ile çalışacak diye de bir şey yok…

  96. büşra dedi ki:

    240128C
    070709 V1.0
    QC PASS RoHSPGM240128C – NSW -BBW -01
    DATE 2011 06 22
    lcd ye ait tum bılgıler burada ama yeterli dokuman yok lcd yı de elektrık elektronık muhendisi tavsıyesı uzerıne aldım arduino unoya uyumlu oldugunu soylemişti

  97. Ömer Koman dedi ki:

    arkadaşınız bildiğine göre bir linki veya datasheeti de vardır tam markası modeli neymiş bir sorun ona, foruma gelin sorun birde kullanmış olan biri çıkabilir….

  98. büşra dedi ki:

    peki teşekkürler.

  99. mehmet dedi ki:

    hocam iyi günler, ben led yakıp söndürme işinden başladım , seri port ekranına k yazdığımda kırmızı yanıyo mesela ama bunu ben kırmızı yazdığım zaman yanmasını istiyorum nasıl olacak bi türlü yapamadım

  100. mehmet dedi ki:

    hocam teşekkürler çalışırdım yalnız 2 sorunum daha çıktı, 1.si seri port ekranına yanlış kelime yazdığım an ,seri port ekranını kapatıp tekrar açmadığım sürece komutlara karşılık vermiyo yani çalışmıyo. 2.si de mesela kırmızı dediğim zaman kırmızı yanıyo ama kırmızıassdd gibi bişey yazdığım zaman da kırmızı yanıyo, kırmızıkelimesinden sonraki harflere karşılık vermesini istemiyorum , umarım anlatabilmişimdir teşekkürler

    • Ömer Koman dedi ki:

      string arama rutinini geliştirmen lazım stringi bulduğun index değerine birde string uzunluğu kontrolu yaparsan olur sanki…

      • mehmet dedi ki:

        hocam teşekkürler oldu, benim bi sorum daha olacak, seri port ekranında kelimeler arası satır boşluğunu nasıl kaldırırız , yani direk alt alta yazmasını istiyorum ben, şimdiden teşekkürler

        • Ömer Koman dedi ki:

          satır sonlarında fazladan crlf karakterleri geliyor onları sil chr(13) chr(10) karakterlerini silmen lazım.

  101. Burak dedi ki:

    Ömer Bey tekrar merhaba,
    Daha önce auto baud ile ilgili bir sorum olmuştu. Bu soruyu biraz daha detaylandırarak sormak istiyorum.
    Seri iletişim sağlayan bir programımız, Seri iletişim sağlayan bir converterimiz ve bu convertere bağlı cihazlarımız var. Program USB ile convertere HEX bilgiler gönderiyor. Converter bu bilgileri cihazlara iletiyor. Cihazlarda aldığı bilgilere göre converter üzerinden bize cevap veriyor. Burada ki sıkıntı şu ki;
    Cihazların bazıları 1200 Baud, bazıları ise 2400 baud hızla iletişim sağlıyor.
    Biz arduinoyu programlarken program converter arasındaki baud hızını 2400, converter cihaz arasındaki baud hızını da 2400 olarak ayarlarsak 2400 baud ile iletişim sağlayan cihazlarla iletişim sağlayabiliyoruz. Yine program converter arasındaki baud hızını 2400, converter cihaz arasındaki baud hızını 1200 olarak programldığımızda ise 1200 baud hızla çalışan cihazla iletişim sağlayabiliyoruz.
    Fakat aynı sistemde 1200 ve 2400 baud hızla çalışan cihazlar karışık olarak varsa arduinoya gömdüğümüz hız ne ise o hızla çalışan cihazlarla iletişim sağlayabiliyoruz.
    Beni yapmak istediğim şu;
    Com ayarlarını yapan bir menüm var, cihazlara bilgi göndermeden önce orada baud hızını 1200 seçersem 1200 olanla haberleşeyim, 2400 seçersem 2400 baud cihazla haberleşebileyim.

    Bu konuda bana bilgi vermenizi rica ederim. Şimdiden teşekkür ederim.

    • Ömer Koman dedi ki:

      dediğin gibi yap işte lcd de seçim yaptığın yerde bautrate guncelle Serial.begin(1200); veya Serial.begin(24000); komutu yolla çalışır. ayarladıktan sonra 1sn bekle oyle programda veri alış verişi yap daha iyi olur ilk baştan birkaç tane saçma karakter gelebilir bufferdaki karakterlerdir onlar onları kullanma…

  102. Ethernet Sorusu dedi ki:

    Merhaba Omer Bey,
    Benim sorum arduino ile akilli ev projesi yapiyorum ve android ile yazdigim uygulamada sicaklik buttonuna bastigim zaman telefonuma sicaklik bilgisi mesaj olarak gelmesini nasil yapacagim. Mesaj gonderemiyorum bir turlu. Yardimci olursaniz cok sevinirim. Birde sicaklik bilgisi diyelimki temp=analogRead(sicaklik) olarak okudugunu farz edelim. Burada temp=24 diye dusunursek bunu decimal(sayi) olarak nasil gondercem. Herhalde ikinci sorunumu anlatabilmisimdir))). Tesekkur ederim yardimci olun lutfen.

    • Ethernet Sorusu dedi ki:

      Bu arada Arduino Mega ve Ethernet Shield kullaniyorum. Led yak sondur islemlerini vs hallettim. Bir tek takildigim nokta sicaklik bilgisinin mesaj olarak gelmesidir telefonuma. Ornek oda_1 ledi yakma kodum :

      if (readString.indexOf(“?room=1&lamp=1&state=1”) >0){
      digitalWrite(ROOM1_LED, HIGH);
      client.println(“HTTP/1.1 200 OK”);
      client.println(“Content-Type: application/json;charset=utf-8”);
      client.println();
      client.print(“{\”status\”:\”1\”}”);
      client.println();
      delay(1);
      client.stop();
      }

      Buna benzer mesaj yollama koduda kesin vardir. Yardimci olu lutfen cok ugrastim yapamiyorum.
      Saygilarimla

  103. mehmet dedi ki:

    hocam iyi günler istediğim şey butona bastığım zaman ledin sürekli yanması tekrar bi daha bastığım zaman led in sönmesi kodumda nerde sıkıntı var yardımcı olursanız sevinirim.
    int buttonPin = 10;
    int ebuttonState = 1;
    int ybuttonState = 0;
    char j;
    const int ledpin[]={2,4,6,8};
    void setup()
    {
    digitalWrite(2,LOW);
    pinMode(10,INPUT_PULLUP);
    for(j=0;j<4;j++)
    {
    pinMode(ledpin[j],OUTPUT);
    }
    }

    void loop()
    {
    ebuttonState =ybuttonState;
    ybuttonState = digitalRead(10);
    if(ebuttonState==0)
    {
    if(ybuttonState==LOW)
    {
    digitalWrite(2,HIGH);

    }
    else
    {
    digitalWrite(2,LOW);
    }
    ebuttonState =ybuttonState;
    }

    }

  104. Ethernet Sorusu dedi ki:

    Tekrar rahatsiz ediyorum ozur dillerim. Yukarida belirttigim gibi sensorden okudugum degeri telefonumda mesaj olarak gelmesini istiyorum. (send request). Kod kisimini asagidaki gibi:

    { String PostData = “motion detected”;
    // IPAddress server(195, 210, 46, 29);
    if (client.connect(“192.210.46.29”, 80))
    {
    client.println(“POST http://technovision.kz/arduino/push.php?message=MotionDetected HTTP/1.1″);

    client.println(“Host: 195.210.46.29”);
    client.println(“User-Agent: Arduino/1.0”);
    client.println(“Connection: close”);
    client.print(“Content-Length: “);
    client.println(PostData.length());
    client.println();
    client.println(PostData);
    client.println();
    }}

    Burada ben http://technovision.kz/arduino/push.php?message=MotionDetected linkine bastigim zaman mesaj geliyor. Ben hareket sensoru hareketi algiladigi zaman bunun otomatik olarak calismasini istiyorum. Tesekkurler.

  105. Taha dedi ki:

    arduino uno da nasıl kodlar silinr led yaktım başka şeyler yapcam ama nasıl silineceğini bilmiyorum

  106. Ömer Koman dedi ki:

    her zaman en son yuklediğiniz kod hafızada kalır.

  107. ufuk bayrak dedi ki:

    Merhaba Ömer bey yazılarınız ve tavsiyeleriniz çok güzel devamını bekliyoruz.

    arduino ile bugün tanıştım led yakma hareket sensörü işlemlerinden sonuç aldım

    size müsadenizle 2 sorum olacak ;

    1. si= 2 yada daha fazla komut vermek için ne yapmalıyız?

    2.si = belirli aralıklarla sürekli olarak örneğin 6. ve 7. çıkışa şase vermek istiyorum.
    Teşekkürler.
    belki araştırsam çözerim ama yardımcı olursanız sevinirim…

    iyi çalışmalar.

    • Ömer Koman dedi ki:

      işlemci yazılan komutları sırası ile çalıştırır aynı anda çalıştırma diye bir durum yok aslında ama akıllı bir şekilde programı tasarlarsanız sanki herşey aynı anda çalışıyormuş gibi bir durum oluşabilir. daha gelşmiş sistemlerde (real time operating sistemlerde) ise her task/işlem zaman parçalarına ayrılır ve hepsi azcı azcık çalıştırılarak sonuca gidilir ama kafanızı karıştırmayın arduinoda böyle yapmamıza gerek kalmıyor.

      sürekli olarak 6. ve 7. pinlerde şase çıksın demek 6. ve 7. çıkışların 0(sıfıra) çekilmesi demek dijital ortamlarda.
      digitalWrite(6,LOW) dediğinizde 6.pinin çıkış sıfır olur HIGH desekdık +5v okuyacaktık çıkışta. önceden setup bölümünde pinMode(6,OUTPUT) yazmayıda unutmayın. delay komutuda milisaniye bazında beklememizi sağlar aşağıda örneği var.

      digitalWrite(6,LOW)
      delay(1000)
      digitalWrite(6,HIGH)
      delay(1000)
      digitalWrite(6,LOW)

  108. ufuk bayrak dedi ki:

    röle yardımı ile 2. sorumu araştırma ile de 1 sorumu çözdüm teşekkürler.

    • Ömer Koman dedi ki:

      yazı altlarına yapılan yorumları onaylama ve çevaplama süreci uzun oluyor foruma gelip sorularınızı hemen yayınlayabilirsiniz diğer topluluk uyelerinin de tecrubelerinden faydalanabilirsiniz.

  109. Red Flag dedi ki:

    Arduino ile ilgili Bazı Videolara Buradan Baka Bilirsiniz
    //www.youtube.com/watch?v=owOgHHKJ5bk

  110. Emrah dedi ki:

    Omer Bey merhaba, bugün hazırlamış olduğunuz döküman ile arduino ile tanışmış ilk denemelerimi yapmış olduk. Güzel uygulamalar yapabilmek için başlangıç adımlarında rehberimiz oldunuz. Teşekkür ederim.

  111. çağrı dedi ki:

    arkadaşlar arduino ile GLCD (grafik lcd) ye yazı yazdırmak istiyorum fakat ne yaptıysam olmadı hep hata verdi kütüphanesini tanıttım ama olmuyor. bir örnek varmı elinizde? varsa ulaştırımısınız yardımcı olursanız sevinirim teşekkürler…

    • Ömer Koman dedi ki:

      kullandığın glcd nasıl bir şey standart dışı olabilir her glcd modulun pinlerinin sıralaması farklı oluyor neyi aldıysan datasheetınden o pinleri bulacaksın. potansla kontras ayarını da yapman lazım. foruma gel glcdnın markasını ve denediğin kodu koy bakalım…

  112. ismail çal dedi ki:

    merhaba hocam arduino da adc kesmesi adı altında bir fonksiyon varmıdır. yapacağım projede analog gelen hiç bir veriyi kaçırmamam lazım. İnterrupta sadece harici ve timer kesmesi karşıma çıkıyor.

  113. berfin dedi ki:

    merhaba arduino nun standart bilgisayarlardan farkı nedir?

    • Ömer Koman dedi ki:

      arduinonun standart bilgisayardan farkları da vardır benzer yanları da vardır. bir işlemciden ibarettir hızı 16 mhz dir, bilgisayarda da bir ana işlemci vardır hızı 2,400 mhz dir. içinde geçici bilgileri sakladığı ram vardır 1-4 kilobayt arasında değişir modele göre, standart bilgisayarda da ram vardır 4,000,000 kilobayttır. arduinoya sd kart bağlayabilirsiniz bilgisayarada aynı kartı bağlayabilirsiniz. arduinoda yazdığınız bir led blink örneği 500byte tutar aynı programı standart bilgisayarda 16 kilobayt yer tutar. arduinoya keyboard mouse lcd ekran kamera wifi ethernet bağlayabilirsin bunları sınırlı hızda ve kapsitede kullanır bazen hepsini aynı anda kullanamazsın, standart bilgisayardada bu donanımları görebilrsin hepsini aynı anda full kapasite kullanabilirsin. 5-20 dolar maliyetle bir odanın sıcaklığını her saniye bir internet bulutunda kaydedip raporlayabilirsin internetten bir yerden girip arduinoya bağlanıp bilgileri sorabilirsin, standart bilgisayarda bu işi yapmak için 1000 dolar masraf etmen gerekir. bir arduinoyla 4 motorlu bir helikopteri ucurup kilometrelerce ileri veya 1000mt yuksege çıkarıp fotoğraf çekebilirsin, standart bilgisayarı bu dört motorlu helikopterin üstüne bile koyamaz hatta yerinden bile kaldıramaz hadi yaptın diyelim 1 dk bile pille çalıştıramazsın. arduino ile kendine kol saati yapabilir yakana çiçek gibi asabilirsin herkes seni taktir eder, standart bilgisayarla bunları yapmaya kalkarsan herkes sana bi tarafıyla güler… bilmem anlatabildim mi!

  114. Ahmet dedi ki:

    hocam yapacagımız her devre için ayrı bir arduino mu lazım nasıl olacak

    • Ömer Koman dedi ki:

      bazı şeyleri deneyip hevesini merakını gidereceksen bir tane yeter istediğin kadar program yukleyip çalıştırırsın. kalıcı bir proje ise mesela evin ışıklarını zamana göre açıp kapatan bir devre yapıp bunu devamlı kullanacaksan devreni kapar bir kutuya koyar evine bağlarsın bir daha unut gitsin. başka bir proje yapacağın zaman yeni bir tane alıp devam edersin. foruma gel…

  115. yakup ulutaş dedi ki:

    temp = analogRead(A0);
    temp = temp * 0.48828125;
    myGLCD.print(“Sicaklik: “, 1, 10);
    myGLCD.printNumI(temp, 58, 10);
    myGLCD.print(“c”, 75, 10);

    Aracımda takılı Arduino + LM35 ile sıcaklık ölçüyorum. Derece bazen sürekli saçmalıyor 5c diyor 1 saniye sonra 40c diyor 1sn sonra 15c diyor sürekli saçma sapan derece ölçüyor bunun sebebi ne olabilir ?

    Forumda sorulmuş ama bir kavga dövüş kopmuş kapanmış cevap verende yok artık…
    http://forum.arduinoturkiye.com/index.php?p=/discussion/2146/lm35-sicaklik-sensoerue#Item_18

    • Ömer Koman dedi ki:

      lm35 çok beğendiğim bir sıcaklık sensoru değil ama kullanayım diyorsanız tek bir analog okuma yerine arka arkaya 5-10 okuma yapıp bunların ortalamasını almayı deneyin derim. birde lm35 in beslemesi oldukça kararlı ve sabit akımda olması gerekir kablonun ucu çok uzunsa etraftan çok fazla parazit de alacaktır hele arabada bu paraztiler daha da fazla olur. lm35 datasheete bir bakın texas instrumente sitesindeki lin şu http://www.ti.com/lit/ds/symlink/lm35.pdf 8.bölümde aplication implementation bölümü ve daha sonrasında bazı önlemler görünüyor onları deneyin sorun çözülür… foruma gelince bazı konullanıcılar ileri gidince müdahale ediyoruz mecburen…

  116. Halit dedi ki:

    Merhaba Ömer Bey..
    Ben bitirme tezi olarak ardiuno kulanarak.. cayraskop, ivme sensörü ve rf alıcı verici yardımıyla sanal bir bateri yapmayı düşünüyorum. Bu proje için elimde bulunan arduino uno yeterli olur mu ? ana devremde rf alıcı ve ardiuno kullanmak istiyorum ve baterideki davul seslerini sd karta tanımlayarak ordan cekmeyi düsünüyorum..elimde bulunacak devrede ise rf verici ivme sensörü cayroskop ve mikrochip kullanmayı düşünüyorum.. bu konu hakkında ve programlama hakkında yardımcı olabilirmisiniz..

    • Ömer Koman dedi ki:

      bitirme teziniz için bu malzemeleri seçtiğinize göre kullanımına aşina olduğunuzu düşünüyorum, bir projede birden fazla işlemci olduğunda bunların farklı farklı olması projeyi olumsuz etkileyeceğini düşünüyorum en azında hangisini iyi biliyorsanız onlarla yapın microcihp biliyorum birde yanında arduino öğreneyim gibi bir mantık genelde iyi olmuyor, arduino platformu ie microchip platformu uzun zamandır çok farklılaştı program yazma ortamları da pek benzemez bir daha düşünün derim. gelen projelere buradan ve forumdan cevap vermeye çalışırım projelere dahil olmayı istemiyorum işlerim çok yoğun. siz projenizde urunleri birleiştirin biraz kod yazın takıldığınınz kısmı forumdan sorun bir çok kişi yardım edecektir…

  117. adsız dedi ki:

    ömer bey size acıyorum valla her yoruma cevap 😀

  118. yusuf dedi ki:

    merhaba ömer bey bn carkıfelek unıtesı yapmak ıstıyorum ve yuvarlak cercevenın dıs bölumlerıne 220 v lambalar baglamak ıstıyorum carkıfelek donerken dondugu hıza göre lambaların yurume hızı artıcak orantılı bı sekılde yapmak ıstıyorum sızce ne kullanmalıyım arduınoya gırıs almak ıcın tesekkur edıyorum.
    ayrıca blok nasıl acabılırım lınk atarsanız sevınırım

    • Ömer Koman dedi ki:

      220v çok tehlikeli yuksek gerilimdir gerekli önlemi almadan bağlantı yapmayın derim. kullanacağınız lamba sayısı nedir bilemiyorum ama arduino uno ile 10-12 adet kadar surebilirsiniz daha fazlası lazımsa arduino mega kullanabilirsiniz. her lambayı röle ile süreceksiniz her röleyi bir transistorle sureceksiniz. çarkı felek adımlarını okumanız için bir sabit bir anahtara ihtiyacınız var bu anahtara çark döndükçe bir mekanik yardımı ile anahtarı kol basıp açacak. bu her lamba veya adım için yazılımda çark adımı geldiğinde lambayı bir ileri taşıyacaksınız. biraz mekanık kısmı fazla olan bir iş olacak sizin için. blog açmak için bir çok site ve yazı var google dan arayarak birinden başlayın bir domain adresniz varsa wordpress den faydalanabilirsiniz ancak çoğu sistem %100 hazır gelmez bir çok size yabancı konuyu (html5 php css3 mysql post get put javascript bootstap jquery) biliyor olmanız gerekir biraz google yapın aklınıza yatan bir sistemi seçin kullanmayı öğrenin derim. arduino sorularınızı forumdan da sorabilirsiniz daha hızlı cevap bulabilirsiniz değişik kişilerden… kolay gelsin.

  119. Mehmet Taşdemir dedi ki:

    Merhaba hocam. Dün bir arduino uno siparişi verdim. Projem de 2 adette analog çıkışlı ivmeölçer kullanacağım. Benim sorum bu ivme ölçerleri arduino kartına nasıl bağlarım. ivme ölçer 3 eksen (x y z ) bu ivmeölçerlerin eksen bilgilerine göre arduino kartından nasıl çıkış alabilirim. Ve bu çıkışları bilgisayara nasıl aktarabilirim. (Proje amacım ivme ölçerlerden aldığim sinyallerle pc oyunundaki karakteri hareket ettirme yani klavyedeki w a s d tuşları yerine ayağa yerleştirilen bu ivmeölçerleri kullanmak.) Yardımcı olursanız çok memnun olurum.

  120. osman ekici dedi ki:

    hocam merhaba.. ben aynı buton ile start stop yapamıyorum bi türlü yardımcı olmanız dilegi ile tskler…

    • Ömer Koman dedi ki:

      starstop deşişkeni tanımla ve buna setup kısmında 0 değeri ver.
      buton bastığında startstop değişkeni 0 sa 1 yap veya 1 se 0 yap. lazımlı olan yerde eğer bu startstop değişkenine bak değer 1 se neyi istiyorsan çalıştır veya tersini yap… kolay gelsin programı yazdıktan sonra olmuyorsa foruma gel.

  121. berat akcan dedi ki:

    selamun aleykum uno ile nRF25L01 kablosuz haberleşme yapmaya çalışıyorum.
    ilk başta kütüphaneleri tanıtamadım ama şimdi oldu şimdide “int msg[1]” kodunda hata veriyor acil yardım edermisiniz.

    kodlar:

    #include
    #include
    #include
    #include

    #include
    #include “nRF24L01.h”
    #include “RF24.h”
    int msg[1];
    RF24 radio(9,10);
    const uint64_t pipe = 0xE8E8F0F0E1LL;
    int LED1=3;

    #include
    #include “nRF24L01.h”
    #include “RF24.h”
    int msg[1];
    RF24 radio(9,10);
    const uint64_t pipe = 0xE8E8F0F0E1LL;
    int LED1=3;

    void setup() {
    Serial.begin(9600);
    radio.begin();
    radio.openReadingPipe(1,pipe);
    radio.startListening();
    pinMode(LED1,OUTPUT);}

    void loop() {
    if (radio.available()){
    bool done = false;
    while (!done){
    done = radio.read(msg,1);
    Serial.println(msg[0]);
    if (msg[0] == 111) {delay(10);digitalWrite(LED1,HIGH);}
    else {digitalWrite(LED1,LOW);}
    delay(10);}}
    else {Serial.println(“sinyal bulunamadi..”);
    }
    }

  122. Nusret dedi ki:

    Merhaba; lcd ekrana yazdırdığım şeyleri sıramatiklerde bulunan küçük lazer yazıcıyla kağıda geçmek istiyorum. Yardımcı olabilir misiniz.Teşekkürlerimle

  123. ebubekir dedi ki:

    http://www.robotistan.com/arduino-baslangic-seti bu setı aldım hocam ama burdakı ardıno galıba hıcbı ıse yaramoyo icine kayıtmı yapamıyorum butun eheveesım kactı

    • Ömer Koman dedi ki:

      o setteki ürün arduino uno nun klon versiyonu. klonla orjinal arasındaki tek fark bilgisayara bağlanan usb surucusunun farklı olması. ch340 windows driverının yukleyın ve en yeni versiyon arduino ide yi indirip çalışın. arduino örneklerınden led blinki yukleyip çalıştırmayı deneyin. arduino ide içinde arduino tipini doğru seçin serial monitor ile uno ya bağlanmaya çalışın. elektronikte hiç bir zaman işiniz rast gitmeyecektir kendi kendinize çözum uretmeye ve bol bol sabırla araştırmaya hazır olun. her zaman dediğim gibi arduino basittir ama kolay değildir. sıkışırsan foruma gel. kolay gelsin

      • ebubekir dedi ki:

        hocam dedıgınız gıbı kendım ugrastım emeksız yemek olmaz dıyerek ama ardunıo 1.7.7 ındırdım kurulumunu yaptım windos 8 8.1 oldugu ıcın usb kurulumunu da yaptım ama yıne hata olıyorum hatada soylekı Avrdude : Usbdev_opan ( ) : Diğer USB aygıtını finanse Did Not ” USB ” gıbı cevırısı benım sorunum ardunıo uno nun klon olmasıydı sımdıden den tessekkur ederım .

  124. Halit dedi ki:

    Omer bey merhaba.. bir projeyle ugrasıyorum ve bır sorun ıle karsılastım. sorunum su arduıno mega ve sd kart modulu kullanarak muzık calmak ıstıyorum. muzık caldırabılıyorum fakat projemde 2 muzıgın bırlıkte calması gerekıyor bunu yapmam mumkun mu nasıl yapabılırım bunu? tesekkur ederım

  125. Ömer Koman dedi ki:

    müziği nasıl çaldırıyorsun bilemiyorum yazılımsal pcm ile yapıyorsan iki audio ses dalgasının her ornekleme parçası birbirleri ile toplama işlemine sokulup yeniden oluşturulup pwm ile surmen gerek. çalıştığın mp3 turu bir dosya ise o dosyayı çalan modul bunu desteklemiyordur buyuk ihtimal olmaz. kolayca yapılabilecek bir şey değil istediğin. foruma gel sor değişik fikirler çıkabilir.

    aşağıdaki şekilde sesleri çalıyorsan kutuphaneleri yeniden yazarsan olabilir sanırım
    https://www.arduino.cc/en/Tutorial/SimpleAudioPlayer
    Şurada da daha karmaşık bir örnek yapılmış ekolama filan yapmışlar ses birleştirme var
    https://blog.adafruit.com/2015/12/14/tutorial-for-audio-playback-mixing-and-more-using-teensy/

  126. kürşad aydemir dedi ki:

    Merhaba Ömer bey, Arduino ile uzun zamandır uğraşmaktayım, fakat şuanda elimde
    Arduino Nano bulunmakta ve içindeki programı okumam gerek (yedeklemek için) bir türlü başaramadım. Yardımlarınızı bekliyorum teşekkür derim.

    • Ömer Koman dedi ki:

      nanoda icsp pinleri vardır oraya avr isp programlayıcı ve programı ile bağlanıp tum nano hafızası programınızla beraber bootloader de geri alınabilir tabi okudugunuz şey yazdığınız kodla alakası olmayan makıne kodudur özgun kaynak kodunuzu geri oluşturamazsınız ama aldığınız kodu başka bir nanoya yukleyebilirsiniz isp programlayıcı ile tabi. projelerinizin yedeklerini almalısınız her zaman

  127. Katsumoto Genryuusai dedi ki:

    Ömer abi yazının ikincisini yazacakmısın abi? Eğer yapabilirsen çok sevinirim abi. Emeklerin için çok teşekkür ederim koca yürekli insan… 😀

  128. Safak dedi ki:

    Omerbey merhaba arduinodan döngü kullanarak dijital çıkışları kullanarak kaç hz lık sinyal alabiliriz.
    Step motor ve sürücü kullanarak 200adimli step motor sürmeyi dusunuyorum dakikada kactur dondurebilirim

    • Ömer Koman dedi ki:

      bir şu yöntem var pek şık değil ama step sağlar
      void loop() {
      digitalWrite(motorPin, HIGH); // sets the LED on
      digitalWrite(motorPin, LOW); // sets the LED off
      }

      birde stepper kutuphanesi kullanabilirsin daha şık olur setSpeed komutu ile kaç devir lazımsa parametre olarak girersin o devre getirir motoru
      setSpeed(rpms)

  129. Ali dedi ki:

    Merhabalar arduino akilli perde icin kod ariyorum nasil bulabilirim

    • Ömer Koman dedi ki:

      kod istersen kimse kod vermez ama foruma gel sor nasıl yapabilirm diye hatta biraz kod yaz takıldığın yerde yardımcı olan çıkacaktır.

  130. Mehmet Yozgat dedi ki:

    Öncelikle herkese merhabalar ben bir çift ldr yardımıyla bir dc motoru pwm li şekilde kontrol etmek istiyorum.Motor 5 rpm’dir.Proje solar tracker.
    Ama bu kodlarla motoru kontrol edemiyorum. L298n motor sürücüsünün aktif olarak kullandığım halde acaba programda eksiklik var mı ilgilenmiş veya ilgilenen arkadaşlar yardımcı olabilirse çok sevinirim çok acil!
    int motorsag1=6;
    int motorsag2=7;
    int motorsol1=8;
    int motorsol2=9;

    int ldrlt = A0; //LDR top left A0
    int ldrrt = A1; //LDR top rigt A1
    int ldrld = A2; //LDR down left A2
    int ldrrd = A3; //LDR down rigt A3
    int lt;
    int rt;
    int ld;
    int rd;
    int EnA=11;
    int EnB=10;

    void setup()
    {

    Serial.begin(9600);

    pinMode(motorsag1, OUTPUT); // declare motorsag1 output
    pinMode(motorsag2, OUTPUT); // declare motorsag2 output
    pinMode(motorsol1, OUTPUT); // declare motorsol1 output
    pinMode(motorsol2, OUTPUT); // declare motorsol2 output
    pinMode(EnA, OUTPUT);
    pinMode(EnB, OUTPUT);
    pinMode(ldrlt, INPUT);
    pinMode(ldrrt, INPUT);
    pinMode(ldrld, INPUT);
    pinMode(ldrrd, INPUT);
    }

    void loop()
    {

    int lt = analogRead(ldrlt); // sol
    lt= map(lt, 0, 1023, 0, 255);//okunan değerin belirli değere oranlanması
    int rt = analogRead(ldrrt); // sağ
    rt= map(rt, 0, 1023, 0, 255);//okunan değerin belirli değere oranlanması
    int ld = analogRead(ldrld); // üst
    ld= map(ld, 0, 1023, 0, 255);//okunan değerin belirli değere oranlanması
    int rd = analogRead(ldrrd); // alt
    rd= map(rd, 0, 1023, 0, 255);//okunan değerin belirli değere oranlanması

    if (lt < rt)
    {

    digitalWrite(motorsag1, HIGH);
    digitalWrite(motorsag2, LOW);
    digitalWrite(motorsol1, LOW);
    digitalWrite(motorsol2, LOW);
    analogWrite(11,lt);

    delay(200);
    }
    else if (ld < rd)
    {

    digitalWrite(motorsag1, LOW);
    digitalWrite(motorsag2, LOW);
    digitalWrite(motorsol1, HIGH);
    digitalWrite(motorsol2, LOW);
    analogWrite(10,ld);

    delay(200);
    }

    if (rt < lt)
    {

    digitalWrite(motorsag1, LOW);
    digitalWrite(motorsag2, HIGH);
    digitalWrite(motorsol1, LOW);
    digitalWrite(motorsol2, LOW);
    analogWrite(11,rt);

    delay(200);
    }

    else if (rd < ld)
    {

    digitalWrite(motorsag1, LOW);
    digitalWrite(motorsag2, LOW);
    digitalWrite(motorsol1, LOW);
    digitalWrite(motorsol2, HIGH);
    analogWrite(10,rd);

    delay(200);
    }
    else if (rd == ld && rt == lt )
    {

    digitalWrite(motorsag1, LOW);
    digitalWrite(motorsag2, LOW);
    digitalWrite(motorsol1, LOW);
    digitalWrite(motorsol2, LOW);

    }

    • Ömer Koman dedi ki:

      motorları once ldr olmadan çalıştırmayı deneyın motor tarafındaki kodlardan emin olalım. sonra ldr leri devreye alalım. servo motorlarla daha kolay olabilirdi bu proje.

  131. Halit B dedi ki:

    Merhaba Ömer Abi… Bitirme projem ile ugrasıyorum ve ffarklı PWM cıkıslarından 4 tane wav dosyasını aynı anda calmam gerekıyor. TMRpcm-master kutuphanesıyle ve onun ornegıyle 2 tane wav dosyasını aynı anda caldırabılıyorum fakat kutuphanede bı oynama yapmamız gerek 2 haftadır ugrasıyorum bu kuuphande hangı degısıklıklerın yapılacagını anlamadım. bı enable multı komutu var onunla aynı tımer uzerınden 2 pwm cıkısı ıle 2 farklı muzık calıyor bıde mode 2 dıye bısey var bunda ıse aynı tımerdakı pwm cıkısları bırlesık oluyor ve aynı muzıgı calıyor. bukonu hakkında bana yardımcı olurmusunuz sıze zahmet olmazsa ve vaktınız varsa kutuphaneyı ınceleyıp ne yapabılecegımı soyleyebılırmısınız. tesekkur ederım

    • Ömer Koman dedi ki:

      kutuphaneyi biraz inceledim aklıma gelen kolaylık, multi de mode2 stereo da 4 pin çıkış var yani stereo olarak kaydedılmış 2 sesi çalıştırıyor. bu stereo kanallara ayrı ayrı 4 farklı sesi donustursen hepsi aynı anda farklı farklı 4 ses çalmış olursun programda herhangi bir değişiklik de yapmana gerek kalmaz sadece ses kanallarına ayrı ayrı sesler yukleyip çalıştıracaksın. amaç aynı anda 4 ses çalmak ise boyle olur ama 4 sesi ayrı ayrı konteol edemezsin 2 şer kanal beraber olacak hep.
      kutuphanenin bu 4pin suren mode2 yi ustunden geliştirme yapılabılır sanırım ama bunun için sd karttan dosya okuma kodunda aynı anda 4 dosyayı handle edecek şekilde dönüştürmen lazım. 2 yerine 4 dosyayı açabildiğinde bunları kanalarda ayrı ayrı kontrol edecek yol bulunabilir sanırım. eğer bu işlemi yapacak timer zamanı yetmiyorsa pwm hızını düşürerek ses kaliitesi azalır ama aynı zahmetle 4-8 dosya çalınabilir sanki…

  132. Semanur dedi ki:

    ARDUİNO üzerine kod yazdım ama sürekli aynı kod çalışıyor kodu nasıl silerim acil cevaplar mısınız??

    • Ömer Koman dedi ki:

      arduinoda yazılan kod sonsuza kadar kalır/çalışır yoksa çamaşır makinasındaki yıkama programları da bozulur giderdi. ama arduinoya başka bir uygulama yuklersiniz mesela led blink örneğini yükleyin. en azından fişe taktığınınzda zararsız bir program çalıştığını bilirsiniz hemde test edilmiş olur.

  133. merve dedi ki:

    merhaba hocam 4 ldr den arduino ile aynı değerleri okumayı nasıl sağlayabilirim yardımcı olur musunuz teşekkürler

    • Ömer Koman dedi ki:

      tek ldr yi okudun mu? sen nasıl okuyorsun yaz kodunu şuraya. normal adc ile okuyacaksın ldr nin bir bacağı +5v ta bir bacağı adc de olacak adc pinden gnd ye de bie 10k direnç bağla bu kadar. 4 ldr için 4 tane analog pinle okursun hepsini tek tek

  134. Ertug_TR dedi ki:

    Merhaba,Arduino uno R3 içindeki programı nasıl download edebilirim.

    • Ömer Koman dedi ki:

      atmel isp programlayıcı ile arduino işlemcisinin içini okuyabilirsin.

      • Ertug_TR dedi ki:

        Merhaba,
        Bende Arduino Uno R3 var,bunun içinde herhangi bir kodlama yüklenmiş mi? yani bir program upload edilmiş mi?Nasıl öğrenebilirim?

        • Ömer Koman dedi ki:

          öğrenemezsin. ilk kez almışsanız ya boştur yada led blink örneği olur içinde elektriğe yada usb ye takınca led yanıp soner o kadar. başka bir program yuklu ise ve dışarıya uygun bir çıkışm vermıyorsa bilme şansınız yok

          • Ertug_TR dedi ki:

            Hocam İlk kez almadım,daha önceden çalışan bir programdı AM 2302 sensör uygulamsı vardı,üzerinde Wiznet W5100 haberleşme kartı var,internetten ısı ve nem bilgisi okunuyordu,ama nasıl haberleştireceğim onu bilmiyorum,bilgileri nasıl görürüm.Tşk

          • Ömer Koman dedi ki:

            arduino içindeki kodları okuyabilirsim ama bunlar dönüştürülmüş makina kodudur kaynak kod olarak elde edemezsin.

  135. Ertug_TR dedi ki:

    Peki Hocam,Wiznet W5100 haberleşme kartını nasıl haberleştirebilirim.Local Ip verşp nasıl ulaşabilirm.Daha doğrusu arduino bağlı sıcaklık ve nem biligisini nasıl görürüm.Tşk.

  136. Ertug_TR dedi ki:

    Teşekkürler Hocam;
    Arduino içinde mevcut çalışan bir program vardı.Bilgisayarla haberleştirebilsem,bir arayüzmü gerekli ve tabiki bir IP verilmişse bunuda görmem
    lazımdı.

    • Ömer Koman dedi ki:

      web server orneğini yazın içine atın youtube da ve google da daha çok ornek var onlardan da faydalanın olmazsa kodun son hali ile forum gelin sorun…

  137. Halit B dedi ki:

    Merhaba ömer bey.
    arduino megaya nrf24l01 ve sd cart modülü baglamam gerekiyor ve ikisinden de ayni anda veri almam gerekiyor fakat pinlerde bi cakisma oluyor yani ikisinde de MOSİ MİSO SCS ve SS ayaklarini kullaniyor bunlari ust uste bindirip baglayinca ikisinden de veri alamiyorum. Bunun icin bi çözümünüz var mi tesekkur ederim.

    • Ömer Koman dedi ki:

      spi kullanan modullerde bu sorun var evet. spi modullerde chip select pini (SCS) kullanımını yonetebilirseniz aynı anda bir cok modul kullanılabilir. teorik olarak anlatıyorum siz bunu programınızda ayarlamanız lazım. kullandıgınız modullerde scs pinlerini farklı pinlere bağlayın ve ilk init işlemlerinde bu pinleri programınızda ayarlayın ve bu şekilde olmasını lazım. (ss pininden emin değilim bir ara bakar yazarım buraya) eğer bu şekilde çalışmaz ise siz kutuphane içinde scs pinini sececek rutinleri duzeltmenız gerekecek ki eğer ıyı programcı degılsenız ve spi kullanımmı hakkında bılgınız yoksa olmaz kurcalamayın derım lcd yı başka bir şekilde cozun.

  138. Cemal dedi ki:

    Yapmak istediğim anahtar (buton olmayacak) ve bluetooth ile lamba yakıp söndürmek istiyorum .Anahtar ile açtığım yada kapattığım lambayı bluetooth ile söndürmek ya da açmak istiyorum. Yani vaviyen gibi çalışan bir program yazmak istiyorum. Paylaştığım programda tek röleyi anlattığım gibi çalışıyor. Ben daha fazla röleyi vaviyen sisteminde çalıştırmak istiyorum. Bu konuda yardımcı olabilir misiniz.
    int butonpin2 = 10;
    int butonpin3 = 11;
    int butonpin4 = 12;
    int led2 = 2;
    int led3 = 3;
    int led4 = 4;
    int led5 = 5;
    int data;
    int buton2;
    int buton3;
    int buton4;

    void setup() {
    Serial.begin(9600);//Seri iletişimi başlatır
    pinMode(butonpin2, INPUT); // buton1 giriş
    pinMode(butonpin3, INPUT);
    pinMode(butonpin4, INPUT);

    pinMode(led2, OUTPUT);

    }

    void loop(){
    if(Serial.available())//Eğer bluetooth bağlantısı varsa kodları çalıştır
    data=Serial.read();

    buton2 = digitalRead(butonpin2); // buton değerini oku
    buton3 = digitalRead(butonpin3); // buton değerini oku
    buton4 = digitalRead(butonpin4); // buton değerini oku

    digitalWrite(led2,1); // LED2 açık
    if (data==’a’==buton2==1)
    digitalWrite(led2,0); // LED2 kapalı
    delay(100);
    }

    • Ömer Koman dedi ki:

      Foruma gelsenize… biraz yogunumda. Normal sartlarda ikiden fazla anahtari nasil yapiyorsunuz. Sonucta tek lamba var.

      • Cemal dedi ki:

        Evet benim yaptığım programda tek lambayı kontrol edebiliyorum . Ben daha fazla lamba kontrol etmek istiyorum. Mesela 2,3,4,5 gibi pinleri çıkış olarak kullanarak dört lambayı hem anahtar hem bluetooth la kontrol etmek istiyorum.

  139. buse dedi ki:

    merhaba. ben LDRli, servo ile açılıp kapanan bir perde sistemi yapıorum. biraz acemiyim ama mekanik ve elektrik kısmında zorlanmadım fazla LM35,lcd falan filan da ekleyip biraz geliştirdim.tüm sistemin çalşmasını ve Servonun iki yöne dönmesini sağladım perde toplandıktan sonra motorun durmasını röle eklemeden kodla nasıl sağlayabilirim sizce? yardımcı olabilirseniz sevinirim

    • Ömer Koman dedi ki:

      bir stop sensoru koyabılırsenız, perdenın durmasını ıstedğiniz noktada bu stop sensorunu tetıklemenız yeterli olur. yazılımda bu sensor tetıklendıgınde motru durdurursunuz. stop sensoru dıye bir şey satılmaz normalde basit bir anahtarı perdenın ucundaki bir mekanızma ıle kısa devre ettirin veya bir manyetık sensor kullanın perdenın ucuna ufak bır mıknatıs kullanın perde yukarı cıkınca manyetık anahtar ceker stop tetıgı yaparsın.
      baska bır yontem perdenın yukarı aşağı ınıs suresını hesaplayıp toplam o surelere geldıgınızde motoru durdurursunuz ama kontrolu cok zor olur.
      yada diğer yontem motorun adımlarını saydırabılıyorsanız adım sayısından perdenın yukseklıgını hesaplayıp motoru durdurursunuz.
      hatalı durumlar ıcınde motorun zorlanmasının cektıgı akımdan anlayıp stop ettırırsınız. foruma gelin sorun orada da yapan vardı benzer bır proje…

    • Cebar elektrik teknisyeni dedi ki:

      Slm aynı proje de bana yardımcı olurmusun

  140. Berşan dedi ki:

    Merhaba Ömer Bey;

    Arduino’ya yeni başlayacağım. orijinal tercihimdir. Sizce hangi modelini almalıyım ?(uno yeterlimidir farkları nelerdir ?) Tavsiye ettiğiniz kit var mı ?

    • Ömer Koman dedi ki:

      yeni başlayanların uno ıle yurumesi daha kolay oluyor temel kodlar unoya gore yazılmış olacak denemeler daha sorunsuz aşılabılıyor. ardinodan sonra daha fazla pin sayısı ıle mega gelmektdir. boyut onemliyse nano daha ufak ve daha az pin sayısı ile gelmektedir. daha hızlı işlemci gerektiğinde arduin due ile çalışılabılır ama due de işlemci ARM temellidir yani akıllı telefonlardaki işlemci sınıfındandır genelde uno da çalışan kodlar due de de çalışır ama çogundada due ye uygun duzenleme gerekir. seçeceğiniz arduino yapacağınız proje ıle de alakalı bıraz eğer yapmak istediğiniz proje kodunu internetten bulmuşsanız neyle yapılmışsa onunla devam edin. ama genel olarak amacınız öğrenmek ve daha sonra proje yapmayı düşünüyorsanız uno seçimi mantıklı görünüyor.
      genelde bir set satışı yapılır bu setlerde çeşit çeşit compnenetler olur ihtiyacınız hangisine uygunsa onlardan alabılırsınız, içerikde jumper kablolar breadboard lcd dirençler potlar ledler sensorler motorlar servolar şeklinde genişler gider.
      setlerin dezavantajı belki kullanmayacağınız malzemelere para vermeniz olacaktır. faydalı yanı yeni başlayan biri ne alacağını bilemeyeceği için ilk aşamada hazır bir seti almak klaylık sağlar. dikkat edilecek nokta içeriği sizin projelere yardımcı olacak mı ona bakarsınız.
      bu yazıdaki malzemeler çok azdır mesela direnç led anahtar pot tan ibarettir hepsini tek tek alsanız en fazla 5tl tutacaktır. bunları ogrendikten sonra ek olrak lcd ve role transistor alınabılır daha sonra değişik sensorlerı de alsanız mesela mesafe olçme sensoru sıcaklık nem sensoru bunları da toplasanız 25tl eder. daha gelişmiş projelerde rf veya bluetooth alıcı verici kontrol projeleri yapsanız 25 tl e bunlar tutar. internete veri yollayan okuyan (iot) projeleri için ethernet veya wifi esp8266 alınsa bunlarda 50 tl tutar. motor sureyim deseniz motor surucu kartı ve motorlar ve guclu adaptor almak gerek bunlarda 100 tl civarı olabılır. boyle boyle gıder bu işler. kolay gelsin…

      • Berşan dedi ki:

        Teşekkürler Ömer bey…

        Hedefim robot yapmak(makalede belirttiğinizlerden geçerek).

        Ayrıca arduino pil ile çalışıyor mu?

        • Ömer Koman dedi ki:

          arduin pil ile çalışır 2 seçeneğin var 9v pil veya akuye bir kablo baplayıp adaptor girişinden bağlarsın burada en az 9v en cok 12v kullanman gerek. bord uzerınde 5v yazan yere elinde tam 5v luk bir guc kaynağı bağlayabılırsın ama bu pinlerde elektriksel koruma olmadıgından en ufak voltaj yuksemesınde arduşno ve buna bağlı devreler cok kolay yanacaktır. pil kullanıldıgında kullanım suresını hesaplaman gerek. arduinoya hıc bısey bağlı olmasa durduğu yerde 70ma çeker. 9v piller 300ma verebılır bunun kullanım suresi 300/70=4saat anca çalıştırır teorik olarak. ama buna bir motor bağlasan ki motorlar değişken akım çekımı vardır kendı halınde donerken 300ma ceken motor bır teker bağlayıp yurutsen 2A cekebılır bu durumda senın 9v pil ya motoru beslemez yada 5dk bile çalışmayabılır. pil kullanımında çalışma suresını buna benzer seklıde hesaplarsın. birde robot konusu gerçekten zordur ben bunca yıldır elektronıkle ugrasırım hala robot yapmadım, robota sıra gelen kadar yapacak ogrenılecek cozuecek o kadar cok sey varki mesele sadece hareket ettırmek yonetmek degıldır. sımdıye kadar hedefıne ulşmış doğru duzgun bıtmış robot gormedım daha. tek tavsıye edebılecegım cızgı ızleyen robot yapmanız olabılır belkı en azından yere bır yol harıtası cızıp onu ızlemesı ve buna ek olarak cızgı ustundekı duraklarda durup bazı gorevler yapması beklenebılır… daha fazlası ıcın hayatınızndan cok fazla zamanınızı harcamnız gerekecek.

          • Berşan dedi ki:

            Teşekkürler…

            Yalnız ben bunu 3-5 yıl değil gücüm tükenene kadar yapmak istiyorum.

            Ömer Bey, çizgi izleyen ile başlayacam ama onla bitirmeyeceğim.
            Ayrıca Ömer Bey, sizi bayağı meşgul edecem kusura bakmayın.

          • Ömer Koman dedi ki:

            Istediginiz gibi kullanabilirsiniz sitemizi forumumuzu. Hayirli olsun…

  141. Fatih dedi ki:

    Hocam ben kod dili pek fazla bilmiyorum ama öğrenmek istiyorum önce hangi kod dilini öğreneyim bide arduinoya yakin bi kod dili solermisiniz

    • Ömer Koman dedi ki:

      arduinoda yazılan kodlar c++ compiler ıle donusturulur. siz arduino orneklerını yazıp iyi bir programlama dili ogrenmiş oluyorsunuz zaten. onemli olan teknıgı de ogrenıyor oluşunuz. kodun içindeki yapılan işlerin mantığına algoritma denıyor yani neyi nasıl ifade edileceği ve nasıl bir işlemcinin çalıştırılacağını algoritma ile kuruyorsunuz ve bunu c++ javascript basic pascal assembler gibi dillerle ifade ediyorsunuz a=b+c tum dillerde(assembler hariç) aynı şekilde yazılıyor. burada amac birşeyleri toplayıp a ya eşitlemenın sağlanması ve öğrenılmesi. bir arduino alıp kodları yukledıkçe kendınız anlayacaksınız zaten. hevesinizi yitirmeyin işiniz basit olacak ama kolay olmayacak defalarca deneyin sonunda olacaktır ama…

    • Fatih dedi ki:

      Hocam öncelikle verdiğiniz bilgiler için çok teşşekür ederim ben de 2 tane arduino uno var ikisiyle çalisiyorum ama örnek kodlardan yardım alarak yani sizin anliyacaniz kendim arduino için kod yazmak bunun icinde c++. Öğrenmem mi gerek

  142. Mehmet dedi ki:

    Merhaba Ömer Bey

    Ben arduino ya yeni başlayacağım. Normal set alsam mı daha iyi olur yoksa dnyArduino mu alsam daha iyi olur.

    Şimdiden teşekkürler

    • Ömer Koman dedi ki:

      bilmiyorum. forumda sorun kullanan varsa cevap çıkabilir… ileride yapmayı hedeflediğiniz projeyi araştırın neyle yapılmışsa omalzemeleri yavaş yavaş edinin

  143. ismail tohan dedi ki:

    cümleten selamün aleyküm kolay gelsin üniversite ögtencisiyim bilgisayar bölümü okuyorum yıl sonu projesi olarak sesle kontrol edilen robot u yapmaya başladım ama kodunu atamadım eger ki bilen ve anlayan varsa yardım edebilir mi
    numaram:05454986061 arayabilirsiniz

    • Ömer Koman dedi ki:

      aleyküm selam, foruma gelin sorun ama kimsede kod yok. size o robotu yapmanız için gerekli malzemeleri söyleyebilirler sizde o malzemelerin gerektirdiği kodları internetten bulabilirsiniz sonra onları birleştirip projenizi bitirirsiniz.

  144. coskun dedi ki:

    shield for arduino yazilimini biliyomusununuz acil

  145. İBRAHİM ÇİÇEK dedi ki:

    arduino ile 24 voltluk motorları kontrol etmek istedim telefonla bunun için röle devresi yaptım fakat arduinom bikez çalıştı ve birdaha çalışmadı bunun nedeni ne olabilir yardımcı olursanız çok sevinirim.

  146. Onur Ttma dedi ki:

    Arduino Uno R3 ile çizgi izleyen robot yaptık .Motor sürücü entegremiz L293B . 2 ADET Sensörlerimiz var bunlar CNY70 .
    Robot kitlerimizi daha önce kontrol amaçlı 9v ile besledik ve normal çalıştığından emin olduk. Tüm bağlantılar yapıldı, kodlar yazıldı. Beyaz taban üzerinde siyah çizgiyi takip etmeli idi . Fakat sensörlerimiz siyah ya da beyaz alan gördüğünde olması gereken gibi değil , robot kitleri farkı yönlere ve çok az dönmekte . En baştan kontoller yapıldı fakat aynı sorun devam etmekte .

    KODLAR :
    */
    const int sag_i = 4;
    const int sag_g = 5;
    const int sol_i = 7;
    const int sol_g = 6;
    const int sol_sensor = 2;
    const int sag_sensor = 3;
    int sol_durum, sag_durum;

    void setup()
    {
    pinMode(sag_i, OUTPUT);
    pinMode(sag_g, OUTPUT);
    pinMode(sol_i, OUTPUT);
    pinMode(sol_g, OUTPUT);
    pinMode(sag_sensor, INPUT);
    pinMode(sol_sensor, INPUT);
    //Serial.begin(9600);
    }

    void loop()
    {
    sol_durum = digitalRead(sol_sensor);
    sag_durum = digitalRead(sag_sensor);

    // Serial.print(“sag sensor = “);
    // Serial.println(sag_durum);
    // Serial.print(“sol sensor = “);
    // Serial.println(sol_durum);
    // Serial.println(“____________________________”);
    // delay(1000);

    if (sol_durum == LOW && sag_durum == LOW) // ileri
    {
    digitalWrite(sag_i, HIGH);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, HIGH);
    digitalWrite(sol_g, LOW);
    }
    else if (sol_durum == LOW && sag_durum == HIGH) // sağa
    {
    digitalWrite(sag_i, HIGH);
    digitalWrite(sag_g, HIGH);
    digitalWrite(sol_i, HIGH);
    digitalWrite(sol_g, LOW);
    }
    else if (sol_durum == HIGH && sag_durum == LOW) // sola
    {
    digitalWrite(sag_i, HIGH);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, HIGH);
    digitalWrite(sol_g, HIGH);
    }
    else
    {
    digitalWrite(sag_i, LOW);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, LOW);
    digitalWrite(sol_g, LOW);
    }
    delay(25);
    digitalWrite(sag_i, LOW);
    digitalWrite(sag_g, LOW);
    digitalWrite(sol_i, LOW);
    digitalWrite(sol_g, LOW);
    delay(50);
    }
    Bu sorunlar yazlımda olabilir mi ? Kontrol edebilir misiniz ? KOLAY GELSİN ….

  147. Kayra dedi ki:

    Elimde 2 adet Hc-06 Bluetooth sensörden mevcut. Şimdi telefondan bağlanma mantığını az biraz anladım. Taratıp bulup şifre girip hallediyoruz. Ama bu 2 sensör birbirini nasıl görecek onu anlayamadım. Bir bilgisi olan var mı ? Yardım edebilecek birisi ?

    • Ömer Koman dedi ki:

      hc06 dan biri ana aktif sistem olacak bağlantı ve veri alış verişin o yönetecek diğeri pasif bekleyecek bağlantı yapılsın diye.

  148. serkan dedi ki:

    merhaba Omer hocam arduino ile yapılan bir davul devresi sesler hafızasında kalacak şekilde pc bağlantısı olmadan calışabilirmi izlediğim videolarda midi şeklinde pcye bağımlı yapılmış devreler gördüm

    • Ömer Koman dedi ki:

      arduino audio diye aratınca ve arduino r2r diye aratınca ses ureten ve çalan uygulamalar var ek ses modulleri ilede birşeyler yapılabilir.

  149. desialarmci dedi ki:

    saolun cok iyi bi yazı olmuş

  150. Raşit dedi ki:

    Merhaba ben kaldıgım odaya led ıle ısıklandırma yapmak ıstıyorum.Arduino ile ledlerin işiginin kontrolunu ve pc den oynattıgım müzigin ritmi ile işık degişimi yapabilir miyim ? Temel c bilgim var.Ama daha önce hiç arduino ile bir sistem yapmadım hiç bir şey bilmiyorum bunun hakkında.Bana yardımcı olabilir misiniz ? Teşekkürler .

  151. Mecnun KARABAŞ dedi ki:

    Selamun aleyküm arkadaşlar…
    benim bir sorunum var belki burada yardımcı olabilecek bi arkadaş vardır
    hemen soruna geçeyim , ben arduino uno nun veri giriş bölümünden 5 volttan fazla gerilim verdim , 6 volt gibi fakat bunun pek bir sorun olmayacağını düşünüyordum , fakat şuan arduino ya program atamıyorum ve l ledi sürekli bir biçimde yanmıyor

    • Ömer Koman dedi ki:

      merhaba arduino bozulmuş olabilir atmega328 entegreyi değiştirirsen çalışma ihtimal var. foruma gelin bu kısımda işler yavaş yürüyor.

  152. atakan ates dedi ki:

    Selamlar.
    Arduino da 2. gunum.
    Blink calistirdim. delay zamanlariyla oynadim. 2. bir led daha ekledim ve su kodu yazdim.
    void setup() {
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    }
    void loop() {
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
    digitalWrite(12, HIGH);
    delay(500);
    digitalWrite(12, LOW);
    delay(500);
    }
    ve normal olarak islem sirasiyla oluyor ben 1. ve 2. led donguleri ayni anda baslasin istiyorum. yani 2. bir dongu bunu nasil yapabilirim.
    tesekkurler.

  153. Ömer Koman dedi ki:

    delay(xxxx) demek yerine delay(1) yapın ve bir sayaçla sayım yapın. sayaç değeri 1000 olunca bir iş yaparsınız. her led için ayrı sayaçlar ve ayrı zaman sayaçları yapın.

    void setup() {
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    digitalWrite(13, HIGH); //ledler hangi durumda sönukse onu set edin
    digitalWrite(12, HIGH);
    }

    int tsay1=0;
    int tsay2=0;
    int led1st=0;
    int led2st=0;

    void loop() {
    delay(1);//1 ms bekleme
    tsay1=tsay1+1;
    tsay2=tsay2+1;
    if (tsay1>=1000){ //1sn olunca biseler yap
    tsay1=0;
    //burada led1 duruma gore ledi yak yada sondur
    }
    if (tsay2>=500){ //500ms olunca bıseler yap
    tsay2=0;
    //burada led2 duruma gore ledi yak yada sondur
    }
    }

    yukarıda yaklaşık 500ms ve 1000ms lik peryotlerla iş yapan bir program yazdım led yakma sondurme durumunu sız koyarsınız koda. mantık anlaşılmıştır herhalde. kodu test etmedim ama çalışması lazım.

    • atakan ates dedi ki:

      desteginiz icin tesekkurler.
      prorami yuklemede hata verdi.
      ama sayac mantigi aklima yatti sadece sayac ile ilgii r kod ve aciklama gonderirseniz sevinirim

      ornegin.

      2 sayac olsa 1 tanesi ledin yanma biri sonme suresini belirtse cok memnun olurum.

      tesekkurler

      • Ömer Koman dedi ki:

        kodun açıklamalarında 1.led ile 2.ledi aç kapa kodunu nereye koyacağınızı yazdım zaten. led1st ve led2st değişkenlerini led durumlarını kontrol için kullanabilirsiniz. ledler birbirinden bağımsız olarak ayarladığınız zamanlarda yanıp sonecektir. led2 kodunu siz aşağıda koyabılırsınız.

        ornek:

        void setup() {
        pinMode(13, OUTPUT);
        pinMode(12, OUTPUT);
        digitalWrite(13, HIGH); //ledler hangi durumda sönukse onu set edin
        digitalWrite(12, HIGH);
        }

        int tsay1=0;
        int tsay2=0;
        int led1st=0;
        int led2st=0;

        void loop() {
        delay(1);//1 ms bekleme
        tsay1=tsay1+1;
        tsay2=tsay2+1;
        if (tsay1>=1000){ //1sn olunca biseler yap
        tsay1=0;
        //burada led1 duruma gore ledi yak yada sondur yapıyoruz
        if (led1st==0){
        digitalWrite(13, LOW);
        led1st=1;}
        else
        {digitalWrite(13, HIGH);
        led1st=0;
        }
        }

        if (tsay2>=500){ //500ms olunca bıseler yap
        tsay2=0;
        //burada led2 duruma gore ledi yak yada sondur
        }
        }

      • Ömer Koman dedi ki:

        şurada 2 li ledle kod sımulasyonu da yaptım duzgun çalışıyor
        start sımulation butonuna basarsınız

        https://circuits.io/circuits/2723629-arduino-2-led-blink

  154. ABDULLAH dedi ki:

    #include

    SoftwareSerial mySerial(10, 11); // RX, TX
    int led1 = 7;
    int led2 = 6;
    int led3 = 5;
    int led4 = 4;

    void setup()
    {
    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT);
    pinMode(led3, OUTPUT);
    pinMode(led4, OUTPUT);
    mySerial.begin(9600);
    mySerial.println(“LED uygulamasi”);
    }

    void loop()
    {
    char ch = mySerial.read();
    if (ch == ‘q’)
    {
    digitalWrite(led1, !digitalRead(led1));
    if (digitalRead(led1) == HIGH)
    {
    mySerial.println(“LED 1 yandi”);
    }
    else
    {
    mySerial.println(“LED 1 sondu”);
    }
    }
    if (ch == ‘w’)
    {
    digitalWrite(led2, !digitalRead(led2));
    if (digitalRead(led2) == HIGH)
    {
    mySerial.println(“LED 2 yandi”);
    }
    else
    {
    mySerial.println(“LED 2 sondu”);
    }
    }
    if (ch == ‘e’)
    {
    digitalWrite(led3, !digitalRead(led3));
    if (digitalRead(led3) == HIGH)
    {
    mySerial.println(“LED 3 yandi”);
    }
    else
    {
    mySerial.println(“LED 3 sondu”);
    }
    }
    if (ch == ‘r’)
    {
    digitalWrite(led4, !digitalRead(led4));
    if (digitalRead(led4) == HIGH)
    {
    mySerial.println(“LED 4 yandi”);
    }
    else
    {
    mySerial.println(“LED 4 sondu”);
    }
    }
    if (ch == ‘z’)
    {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    mySerial.println(“Tum LED’ler sondu”);
    }
    if (ch == ‘x’)
    {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    mySerial.println(“Tum LED’ler yandi”);
    }
    }

  155. Merhaba Ömer bey,yapmak istediğim proje bir kuluçka makinesi,2×16 lcd yada benzer bir ekran ile 9 adet parametre set edip,ısı ve nem kontrolü yapmak.parametrelerdeki değere göre bir motor sürmek.ne tavsiye edersiniz?

    • Ömer Koman dedi ki:

      foruma gelin kuluçka makınası yapanlar var oradan da sorun yardım çıkar. sıcaklığı kontrol etmek için ne kullnacaksınız rezistan gibi bir şeyse röle ıle sürün havalandırma gerekecekse fan da suremenız gerekecek 2×16 lcd işinize yarar birkaç tane de buton kullanmanız lazım başlatma durdurma ve ayarlar için birde genelde uzun süreli zamanlayıcı programda kullanacaksınız bunun için bir rtc kullanırsanız iyi olabilir elektrık kesintilerinde programın kaldıgı veya ayarlandıgı parametrelerden başlaması için eproma yazma okuma işlerını yapabilmeniz lazım. motor sürme için çeşitli yollar var ufak ufak hareketlerle motor donecekse step motorlar bu işe ıyı olur ama dc reduktorlu motorlar da iş görüyor motora göre motor surucu seçeceksiniz. yazılımda sıcaklıgı ıyı kontrol edeyım fazla dalgalanma olmasın dıyorsanız pid algoritmasını öğrenmeniz gerekecek. aklıma gelenler bunlar. arduinoya yeni başlıyorsanız zor proje olabilir bu nedenle bahsettıgım sensor ve modullerı tek tek programda kullanıp kontrol etmeyı öğrenmenız gerekecek. foruma da gelin kolay gelsin…

  156. yerli üretim jako papağanı dedi ki:

    teşekkürler cevabınız için.bakıyorum foruma

  157. emin uçak dedi ki:

    hocam arduıno da çıkışa baglı olan led i 5 saniye aralıklarla süreklki yapık söndüren programı nasıl yazarız ??

  158. alican duran dedi ki:

    merhaba ben arduinoya yazılım yükleyemiyorum bilnki bile taslak yüklenirken hata oluştu biyor sebebi nedir

    • Ömer Koman dedi ki:

      klon ardunolarda usb sürücüsü farklı oluyor üstünde ch440 diye entegresi varsa internette aratın ve windows driver i kurun.

  159. murat dedi ki:

    int ses_sensoru = 4;
    int role = 5;
    int alkis = 0;
    long algilama_araligi_baslangic = 0;
    long algilama_araligi = 0;
    boolean isik_durumu = false;

    void setup() {
    pinMode(ses_sensoru, INPUT);
    pinMode(role, OUTPUT);
    }

    void loop() {

    int sensor_durumu = digitalRead(ses_sensoru);

    if (sensor_durumu == 0)
    {
    if (alkis == 0)
    {
    algilama_araligi_baslangic = algilama_araligi = millis();
    alkis++;
    }
    else if (alkis > 0 && millis()-algilama_araligi >= 50)
    {
    algilama_araligi = millis();
    alkis++;
    }
    }

    if (millis()-algilama_araligi_baslangic >= 400)
    {
    if (alkis == 2)
    {
    if (!isik_durumu)
    {
    isik_durumu = true;
    digitalWrite(role, HIGH);
    }
    else if (isik_durumu)
    {
    isik_durumu = false;
    digitalWrite(role, LOW);
    }
    }
    alkis = 0;
    }
    }
    iyi akşamlar, ardinyo ile alkışla yanıp sönen masa lambası yapıyorumda , kodu yazdım fakat hata veriyor ardinyoya atarken acaba kodda mı hatam var diye sormak istedim.

  160. Ömer dedi ki:

    Arduino programında koöutları yazdıktan sonra programı atmak istediğimde program yüklenemedi hatası alıyorum neden olabilir

    • Ömer Koman dedi ki:

      sıralama şöyle arduino ideye girdiğinizde bordun tipi(uno,nano,mega gibi) seçili olması lazım ve portun da(serial veya comm) seçili olması lazım port kısmında comm1 dışında birşeylerin olması lazım eğer arduino orjinal ve duzgun kurulmuşsa buraya kadar sorun olmaması lazım klon orjinal olmayan arduinolarda usb entegresi farklı oluyor ve genelde ch340 diye bir entegredir bunun sürücünü bulup kurmanız lazım, bu kurulumdan sonra port olarak gelen seçeneği seçip devam edersiniz.
      bunun dışında dikkat etmek gereken diğer konu arduino programlarında buyuk kucuk harf hassasiyeti vardır “Degisken1” ile “degisken1” farklı şeklerdir. program yuklenmeden once hatasız bir şekılde commpile olması gerekir bunda da sorun yoksa arduino ya compile edilmiş kod yuklenebılır bu kurallar aşağı yukarı her mıkroişlemci programlaması ıcın gerekli adımlardır.
      Ayrıca programlarınızın yedeğini alın compile edilen kodun metnini kaybederseniz geriye döndüremez veya arduino içinden okuyamazsınız.

  161. Kayseri 38 dedi ki:

    Arduino’da Analog Buton Kullanımının programını yazabilir misiniz ?

    • Ömer Koman dedi ki:

      yazıdaki 1.4 potans okuma orneğini kullanabilirsiniz.

      int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3
      // outside leads to ground and +5V
      int val = 0; // variable to store the value read

      void setup()
      {
      Serial.begin(9600); // setup serial
      }
      void loop()
      {
      val = analogRead(analogPin); // read the input pin
      Serial.println(val); // debug value
      }

      şuradan alındı https://www.arduino.cc/en/Reference/AnalogRead

      • Kayseri 38 dedi ki:

        Peki birde arduino nano nun analog pinine birden fazla buton baglayip bir ledi calistirmanin programini da yazabilir misiniz ?

        • Ömer Koman dedi ki:

          yok yazamam hazır bir şey vermek yerine yol göstermeyi tercih ediyoruz. butonları dirençlerle seri bağlayacaksınız. her buton bır dırencı devreye sokacak böylece sadece tek pinle bır suru butonu okumuş olursunuz. foruma gelin daha hızlı olur işler…

  162. burak dedi ki:

    TSC230 renk sensörü ve 3 servo motor ile bir Arduino programı yazmam lazım Çarşamba gününe..program şöyle çalışıcak..

    Renk sensörü kırmızı algıladığında servolar 30 ar derece
    Renk sensörü mavi algıladığında servolar 40 ar derece
    Renk sensörü yeşil algıladığında servolar 50 şer derece döücek bunun programını yazıp yollaybilirmisiniz.. öğrenciyim ve projemi yetiştiremicem..
    çok teşekkür ederim..

  163. Dilek aktaş dedi ki:

    Sayın Ömer Bey
    Yorumları ve yazıları okudum. Açıkçası bu yazıyı şu an korkarak ve tereddütle yazıyorum. 2017 yılına girerken bir bilişim öğretmeni olarak ne kadar sığ kaldığımı anladım . Aynı soruları belki defalarca soran arkadaşlar vardır be affınıza sığınarak tekrar soruyorum. Bir orta okulda bilişim öğretmeniyim . Öğrencilerime robotiği sevdirecek onların parlak zihinlerinde merak uyandıracak geleceğe dair güzel projeler hayalleri kurduracak ama basit düzeyde bir şeyler öğretmek istiyorum.
    Ama ardunio ya ait hiçbir fikrim ve bilgim yok . Ama emek vermeye zaman ayırmaya hazırı. Sizden ricam hem kendim öğrenebileceğim hemde öğrencilerime öğretmek için kullanabileceğim ardinio adım adım anlatan döküman istiyorum. Kitapta olabilir. Şu an kendimi gerçekten salak gibi hissediyorum ama olsun . Umarım yardımcı olursunuz .Teşekkürler.

    • Ömer Koman dedi ki:

      aman öğretmenim demeyin öyle sizin gibilere çok ihtiyaç var, hem kendini geliştirip hemde öğrendiğini birilerine aktaracak cefakar insanlar çok az inşallah daha da guzel hedeflere ulaşırsınız ulaştırırsınız. biz bu siteyi kuralı 5-6 sene oldu galiba ılk başladıgımızda hıc Turkçe kaynak yoktu burada bır şeyleri defalarca anlatmaya çalıştık, eskiye göre gelenler çok daha iyi durumda sorular daha mantıklı olmaya başladı projelerinı buradan öğrendıklerı ıle bıtıren çok ogrenci oldu. şimdi sitemizin yazarlarından çoşkun taşdemirin Arduino kitabı ılklerdendır ama hala temel bılgılerı guzelce anlatır, tavsıye ederım. sitemizdeki yazıları gözden gecırın nasıl projeler var bır bakın fıkrınız olur. robot konusunu duyunca ben benım tuylerım dıken dıken olur cunku en son yapılabılcek bır proje ıken ılk başta hem ogrenır hem robotumu yaparım mantıgı ıle gelenlerın bır yere vardıgını gormedım henuz çok fazla problemle ugraşmaktan sıkılıp bırakırlar. daha kolay ve zevklı hedeflerı seçmek belkı daha teşvık edıcı olur ılerısı ıcın. ılla hareket etsın bır proje olsun dersenız cızgı ızleyen robot projelerını daha faydalı buluyorum en azından kod geliştirme gorev planlama gıbı işler yapılabılır ustelık yere bantla istendıgı gıbı çızılecek bır yollu takıp eden aracın durup kalkması yol değiştirmesı gıbı gorevler cok zıhın acıcı olabılır ve guncel olarak endustrıde de kullanımı oldugu ıcın belkı bırılerıne faydası bıle olabılır ılerıde. daha sonrakı proje sıcaklık olcup bazı fonksıyonlar yerıne getıren araçlar olabılır hatta kuluçka makınesı yapanlar var, başlangıç ıcın benım yazılarımda temel başlangıç projelerı var oradakı malzemelerı alıp deneyebılırsınız hepsı de basıt ama ogretıcıdır. 2×16 lcd ve sıcaklık sensoru ıle bılgısayara ıhtıyac duymadan kendı başına çalışan projeler de guzel olabılır ınteraktıftır sonucu hemen elde edılebılır. aklıma bunlar geliyor sız ılerleme durumuna gore buralarda yazın yıne dılımızın dondugunce anlatmaya çalışırız. malzeme alımı için robotistan.com çiddi çalışır, direnc.net te ıyıdır pek hafta sonu sipariş geçmeyın çok yoğunlar herturlu karışıklık başınıza gelebılır. kolay gelsin…

  164. Dilek aktaş dedi ki:

    Verdiğiniz bilgiler ve ilginiz için çok teşekkür ederim.

  165. MuYasNa Naruto dedi ki:

    Merhaba,Öncelikle teşekkürler verdiğiniz bilgilerden dolayı.
    Elektrik-elektronik 1.sınıf öğrencisiyim.Hiçbir şey bilmeyen ben denize üniversite hayatı boyunca izleyebileceği bir yol haritası çizebilir misiniz?
    Nereden başlmalıyım ? Hangi dilleri bilmeliyim ? Hangi programları kullanmalıyım ?
    Teşekkürler…

    • Ömer Koman dedi ki:

      nereden başlama meselesi her konuda karşınıza çıkacak, içgüdülerinize guvenın ve en sevdıgınız sevecegınız kısmını kendınıze başlangıç noktası seçmeye çalışın ve sınırsız sabrılı ve çalışkan olun denemekten yılmayın vazgeçmeyın, pekı bunu nasıl anlayacağız, bir konunun başlangıç noktası seçimi araştırma ve merakla başlar, bu siteye kadar geldiğinize gore araştırma hevesınız var bu iyi. konu hakkında guncel ve gelecege yonelık entellektuel bılgılerı magazın gıbı araştırın ılgınızı çeken yonlerı daha fazla araştırın ve kendı yeteneklerınıze gore araştırma alanı bulacaksınız bu alanlardakı detaylarda ne gerektıgını anlarsınız kısa surede ve bu sızın başlangıç noktanız olacak. elektrık elektronık konuları ıcınde yazılım ne kadar sıze uyar bılmıyorum temel elekrık ve elektronık konularını okulki egıtımden faydalanıp ıyı ogrenmeye bakın cok sıkıcı gelebılır ama temel elektrık ve fızık bılgısı olmadan zor ılerleme oluyor. programlama dili seçiminde çok ozgur degılsınız bence cunku ılgı duyacagınız konu ve araçları sızın bazı dıllelerı ogrenmenmeye zorlayacak zaten, bunlara dıkkat edın ve meslegın gerektırdıgı toolları ıyı sekılde ogrenın.
      yazılım dıllerı c, c++, c# ve java olarak cok karşılaşcaksınız ve hepsi birbirinde turedıgı ıcın bırını ogrenınce dıgerlerıde gerektıgınde geçiş yapılabılıyor yada karma kullanılıyor, ben hala basic bile kullandıgım oluyor yerıne göre bunlara ek olarak. bence dil ogrenmekten zıyada algorıtma tasarlama mantık kurma yapı oluşturma butuncul akıcı kod oluşturmayı ogrenmeye odaklanın bu nnu ogrenmek ıcınde cok kod yazmanız lazım cok kod yazın boş kaldıkça bır algorıtma tasarlayın herhangı bir problemı cozmeye hesaplamaya yonelık olsun, zamanla oturacak bu araçlar kafanıza, hatta bırı ıle konusurken kodlar devreler gozunuzun onunde uçuşacak be bırbırıne bağlandıgını gordugunuz noktaya geldıgınızde olmuşunuz demektır. ybancı di olarak ıngılızceyı tum lıtaraturu takıp edecek sevıyede bılmenız lazım, malzeme datasheetınde gecen kavramları anlamaya calısın ılk malzemenın datasheetıne ele gecırıp okyun ve bunu alışkanlık halıne getırın zamanla neresıne bakacagınızı anlayacaksınız. malzeme kodundakı bır harf degışımı bıle çok şey ıfade eder ve dıkkatınızı odaklamayı ogrenın. şimdilik bu kadar başarılar dılerım. iyi yoldasın devam et…

  166. umut dedi ki:

    hocam bız bır kod yazdık bu koda 2 farklı buton var.1 butona bastıgımızda sagı bır 1 1 buton bastıgımızda sol ledlerı yakacak ve 15sn olacak sag butona bastıgımızda 15 sn bıtmeden sola basınca gecmıyor bır nevı araba sınyalı gıbı aradakı geçisi yapamıyoruz bunun bır kodu varmıdır yardım edersenız sevınırım…

  167. Fatmanur dedi ki:

    Merhaba,
    Ben DS18B20 ile vücut sıcaklığı ve pulseoksimetre sensörü ile nabız ölçümü yapan ve HC05 ile bilgisayara aktaran bir sistem tasarlayacağım. Bu sistemi hangi Arduino modülünde yapmam gerekir? Daha önce Arduino ile çalışmadım giriş-çıkış pinleri açısından vs. hangisi tüm sistemi kaldırır?
    Teşekkürler.

    • Ömer Koman dedi ki:

      arduıno uno en standart urundur bulabılecegınız tum kod ve semalar buna uygun olacaktır. daha kucuk ve pin sayısı az urun ıse nano dur. yenı başlayacaksanız uno ıle başlayın. satın almadan once projenızle ılgılı sensorlerı de araştırın bazen ozel bır arduıno ceşidi gerektırebılır. foruma da gelın

  168. RSL dedi ki:

    Merhabalar ben arduinoda yeniyim
    İnternetten bir kaç parça getirttim.

    -Arduino pro mini
    -0.96 inç oled pinleri(GND,VCC,D0,D1,CS,DC,RES) var

    Bu malzemeler uygun örnekler arıyorum hocam.
    Bazı örnekler buldum ama diğer arduino çeşitleri ile yazilgi için hata veriyor.
    Yardimci olursanız çok sevinirim hocam.

    • Ömer Koman dedi ki:

      ustte menu çubugunda forum linki var foruma gelirseniz daha hızlı yanıt bulursunuz. foruma yazarken yazdıgınız calısmayan kodu da ekleyın. komple kod yazıp kımse vermeyecektır sıze

  169. B.TÜZEL dedi ki:

    Arduino ile az bir zamandır tanışığım bu konuda desteğinize ihtiyacımız var. Bize yardımcı olur musunuz? -4006 bilim fuarı için ve fuara 3 gün kaldı öğrencilerim 6. sınıf henüz,danışmanım ama henüz çok yeniyim-
    ses sensörü ambulans sesi ile tetiklenerek; 4’lü kavşak sinyalizasyonunun, ambulans sesini algılayınca ışıklardan birine 10 saniyeliğine geçiş üstünlüğü verip 3 lambayı da kırmızı yakacağı bir kod dizilimi nasıl olmalı? Bizim kodumuz aşağıda, ancak sinyalizasyon çalışsa da ses sensörünü devreye sokamadık.Not: ambulans hep aynı taraftan gelecek. ses sensörü bozuk değil, denedik. potansiyometreyi çevirip hassaslaştırdık.
    kod dizilimi:
    int DO = 1; //D0 pini
    int DA = A0; // A0 pini

    int redNS = 2;
    int yellowNS = 3;
    int greenNS = 4;

    int redEW = 5;
    int yellowEW = 6;
    int greenEW = 7;

    int redNS1 = 8;
    int yellowNS1 = 9;
    int greenNS1 = 10;

    int redEW2 = 11;
    int yellowEW2 = 12;
    int greenEW2 = 13;

    int ses1 = 40;//analog ses seviyesi
    int ses2 = 48;
    int ses3 = 50;
    int ses4 = 65;
    int ses5 = 60;
    int ses6 = 65;
    int ses7 = 70;
    int ses8 = 75;
    int ses9 = 80;

    int sesdegeri = 0;

    void setup() {
    //Serial.begin(9600);
    pinMode (redNS, OUTPUT);
    pinMode (yellowNS, OUTPUT);
    pinMode (greenNS, OUTPUT);

    pinMode (redEW, OUTPUT);
    pinMode (yellowEW, OUTPUT);
    pinMode (greenEW, OUTPUT);
    }

    void loop() {
    sesdegeri = analogRead(DA);

    if (sesdegeri >= ses8)
    {
    digitalWrite(redNS, LOW);
    digitalWrite(greenEW, LOW);
    digitalWrite(greenNS, HIGH);
    digitalWrite(yellowEW, LOW);
    digitalWrite(redEW, HIGH);
    digitalWrite(yellowNS, LOW);

    }
    else
    {
    digitalWrite(redNS, HIGH);
    digitalWrite(greenEW, HIGH);
    delay(3000);
    digitalWrite(redNS, LOW);
    digitalWrite(greenEW, LOW);

    digitalWrite(greenNS, HIGH);
    digitalWrite(yellowEW, HIGH);
    delay(500);
    digitalWrite(yellowEW, LOW);
    digitalWrite(redEW, HIGH);

    delay(2000);
    digitalWrite(greenNS, LOW);
    digitalWrite(yellowNS, HIGH);

    delay(500);
    digitalWrite(yellowNS, LOW);
    digitalWrite(redEW, LOW);

    }

    }

    • Ömer Koman dedi ki:

      foruma gelseniz daha çabuk çözulur burası bıraz yavaş işler onay mekanızması gerekıyor. ses sensörü hiç mi çalışmıyor yoksa kararsız mı. ses sensörünü tektıkleyecek bir yol bulmanız lazım. yada sıren sesıne kıtlenebılen bır fıltre oluşturmanız lazım. yani 3 gunde olacak bır iş değil tabi bu. sanırım ortam gurultulu olunca siren sesi gürültüye karışıyor bır seviye farkı yaratamıyor ortamda. çok guçlu bır sıren bağlayın ve duymasını sağlayın sensorun, aklıma ılk gelen kolay şey bu. birde ses sesnsorunden gelen verıyı devamlı oncekı ıle de karşılaştırın bır oncekıne gore %10 luk bir fark varsa yıne işlemi tetıklemeyı de deneyebılırsınız

  170. fatih dedi ki:

    arkadaşlar merhaba. arduino 3 tane p10 led tabelaya birbirinin devamı şeklinde yazı gönderiyorum. yalnız yazı sabit durmasını istiyorum. Bilen varsa yardım eder misiniz?

  171. Hamza dedi ki:

    Selamunaleyküm.
    ben 2*16 LCD ekran ile yazı yazdırırken bir komutu tam anlayamadım
    LCD.begin(16,2);
    bu komut bildiğim kadarıyla 16, karakter sayısı 2, de satır sayısı diye biliyorum ancak. .begin komutu ne işe yarar.

    • Ömer Koman dedi ki:

      lcd kutuphanesinin ihtiyacı olan temel başlangıç bılgılerını ve gerekli değişkenlerın sıfırlamasını yapmak ıcın kullanılıyor. coğu donanım ve sonsorlerde bu tıp işlemlerin programın başında bir kez yapılması normal.

  172. yılmaz dedi ki:

    Merhaba ben yılmaz arduino ıle role devresı yapmayı pılanlıyorum ama banım ısıme yaraması ıcın roleyı saniyede 3…4 kez ac kapa yapması gerekıyor .sızce bu sıztem olurmu ve start verıldıgı zamn sorunsuz 1 hafta calısırmı yanı o role 1 hafta boyunca saniyede 4 kere basarak gunlerca calısıp saglıklı bır sıztem olurmu ve kodlaması konusunda bılgım de yok henuz kodlarını yazmak cok mu zor olur sadece sanıyede 4 defa ac kapa yapacak ve durmıcak sımdıden tesekur ederım yanıt verır senız benı buyuk bır dertten kurtaracaksınız.

    • Ömer Koman dedi ki:

      sanıyede 4 kere açılıp kapanması olurda gurultu de olur şakşuk diye, birde kontakların bir mekanık ömrü olur ve bu omur ustunden geçen akım ve mekanık çarpmadan kaynaklanan yıpranmayı da hesaplayın. elindeki rölenın datasheetını bulmaya çalışın orada genelde minimum montak ömrü hakkında bilgi vardır mesela 1 milyon kez gibi. çok yuksek akımlar kontaklardan akmıyorsa sorun olmaz bence. foruma da gelin sorun tecrubesı olan cıkar.

  173. Ayşenur dedi ki:

    Merhaba ben arduino ile led ve servo motoru çalıştırmak istiyorum bunun için bir kod yeri var mı? birinin örneğini diğerinin altına kopyaladığımda hata veriyor

  174. Bilgi Tartısı dedi ki:

    arkadaşlar bana 3 eksenli pusula sensörü ile step motoru çalıştıracak kodlar lazım bana yardımcı olur musunuz.

    • Ömer Koman dedi ki:

      foruma gelin ama size kolaylık kullandıgınız sensorun adını google a yazın cok guzel kodlar gelir

  175. ismail küçük bekir dedi ki:

    Hocam ben bir proje yapıyorum ama park sensörüne saniye şeklinde bir şey yapmam gerekiyor bu şu şekilde olacaktır bu mesela yaklaşınca led yanacak ama ses bir 10 saniye sonra bazerdan ses almamız gerek

    Bana Bu konu Hakkında Yardımcı Olursanız Çok sevinirim.

    Acill Cevap Almam gerek Hocamm!!!

    • Ömer Koman dedi ki:

      hazır projemiz yok kendisi birşeyler hazırlayıp takıldığı yeri ve kodu paylaşana bir kaç satır yazıp işini kolaylaştırabılıyoruz. foruma sorun. acil olan işlere de bakamıyoruz.

  176. Murat dedi ki:

    Cok faydali Temel bilgiler Tesekkür ederim

  177. Mithat dedi ki:

    Merhabalar Ben bilgisayar müh 4. siniftayim bitirme projesi alacagim bu yil ne yapma
    M konusunda daha baslayamadim fiktiver Olan Varsa Mail Atsa memnun olurum

    • Ömer Koman dedi ki:

      foruma gelin yada facebookdaki arduıno grupları bu konuda daha faal oralara bir sorun.

  178. Anıl Şanlı dedi ki:

    Ömer hocam merhabalar feouma böyle güzel şeyler kattığınız için öncelikle teşekkürler aklımda bi preje var aruino aracılığı ile bluetoothdan gercek araba kontrolü açıklamak gerekirse bluettothdan arabanın camlarını sunrrofunu klimasını vb. elektronik cihazlarını çalıştırmak istiyorum ben bilgisayar mühendisliği öğrencisiyim babam elektrik mezunu arduino ile röle kontrolü yapılabilir mi ve toplam 6-7 röle kontrol etmek için hangi model arduinoya ihtiyacım var yardımcı olursanız sevinirim.

    • Ömer Koman dedi ki:

      merhaba teşekkurler, oncelikle aracınızda bu kontrollerı yapmayı kendiniz keşfetmeniz lazım mesela kapıyı açma kapama veya diğer fonksiyonlar için aracınız hack lemeniz gerekecek bu konularda biz yardımcı olamayız, aracınızda öğrendiğiniz yonteme uygun baglantı ve surme şeklini daha sonra konuşabılırız. arduıno uno ıle projenızı yapabılırsınız rolelerı de surebılırsınız. kolay gelsin

  179. sefa gürkan dedi ki:

    Ömer Bey merhabalar. benim bitirme tezim var fakat bir yerde takılıp kaldım bir türlü bulamıyorum . hocam bir mahalle düşünün ben bu mahallede her sokağa bir ışık yerleştirdim. sinyal kullanarak mesala benim elimdeki butonla veya otamatik olarak bir ışığa 50 metre mesafem olunca ışık yanacak sadece o ışık. Ama ışığı geçtikten 5 metre sonra sönücek yani en yakındaki ışığı yakıp geçtikten sonra sönücek diğer en yakındaki ışığı yine 50 metre mesafe olunca yakmak istiyorum.Nasıl bir yol izlemeliyim yardımcı olursanız cok sevinirim.

    • Ömer Koman dedi ki:

      bluetooth 4.0 desteği olan bir modulle yapılabılır sanırım hm17 bu işe uygun. her lambaya bu modulu yerleştireceksiniz ve işlemciyle kontrol edeceksiniz. sizde de bu modulden olacak, bt 4.0 da ozellık olarak advertise ozellıgını kullanacaksınız elinizdekı modul adv ozellıgı ıle etrafa kimlıgını yayınlar bu mesafe yaklaşık 30mt olur, lambalardaki alıcılar bu advertise datasını farkettıklerı anda lambayı yakacak şekılde programlarsınız. bu konuda size daha fazla yardımcı olamam gerıye kalan çalışma size ait 😉 kolay gelsin

  180. levent hoca dedi ki:

    ömer bey merhaba öğrencim arduıno kullanarak tubitak 4006 projesi yapacak ama kodlamada sorun yaşıyor benimde teknik bilgim yok projede kullandığı malzemeler mz80 sensör , L298 motor sürücü ve ar 3603hb servo motor. projesi şu şekilde öğrenci bir düzenek hazırlamış 3 adet pil sensörün önünden geçecek motor çalışacak ve motorun bağlı olduğu bir sistem hediye verecek. motor 1 tur 360 döndükten sonra duracak tekrar sayaç sıfırlanıp 3 pil daha atılması beklenecek.döngü bu şekilde devam edecek bağlantı şemasını ve kodlamasını yollayabilirseniz öğrencime süpriz yapmayı düşünüyorum çocuk uyku uyuyamıyormuş sevinmesini istiyorum proje günüde az kalmış

    • Ömer Koman dedi ki:

      sizi anlıyorum bizde hazır bir kod olmuyor olan ornekleri oneriyoruz, arduıno veya elektronık veya kod yazma bir gecede ogrenılecek şeyler degıl bir surecim başlangıcı sadece. arduıno basittir ama kolay degıl hıc bır zaman, kişide sabır ve azim yanında araştırma gayreti de gerektiriyor. herhangi bir projede ilerleme için eldeki kullanılacak her malzemeyı test kodları ıle once tek tek çalıştırmayı denemek olmalı daha sonra senaryoya uygun kodu ufak ufak yazamalıyız bu şekılde takılmadan ılerleme olabılıyor, elinizdeki malzemelerin bağlantı şemelarını ınternetten bıraz arayın ve ornek kodu ıle gelecektır once onları test edın nasıl kullanıldıgını anlayın derım, malzemeleri neye göre seçildi bilemiyorum bu seçimler yhapıldıgına gore bellı bır araştırma yapılmıştır bunların kodları ve baglantıları da aynı sekılde arama ve test kodlarını deneyın baglantıda veya kodlarda çalışmayan şeyler olursa forumdan sorun böyle ılerleyelım.

  181. Mert dedi ki:

    Merhaba Ömer Bey, “volatile boolean” kodu ne işe yarar çoğu yeri araştırdım ama bulamadım cevaplarsanız sevinirim.

  182. volkan demir dedi ki:

    Merhaba ben bu devre yapmak istiyorum ama nasıl yapıcağını bilmiyorum 81 tane il olucak her bir ile bu tane mantar LED koyucam sesli olalarak hangi ili söylersem o ilin mantar ledinin yanmasını istiyorum yardımcı olursniz sevinirim mantıken hangi sistemleri kullanabilirim

    • Ömer Koman dedi ki:

      arduıno ıle ledleri surersiniz ama 81 lede arduınoda pin yetmeyecek bunları matrix şeklinde baglayıp surmenız lazım yada rgb akıllı ledler var ws1821 olan bunlar serı bağlanıp ucuna ledın kodunu yolladıgınızda tekı veya bolgesel de yakabilirsiniz. geriye konuşma tanıma kalıyor bunun ıcın bır androit telefon ve uygulama yazmanız lazım buradan google konuşma tanıma aracı ıle konuşulan her il karşılığında arduınoya bır kod yollrsınız v o led yanar.

  183. Ayhan KALLIOĞULLARI dedi ki:

    1,1,2,3,5,8,13,21……. Bu örüntünün programda yazabilir misiniz?

  184. gazihan dedi ki:

    hocam merhabalar.Assembly kodu olarak buton kontrollü led yakma ve buton kontrollü led parlaklık ayarlamak için yardımcı olabilirmisiniz

  185. alevvvvvv dedi ki:

    hocam merhabalar.Assembly kodu olarak buton kontrollü led yakma ve buton kontrollü led parlaklık ayarlamak için yardımcı olabilirmisiniz.

    • Ömer Koman dedi ki:

      her gün aynı soruyu başka başka kişiler soruyor aynı yazının altına. topluca cevap vereyim HAYIR OLAMIYORUZ !

  186. YUSUF CEYHAN dedi ki:

    İYİ GÜNLER ÖMER BEY
    BLUETHOOT HC05 İLE UĞRAŞIYORUM KODU YAZIYORUM AMA BİR TÜRLÜ YÜKLEYEMİYORUM HER SEFERİNDE
    avrdude: ser_open(): can’t open device “\\.\COM6”: Erisim engellendi.
    UYARISINI VERİYOR.NE YAPMAM GEREK ACABA BANA YARDIMCI OLABİLİR MİİSNİZ
    TEŞEKKÜR EDİYORUM İYİ ÇALIŞMALAR

    • Ömer Koman dedi ki:

      program yuklerken arduıno ustune bağlıysa hc05 onun pinlerini çıkar öyle yuklemeyi dene yukledıkten sonra takarsın pinleri yerine

  187. Omer dedi ki:

    Hocam benim bi ödevim var dht11 ile sensör yaptım 4 buton ekledim ve sıcaklık nemin alt üst değerlerini bu butonlarla belirledim fakat enerji kesilince arduino sifirlaniyor ben ayarladığım degerlerde kalmasını istiyorum bunun için sanırım ekare prom a yazmam gerekiyormuş ama nasıl oluyor bilmiyorum yardımcı olursanız sevinirim teşekkür ederim

  188. onur dedi ki:

    #include SFE_MicroOLED.h
    hocam burda yanlış olan ne

    • Ömer Koman dedi ki:

      #include < SFE_MicroOLED.h > şeklinde deneyin.
      ayrıca bu header dosyasının programınızla aynı klasörde olmasını sağlayın

  189. sinan dedi ki:

    merhaba arduino leonardo ile bi sorum olacaktı ben leonardo yu xbox 360 kolu olarak tanıtıyorum herşey güzel yalnız bana oyunlarda titreşim de lazım aynı xbox 360 kolunda olduğu gibi yardımcı olma ihtimaliniz var mı ? yardımcı olursanız sevinirim

    • Ömer Koman dedi ki:

      oyundan feedback almanız gerekiyor motor titreşimi almanız için devrenizde bir motor sürücü ve motor olacak. ayrıca usb drive da feedback aldığınızı da raporlamanız lazım ve oyununda bu ozelliği olması lazım ayrıca. bu konuda devreyei yapıp bulduğunuz kaynaklarda yada forumlarda bu konuda bilgi vardır mutlaka.

  190. hakan koç dedi ki:

    gerçekten çok güzel anlatmışsınız çok faydalı bilgiler ellerinize emeğinize sağlık

  191. Abdullah başaran dedi ki:

    ben iki tane yakınlık sensörü ile sürekli ölçüm yapmaya çalışıyorum fakat olmuyor. return yazıyorum onu yazınca sadece bitane sensörüm çalışıyor. yardım lazım..
    kodum:
    #define echoPin 13
    #define trigPin 12
    #define led 11
    #define echo2 5
    #define trig2 4

    void setup()
    {
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    pinMode(led, OUTPUT);
    pinMode(trig2, OUTPUT);
    pinMode(echo2, INPUT);
    }
    void loop()
    {
    int olcum = mesafe();
    if(olcum!=0)
    {
    digitalWrite(led, LOW);
    if(olcum<15)
    {
    digitalWrite(led, HIGH);
    }
    else
    {
    digitalWrite(led, LOW);
    }
    }

    int olcum2 = mesafe2();
    if(olcum2!=0)
    {
    digitalWrite(led, LOW);
    if(olcum2<15)
    {
    digitalWrite(led, HIGH);
    }
    else
    {
    digitalWrite(led, LOW);
    }
    }
    }

    int mesafe()
    {
    long sure, uzaklik;
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    sure = pulseIn(echoPin, HIGH);
    uzaklik = sure / 58.2;
    delay(50);
    return uzaklik;
    }

    int mesafe2()
    {
    long sure2, uzaklik2;
    digitalWrite(trig2, LOW);
    delayMicroseconds(2);
    digitalWrite(trig2, HIGH);
    delayMicroseconds(10);
    digitalWrite(trig2, LOW);
    sure2 = pulseIn(echo2, HIGH);
    uzaklik2 = sure2 / 58.2;
    delay(50);
    return uzaklik2;
    }

    • Ömer Koman dedi ki:

      mesafe() ve mesafe2() fonksiyonlarını setup() üstünde bir yere taşıyıp denermisin

  192. Eyup dedi ki:

    Bluetooth kontrollü araba yapıyorum ama motorlara sinyal gitmiyor acaba kodda bi sıkıntı var mı?
    const int motorA1=5;
    const int motorA2 = 6;
    const int motorB1 = 10;
    const int motorB2 = 9;
    int state;
    int i=0;
    int j=0;
    int vSpeed=255; // Standart Hız, 0-255 arası bir değer alabilir

    // Pinlerimizi belirleyelim
    Void setup() {
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT);

    // 9600 baud hızında bir seri port açalım
    Serial.begin(9600);
    }
    void loop() {
    /*Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur.
    (Aktif etmek için alt satırın “//” larını kaldırın.)*/
    // if(digitalRead(BTState)==LOW) { state=’S’; }
    //Gelen veriyi ‘state’ değişkenine kaydet
    if(Serial.available() > 0){
    state = Serial.read();
    }
    /* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/
    if (state == ‘0’){
    vSpeed=0;}
    else if (state == ‘1’){
    vSpeed=100;}
    else if (state == ‘2’){
    vSpeed=180;}
    else if (state == ‘3’){
    vSpeed=200;}
    else if (state == ‘4’){
    vSpeed=255;}
    /***********************İleri****************************/
    //Gelen veri ‘F’ ise araba ileri gider.
    if (state == ‘F’) {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
    }

    /**********************İleri Sol************************/
    //Gelen veri ‘G’ ise araba ileri sol(çapraz) gider.
    else if (state == ‘G’) {
    analogWrite(motorA1,vSpeed ); analogWrite(motorA2, 0);
    analogWrite(motorB1, 100); analogWrite(motorB2, 0);
    }
    /**********************İleri Sağ************************/
    //Gelen veri ‘I’ ise araba ileri sağ(çapraz) gider.
    else if (state == ‘I’) {
    analogWrite(motorA1, 100); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
    }
    /***********************Geri****************************/
    //Gelen veri ‘B’ ise araba geri gider.
    else if (state == ‘B’) {
    analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
    analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
    }
    /**********************Geri Sol************************/
    //Gelen veri ‘H’ ise araba geri sol(çapraz) gider
    else if (state == ‘H’) {
    analogWrite(motorA1, 0); analogWrite(motorA2, 100);
    analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
    }
    /**********************Geri Sağ************************/
    //Gelen veri ‘J’ ise araba geri sağ(çapraz) gider
    else if (state == ‘J’) {
    analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
    analogWrite(motorB1, 0); analogWrite(motorB2, 100);
    }
    /***************************Sol*****************************/
    //Gelen veri ‘L’ ise araba sola gider.
    else if (state == ‘L’) {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    }
    /***************************Sağ*****************************/
    //Gelen veri ‘R’ ise araba sağa gider
    else if (state == ‘R’) {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
    }
    /************************Stop*****************************/
    //Gelen veri ‘S’ ise arabayı durdur.
    else if (state == ‘S’){
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    }
    }

    • Ömer Koman dedi ki:

      merhaba aynı platform elimizde olmadığı için test edemiyoruz ancak size tavsiyem kodun kısa şekilde test amacıyla motorları tek tek deneyecek şekilde test etmeniz. daha önce çalışıpta sonradan mı bozuldu koda bir ekleme yaptığınızda mı bozuldu yada bir kablo sorunu mu var montajı nasıl yaptınız gibi akıla bir çok bilgi geliyor bunlar hakkında bilgi olmadan uzaktan fikir sahibi bile olamayız.

  193. HÜSEYİN dedi ki:

    int data;
    int KIRMIZI=13;
    int SARI=12;
    int YESIL=11;
    int MAVI=10;
    int MOR=9;
    int PEMPE=8;
    int LACIVERT=7;
    int TURUNCU=6;
    int BEYAZ=5;
    int GRI=4;
    int METAL=3;
    int DEMIR=2;
    void setup()
    {
    pinMode(KIRMIZI,OUTPUT);
    pinMode(SARI,OUTPUT);
    pinMode(YESIL,OUTPUT);
    pinMode(MAVI,OUTPUT);
    pinMode(MOR,OUTPUT);
    pinMode(PEMPE,OUTPUT);
    pinMode(LACIVERT,OUTPUT);
    pinMode(TURUNCU,OUTPUT);
    pinMode(BEYAZ,OUTPUT);
    pinMode(GRI,OUTPUT);
    pinMode(METAL,OUTPUT);
    pinMode(DEMIR,OUTPUT);
    Serial.begin(9600); //Seri iletişimi başlatır
    }
    void loop()
    {
    if(Serial.available()) // Eğer Bluetooth bağlantısı varsa kodaları çalıştırır
    {
    int data = Serial.read();
    delay(100);
    if(data==’A’)
    digitalWrite(KIRMIZI,1);
    if(data==’a’)
    digitalWrite(KIRMIZI,0);
    if(data==’B’)
    digitalWrite(SARI,1);
    if(data==’b’)
    digitalWrite(SARI,0);
    if(data==’C’)
    digitalWrite(YESIL,1);
    if(data==’c’)
    digitalWrite(YESIL,0);
    if(data==’D’)
    digitalWrite(MAVI,1);
    if(data==’d’)
    digitalWrite(MAVI,0);
    if(data==’E’)
    digitalWrite(MOR,1);
    if(data==’e’)
    digitalWrite(MOR,0);
    if(data==’F’)
    digitalWrite(PEMPE,1);
    if(data==’f’)
    digitalWrite(PEMPE,0);
    if(data==’G’)
    digitalWrite(LACIVERT,1);
    if(data==’g’)
    digitalWrite(LACIVERT,0);
    if(data==’H’)
    digitalWrite(TURUNCU,1);
    if(data==’h’)
    digitalWrite(TURUNCU,0);
    if(data==’I’)
    digitalWrite(BEYAZ,1);
    if(data==’i’)
    digitalWrite(BEYAZ,0);
    if(data==’J’)
    digitalWrite(GRI,1);
    if(data==’j’)
    digitalWrite(GRI,0);
    if(data==’K’)
    digitalWrite(METAL,1);
    if(data==’k’)
    digitalWrite(METAL,0);
    if(data==’L’)
    digitalWrite(DEMIR,1);
    if(data==’l’)
    digitalWrite(DEMIR,0);
    delay(100);}
    }
    Bu kod çalışıyor ama ardino ilk açılışta alıcıya komut gönderiyor ilk açılışta alıcıya komut göndermesini istemiyorum yardım gerekli

  194. NZM dedi ki:

    ömer bey bilginizden ve paylaşımlarınızdan kendi calışma projeme bir şeyler katmak isterim arduniyo kod yazma konusunda daha fazla sorulu projeler arge calışmalarının yapıldı bir platporm olucanı düşünüyorum sitenize yonlendırımısınız

    kısaca kendi gecmişimde bu işin tam temelleri olan vakum tüplü lambalardan bugune kendini gelıstırmıs yetiştirmiş biriyim bu hızı yakalamak adına arge konusunda geliştirmeler yapıyorum hızlı ve işlevli bir mikrodenetleyiciler geldi basitlesmiş programlarıda olunca projeler artacak

    • Ömer Koman dedi ki:

      arduino türkiye sitesi 7-8 yıldır merak edenler için buradan bilgi paylaşıyor, ilk zamanlarda türkçe içerik eksikliği vardı yazdık yayınladık, eski hızımızda değiliz ama temel veriler burada her zaman kullanıma hazır. daha gelişmiş işler yapanlar için burası biraz basit kalabilir. daha hızlı gelişmiş işler için stm32 bluepill, esp32 türü arduino uyumlu sistemleri de incelemenizi tavsiye ederim. bireysel çalışmanın sınırı yok kendi yapan kendi kazanır, kolay gelsin…

  195. A.Coşkun ORTAÇ dedi ki:

    Selam hocam; ben 64 yaşında bir (teknolojik dinazor :)) dedeyim. Torunumun okulu müdürünün ricası ile tamamen kendi imkanlarımla trafik haftası için idaalı bir maket yaptım. Gerçekten çok güzel oldu arzu ederseniz sizinle paylaşabilirim. Kavşak lambalarını vs çok orjinal yaptım. Aurduino ile tanıştıktan sonra makete bu uygulamayı tatbik etmeden, süslemeden bitirmeyi kendime yakıştıramadım. Basit kodlar yazdım ve çalıştırdım. Ancak iş kavşak olunca detaylarda kilitlendim. Sizlerden yardım istirham ediyorum. Bu konuda yardımcı olursanız torunumun okulunda benim bir hatıram sergilenecek. ( Okul yaptıramadık bari eğitime bu yolla yardımcı olmak istiyorum.) İlgilenirseniz mail ile haberinizi bekliyorum.Size çalıştığım tüm verileri göderirim.
    Saygılarımla.

    • Ömer Koman dedi ki:

      projenize çok fazla destek olamayız ancak yapmak istediğinizi anlatın sıkıştığınız noktayı söyleyin buradan yazalım

  196. mehmet dedi ki:

    merhaba ben arduino ile şifreli kapı kilidi yaptım .Fakat tek bir şifreyi girdiğimizde doğru ise kapı açılır mantığıyla çalışan projemi EEPROM da birden fazla kaydedilmiş şifre olsun ve ben herhangi birini girdiğimde kapı açılsın matığı olan sistem olmasını istiyorum fakat kod üzerinde düzenleme nasıl yapacağımı bilmiyorum bana yardım eder misiniz?İyi günler

    • Ömer Koman dedi ki:

      özel proje desteğimiz yok ancak programınızı satır satır analiz edin, hangi satırın ne işe yaradığını not alın, daha sonra kodu doğrulama kısmındaki sayıları karşıkaştırma mantığınızı kurcalamanız lazım.
      internetteki kopyala yapıştırla yapılan kodları anlamak için harcanan zamanda projeyi kendi mantığınızla baştan yazsanız daha çabuk bitiyor.

  197. Metehan dedi ki:

    hocam giriş olarak şeçilen iki pinden iki dc sinyal girişi yapılacak. Sonra bu sinyalleri arduino yazılımı okuyup nasıl karşılaştırma yapabilir? cevaplarsanız sevinirim kolay gelsin

    • Ömer Koman dedi ki:

      yukarıdaki buton okuma programını tekrar duzenledim 5v tan fazla giriş yapmayın işlemci bozulur
      yukarıdaki şemada butonu kullanmayın pin 3 de pin 2 deki dirençten bağlayın geri kalan bağlantılar ve dirençler aynı

      /*
      Pin 2 ve 3 ü okur sonucunu serialmonitor den gösterir
      */
      // pin 2 ve 3 ü tanımladık
      int giris2 = 2;
      int giris3 = 3;

      // setup bir kez çalışır
      void setup() {
      // seri portumuzu 9600 baud a ayarladık
      Serial.begin(9600);
      //okuyacağımız pini giriş olarak ayarladık
      pinMode(giris2, INPUT);
      pinMode(giris3, INPUT);
      }
      //sonsuz döngü
      void loop() {
      // pini oku
      int State1 = digitalRead(giris2);
      int State2 = digitalRead(giris3);
      // giriş değerini ekrana seri porttan yolla
      Serial.print(State1);
      Serial.print(” – “);
      Serial.println(State2);

      delay(1); // biraz bekle
      }

  198. İsmail dedi ki:

    iyi günler hocam, rfıd tabanlı akıllı otopark projem var, rfıd kart ile otoparkı açıyorum, bariyerin tekrar inmemesi için hc-sr04 ultrasonik sensör kullanıyorum ancak sensör işlevini yerine getirmiyor, nasıl bir kod yazmam gerekiyor? yardımcı olabilirmisiniz?

    • Ömer Koman dedi ki:

      araç giriş:
      rfid kart okutuldu
      yetkiyi gördük
      bariyeri kaldırdık
      araç geçiş kontrol:
      ulltrasonikle araç geçene kadar her saniye okuduk.
      araç geçtimi geçmediyyse araç grçiş kontrole dön.
      araç geçti ise bariyeri kapat.
      araç girişe git.

      yukarıdaki gibi olması lazım kodun

  199. Baturalp A dedi ki:

    Merhaba Hocam aşağıda kodlarını paylaştığım uygulamamda if else komutları 3 ve 8nolu digital kanalları belirttiğim şekilde değil neredeyse tam tersi şekilde high/low yapıyor.
    Bir de tarih belirttiğim değerleri yazıyor ama saat bölümü verdiğim değerleri yazmıyor. Acaba nerede yanlış yapıyorum yardımcı olursanız sevinirim.

    #include
    #include
    #include
    #include
    #include

    #define DHTPIN 2
    #define DHTTYPE DHT11
    #define min_deger 600

    virtuabotixRTC saat(5, 6, 7);

    DHT dht(DHTPIN, DHTTYPE);
    FaBoLCD_PCF8574 lcd;

    String agAdi = “XXX”;
    String agSifresi = “XXX”;

    String ip = “1XX.1XX.1XX.1XX”;
    unsigned long myChannelNumber = XXX;
    const char * myWriteAPIKey = “XXX”;

    int sensor = A0;
    int CLK = 5;
    int DAT = 6;
    int RST = 7;
    int hygroValue;
    const int role = 3;
    const int sun = 8;
    int rxPin = 10;
    int txPin = 11;

    byte derece[] = {
    0x07,
    0x05,
    0x07,
    0x00,
    0x00,
    0x00,
    0x00,
    0x00
    };

    SoftwareSerial esp(rxPin, txPin);

    void setup() {
    lcd.createChar(0, derece);
    Wire.begin();
    Serial.begin(9600);
    saat.setDS1302Time(7,18,0,3,27,8,2020);

    pinMode(role,OUTPUT);
    pinMode(sun,OUTPUT);
    digitalWrite(role,LOW);

    dht.begin();
    lcd.begin(16, 2);
    lcd.print(“HEYGUYS”);
    delay(2800);
    lcd.clear();

    Serial.println(“Started”);
    esp.begin(115200);
    esp.println(“AT”);
    Serial.println(“AT Yollandı”);
    while(!esp.find(“OK”)){
    esp.println(“AT”);
    Serial.println(“ESP8266 Bulunamadı.”);
    }
    Serial.println(“OK Komutu Alındı”);
    esp.println(“AT+CWMODE=1”);
    while(!esp.find(“OK”)){
    esp.println(“AT+CWMODE=1”);
    Serial.println(“Ayar Yapılıyor….”);
    }
    Serial.println(“Client olarak ayarlandı”);
    Serial.println(“Aga Baglaniliyor…”);
    esp.println(“AT+CWJAP=\””+agAdi+”\”,\””+agSifresi+”\””);
    while(!esp.find(“OK”));
    Serial.println(“Aga Baglandi.”);
    delay(1000);
    }
    void loop() {

    hygroValue = analogRead(sensor);
    if (hygroValue > min_deger){
    digitalWrite(role,HIGH);
    digitalWrite(sun,LOW);
    delay(2000);
    }
    else {
    digitalWrite(role,LOW);
    digitalWrite(sun,HIGH);
    }
    saat.updateTime();
    lcd.setCursor(0,0);
    lcd.print(saat.dayofmonth);
    lcd.print(“/”);
    lcd.print(saat.month);
    lcd.print(“/”);
    lcd.print(saat.year);

    lcd.setCursor(0,1);
    lcd.print(saat.hours);
    lcd.print(“:”);
    lcd.print(saat.minutes);
    lcd.print(“:”);
    lcd.print(saat.seconds);
    delay(5000);

    Wire.begin();
    int temp = dht.readTemperature();
    int hum = dht.readHumidity();

    Serial.println(hygroValue);
    Serial.println(temp);
    Serial.println(hum);
    Serial.println(sun);
    Serial.println(role);

    lcd.setCursor(0, 0);
    lcd.print(temp);
    lcd.write(byte(0));
    lcd.print(“C”);
    lcd.print(” “);
    lcd.print(“Soil: “);
    lcd.print(hygroValue);

    lcd.setCursor(0, 1);
    lcd.print(“Nem:”);
    lcd.print(hum);
    lcd.print(“%”);
    delay(5000);
    lcd.clear();
    {
    esp.println(“AT+CIPSTART=\”TCP\”,\””+ip+”\”,80″);
    if(esp.find(“Error”)){
    Serial.println(“AT+CIPSTART Error”);
    }
    String veri = “GET https://api.thingspeak.com/update?api_key=xxx“;
    veri += “&field1=”;
    veri += String(temp);
    veri += “&field2=”;
    veri += String(hum);
    veri += “&field3=”;
    veri += String(hygroValue);
    veri += “&field4=”;
    veri += String(role);
    veri += “&field5=”;
    veri += String(sun);

    esp.print(“AT+CIPSEND=”);
    esp.println(veri.length()+2);
    delay(50);
    if(esp.find(“>”)){
    esp.print(veri);
    Serial.println(veri);
    Serial.println(“Veri gonderildi.”);
    delay(50);
    }
    Serial.println(“Baglantı Kapatildi.”);
    esp.println(“AT+CIPCLOSE”);
    delay(50);

    }
    }

    • Ömer Koman dedi ki:

      paylaştığınız kodun include kısımları görünmüyor neyse.
      pin 3 ve pin 8 ile role kartı sürüyorsun sanırım bazı kartlar high la röle çeker bazıları low ile çeker. basit bir kod yazıp bunu tespit edin ona uygun şekilde hi veya lo yaparsın.

      • Baturalp A dedi ki:

        Cevap için çok teşekkürler. Evet, röle kartı sürüyordum dediğiniz gibi tam aksi ifadeler sürdüğümde uygulamam düzeldi. RTC modülü için de bir dönüş yaparsanız sevinirim. RTC için virtuabotixRTC kütüphanesini eklemiştim.
        saat.setDS1302Time(7,18,0,3,27,8,2020);
        “7(saat)” kısmı hep sıfırdan başlıyo, sistem çalıştıkça üzerine ekliyip 0,1,2,3 diye artıyor.
        Bir de buraya belirli tarihleri işaret gösterip digital kanal O/I değişimlerini nasıl bir koşula bağlayabilirim? if (Serial.read(saat) == 8,18,0,3,27,8,2020);{ digitalWrite(role,HIGH);} gibi mi?

        • Ömer Koman dedi ki:

          ds1302 saati küçük cr2032 pille de besleyin ilk arduino setup kısmında saati ayarlamayın. ayar gerektiğinde bir saat ayarlama menusunden gidip saati ayarlayın. esp82666 ile nist ten saat ayarını alıp arada bir ds1302 nin zamanını güncelleyin örnek bulursunuz bununla ilgili olarak…

  200. İsmail dedi ki:

    Hocam Merhaba,
    merhaba,
    RC522 modülünden değişen sayılarda bağlamak istiyorum. 12 adet mesela. Benim için önemli olan rc522’ye verdiğim isim. Tek kart ile okuma yaparak; herbir rc522’ye tanımlı isimleri LCD Ekrana yazdırmak istiyorum. Bunun için çoklayıcı veya tek yönlü (MISO) PAPATYA zinciri yöntemi ile bu sorunu aşar mıyım?
    Bu konuda destek verirseniz sevinirim. Vermek istemezseniz de canınız sağolsun.

    • Ömer Koman dedi ki:

      yöntemi söyliyeyim kartı okuyunca merkezi bir cihaza bu id yi yollayın ve bu idleri bir isime eşleştirin bu merkezi makinada, ve herhangi bir noktadan okutulan id yi merkeze gelir gelmez tüm okuyucuların ekranına yollayın. en basit yöntem bu olur. bunu kendiniz de yapabilirsiniz. kartı okutup id yi lcd de gösterebiliyorsanız zaten iş bitmiş sayılır.

  201. İsmail dedi ki:

    hocam,
    RC522 modülüne isim tanımlaya bilir miyiz?
    Bu isimleri kullanmak istiyorum..

    • Ömer Koman dedi ki:

      rc522 de seri kod var sadece bu kodları hafızada isimlerle eşleştir. kod gelince hafızadaki kodla karşılaştır ismi göster.
      mifare kartlara özelliği varsa (8char)64bitlik sayı saklanabilir ama uğraşma deymez.

  202. rıfkı çakır dedi ki:

    hocam neden NodeMcu ya leş muamelesi yapıyorlar

    • Ömer Koman dedi ki:

      öylemiymiş. bilmyorum. destekleyen yada geliştirenlerle alakalı bir durum olabilir.

  203. Pakize dedi ki:

    Merhaba. PCM kütüphanesi kullanarak ses dosyasını 10 ayrı alarm örn; polis, ambulans itfaiye gibi seri porttan 1 verisi gönderirsek 1 nolu alarm çalacak 2 gönderilirse 2 çalacak, 0 gönderilirse duruduracak gibi bir proje hazırlamam gerekiyor. 1 gün sürem var. Yardım edebilecek biri var mı? Yorum yazarsanız iletişime geçebilirim

  204. Adem dedi ki:

    Slm arduino uno ile akim sensoru okumak istiyorum okudugu akim ile role kontrol etmek istiyorumm kod yazabilirmisiniz ads1115 ve scr013 kullanmak istiyorum 220 volt da amper degeri 0.2 amper oldugunda 1. Role tetiklesin 0.3 amper oldugunda 2. Role tetilesin amper

  205. adem elmas dedi ki:

    #include
    #include

    Adafruit_ADS1115 ads;

    const float FACTOR = 20; //20A/1V from teh CT

    const float multiplier = 0.00005;

    void setup() {
    Serial.begin(9600);

    ads.setGain(GAIN_FOUR); // +/- 1.024V 1bit = 0.5mV
    ads.begin();

    }

    void printMeasure(String prefix, float value, String postfix)
    {
    Serial.print(prefix);
    Serial.print(value, 3);
    Serial.println(postfix);
    }

    void loop() {
    float currentRMS = getcurrent();

    printMeasure(“Irms: “, currentRMS, “A”);
    delay(1000);

    }

    float getcurrent()
    {
    float voltage;
    float current;
    float sum = 0;
    long time_check = millis();
    int counter = 0;

    while (millis() – time_check < 1000)
    {
    voltage = ads.readADC_Differential_0_1() * multiplier;
    current = voltage * FACTOR;
    //current /= 1000.0;

    sum += sq(current);
    counter = counter + 1;
    }

    current = sqrt(sum / counter);
    return (current);
    }

    • Ömer Koman dedi ki:

      loop kısmında
      float currentRMS = getcurrent();
      tanımlı olan satır akımı size bildiriyor. float değişkenleri karşılaştırmak çok iyi olmuyor bunu long a çevirip öyle karşılaştırbilirsiniz.
      long myamper=long(currentRMS);
      // eğer currrentRMS A olarak dönüş yapıyorsa yani ekran 0.001 gibi bir akım gösteriyorsa bunu mA çevirerek işlem yapmak daha iyi olur
      // long myamper=long(currentRMS*1000); // olarak kullanırsa mA olarak kullanırsın
      // if satırında mA olarak kullanacaksan 2000 kullan direk 2 amper kullanacaksan 2 dersin yukarıdaki dönüşümü yapmadan
      if (myamper>=2000){
      // buraya role çekme kodunu yazarsın artık
      }

  206. adem elmas dedi ki:

    bu koda role nasıl eklerim akım gecerse röle tetiklesin

  207. ziyaretci dedi ki:

    PDF varmı?

    • Ömer Koman dedi ki:

      yok ama yapabilirsin pdf i.
      sayfayı yazdır deyin pradan yazıcı olarak pdf seçeneğini seç sayfadakileri pdf olarak kaydedebilirsin.
      kolay gelsin

  208. ilknur dedi ki:

    Merhaba. Arduino gps kontrollü araç yaptım. Aracı kendi istediğim konuma yönlendirmek istiyorum. Nasıl yapabilirim? Uzun zamandır uğraşıyorum. Lütfen yardımcı olabilir misiniz?

    • Ömer Koman dedi ki:

      gps de hata payı 3 mt ile 30 mt arasında ve açık alanda, hassas konumlama yapamazsın. gps ten gelen araç hareketsizken ölçtüğün ilk konum home olsun bu noktadan sonra gideceğin koordinatı hesaplaman lazım ama arduinoda hafıza kalır mı bilmiyorum.

  209. Güven dedi ki:

    16×02 ekrana açılıs yazisi yazdirmak istiyorum bir kere görünsün sonra diğer döngüye geçsin bunu nasıl yapabilirim

    • Ömer Koman dedi ki:

      void setup() kısmında lcd ye birşeyler yaz ve görünmesini istediğin süre kadar delay koy sonra zaten loopa düşecek.
      diğer yöntem loop içinde yapmak istiyorsan bir değişken tanımla ve 0 değerini ver loop içinde bu değişken 0 ise lcd ye birşeyler yaz ve sonra bu değişkene 1 değeri ver. o değişkene bağlı olduğu için bir daha sen istemediğin sürece göstermez…

  210. yusuf ali dedi ki:

    ultrasonic sensör ile engel arasındaki mesafe “10cm<mesafe<20cm" şartını sağlayınca bir tane LED yanmaktadır. Bu şartı sağlamayınca LED sönmektedir. aynı zamanda ölçülen mesafe seri porta yazdırılmaktadır. Bu şartı sağlayan arduino kodunu nasıl yazabilirim.

  211. Rabia Göksel dedi ki:

    merhabalar, bir self driving araç projemiz var, kameradan gelen tabela bilgileri doğrultusunda yapması gerkenleri arduinoda programlıyoruz. ancak iki defa sağa dön tabelasını arada başka tabela görmeden ardarda gördüğünde malesef ikinci sağa dön ya da sağa dön komutunu uygulamıyor. eğer kodun o kısmını kaldırısak da sola dön komutu gelse bile daa önceden mesela üç kez sağa dön komutu almış ve distance sayesinde sadece bir komutu uygulasa bile sola dön komutunda önceki kalan iki sağa dön komutunu uygulamaya çalışmaya devam ediyor. ne yapabiliriz?
    #include “MeOrion.h”

    MeDCMotor motor(M1);
    MeDCMotor motor2(M2);
    MeUltrasonicSensor ultraSensor(PORT_7);

    int arduino;
    int arduino_old=-1;
    void setup() {

    // put your setup code here, to run once:
    Serial.begin(9600);
    Serial.setTimeout(1);
    pinMode(M1, OUTPUT);
    pinMode(M2, OUTPUT);
    }

    void loop() {

    float distance = ultraSensor.distanceCm();
    Serial.print(“Distance: “);
    Serial.print(ultraSensor.distanceCm());
    Serial.println(” cm”);
    delay(1500);
    int motorSpeed = 90;
    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    // put your main code here, to run repeatedly:
    if(Serial.available()>0){

    arduino= Serial.read();

    Serial.print(arduino);

    if(arduino != arduino_old){

    if (arduino== ‘1’){
    //Serial.print(“bus stop”);

    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    delay(6000);
    motor.stop();
    motor2.stop();
    delay(3000);
    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    arduino_old=arduino
    }

    if (distance < 35){
    if (arduino == '0'){
    //Serial.print("stop");
    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    delay(800);
    motor.stop();
    motor2.stop();
    delay(3000000000);
    arduino_old=arduino
    }

    else if (arduino == '2'){

    //Serial.print("left");

    motor.stop();
    motor2.stop();
    delay(400);
    motor.stop();
    motor2.run(motorSpeed+40);
    delay(1275);
    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    arduino_old=arduino

    }

    else if (arduino== '3') {
    //Serial.print("right");
    motor.stop();
    motor2.stop();
    delay(500);
    motor.run(-motorSpeed-40);
    motor2.stop();
    delay(1275);
    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    arduino_old=arduino

    }

    else {
    motor.run(-motorSpeed+15);
    motor2.run(motorSpeed);
    arduino_old=arduino
    }
    }

    }
    else{
    arduino_old=arduino
    }
    }
    }

    • Ömer Koman dedi ki:

      kodun içinde delay() lar var bunlar veri kaçırmanıza sebep olur. millis() komutu ile çözün o kısımları.

  212. Dilara dedi ki:

    merhabalar biz arkadaşlarımla ileri geri sağa sola ve dur olmak üzere 2 mesafe sensörü ile hareket edecek olan akıllı bir robot yapmak istiyoruz kodlarımız hazır fakat ardunioya yazarken sol kodumuzda ve 2. mesafe sensöründe pinleri 7 ve 8 olan kodlarda bir hata veriyor nedenini biliyorsanız yardımcı olursanız çok sevinirim şimdiden teşekkür ederim. kodlarımız da şu şekildedir.
    #define echoPin 12 //Ultrasonik sensörün echo pini Arduino’nun 12.pinine
    #define trigPin 13 //Ultrasonik sensörün trig pini Arduino’nun 13.pinine tanımlandı.
    #define echoPin 7
    #define trigPin 8
    #define MotorR1 5
    #define MotorR2 6
    #define MotorRE 3 // Motor pinlerini tanımlıyoruz.
    #define MotorL1 9
    #define MotorL2 10
    #define MotorLE 11

    long sure, uzaklik; //süre ve uzaklık diye iki değişken tanımlıyoruz.

    void setup() {

    // ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
    // bu dalgaları Echo pini ile geri aldığı için INPUT (Giriş) olarak tanımlanır.
    pinMode(echoPin, INPUT);
    pinMode(trigPin, OUTPUT);

    pinMode(MotorL1, OUTPUT);
    pinMode(MotorL2, OUTPUT);
    pinMode(MotorLE, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.
    pinMode(MotorR1, OUTPUT);
    pinMode(MotorR2, OUTPUT);
    pinMode(MotorRE, OUTPUT);

    Serial.begin(9600);

    }

    void loop() {

    digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
    delayMicroseconds(5);
    digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi

    sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
    uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor

    Serial.println(uzaklik);

    if (uzaklik < 15) // Uzaklık 15'den küçük ise,
    {
    geri(); // 150 ms geri git
    delay(150);
    sol();
    delay(250);
    ileri();
    delay(150);
    geri();
    delay(250);
    sag(); // 250 ms sağa dön
    delay(250);
    ileri();
    delay(2000);
    dur();
    }
    else { // değil ise,
    ileri(); // ileri git
    }

    }

    void ileri(){ // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.

    digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
    digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
    analogWrite(MotorRE, 150); // Sağ motorun hızı 150

    digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
    digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
    analogWrite(MotorLE, 150); // Sol motorun hızı 150

    }

    void sag(){ // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.

    digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
    digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
    analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)

    digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
    digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
    analogWrite(MotorLE, 150); // Sol motorun hızı 150

    }

    void geri(){ // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.

    digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
    digitalWrite(MotorR2, HIGH); // Sağ motorun geri hareketi aktif
    analogWrite(MotorRE, 150); // Sağ motorun hızı 150

    digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
    digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif
    analogWrite(MotorLE, 150); // Sol motorun hızı 150

    }
    void dur(){ // Robotun dur hareketi için fonksiyon tanımlıyoruz.

    digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
    digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
    analogWrite(MotorRE, 150); // Sağ motorun hızı 150

    digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
    digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
    analogWrite(MotorLE, 150); // Sol motorun hızı 150

    }

    void sol(){ // Robotun sola dönme hareketi için fonksiyon tanımlıyoruz.

    digitalWrite(MotorR1, HİGH); // Sağ motorun ileri hareketi aktif
    digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
    analogWrite(MotorRE, 150); // Sağ motorun hızı 150

    digitalWrite(MotorL1, HİGH); // Sol motorun ileri hareketi aktif
    digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
    analogWrite(MotorLE, 0); // Sol motorun hızı 0 ( motor duruyor)

    }

  213. Güneş dedi ki:

    NodeMCU kartında yer alan A0 pinine bağlanan sensörden alınan verileri map komutu ile 0-255 arasında yeni bir değere dönüştüren kod satırı nedir acaba

E-posta adresiniz gösterilmeyecek. Gerekli alanlar * ile işaretlidir.

*



Sosyal Ağlar