Arduino öğrenirken yol haritası (1)
Ömer Koman // 1 Mart 2013 // 412 yorum // kategori: Arduinoya Giriş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
}
/*
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
}
/*
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
}
/*
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
}
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.
/*
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
/*
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 😉
Etiketler: analogRead > analogWrite > delay > pinMode > serial.Begin > Serial.println
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 🙂
[…] 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 […]
hocam çok sağol başlangıç için çok güzel bilgiler olmuş 🙂
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.
İyi günler. Ben arduino da yeniyim. Kodlar baktım da sürekli “seri portumuzu 9600” neden ayarladık ?
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.
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
yapay el kodumuz yok faceook taki arduino forumlarında yapanları görmüştüm oradan bulmayı deneyin
9600 iyidir takma kafana. projeye odaklan sen…
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 : )
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.
neden arduinonun otomatik belirlediği baud değerini kullanmadı da 9600 yaptı baud değerini açıklar mısınız ?
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.
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.
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.
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. 🙁
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
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 )
}
}
çkış OUTPUT giriş INPUT olarak tanımlayabilirsiniz bazen bu şekilde kabul ediyor
while şu şekilde kullanın http://arduino.cc/en/Reference/While condition kısmındaki kullanımınızda bir tuhaflık var…
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.
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
ö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 ?
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
ş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
}
goto ne abi. şu programı yavaş yavaş yeniden öğrenerek yazmayı öğrenmeniz daha hızlı olur picbasic ten kopyala yapıştır olmaz burada…
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?
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.
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?
ayşe hanım en ucuzuyla başlayın bence projenize göre genişletirsiniz eklerle veya arduino super başlangıç setine bir bakın robotistanda http://www.robotistan.com/Arduino-Super-Baslangic-Seti-Rev3,PR-954.html bununla bir sürü proje yaparsınız…
ömer bey goto komutu arduinoda var http://arduino.cc/en/Reference/Goto
int SOLsensorPini= 39; diyorsun ama if lerde if ( (SOLsensorPini=LOW) , (SAGsensorPini=HIGH)) diyorsun dijital pinleri 1 veya 0 veya low high olarak okursun SOLsensorPini= 39 oluca herzaman high oluyor http://arduino.cc/en/Reference/DigitalRead
Ö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.
arduino uno ve bir başlangıç seti ile temel işleri öğrenirsin, gerekirse işine göre eklentilerle geliştirirsin devrelerini…
[…] Video izleyeyemeyenler için yine Arduino Türkiye sitesinde Ömer KOMAN’ın aşağıdaki yazısını okuyabilirsiniz. Arduino öğrenirken yol haritası (1) […]
Elektrik Elektronik Mühendisliği okuyorum.Arduino uno almayı düşünüyorum ancak bunda c programlama yapabilecekmiyim.
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 ?
Ö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?
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.
Ö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
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.
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
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.
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
sitemizi hiç incelememişin muhterem http://arduinoturkiye.com/arduino-c-net-haberlesmesi/
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
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ı.
ö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?
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?
ö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ı?
arduino uno ya uygun bir lcd alıp mevcut kodları çalıştımayı deneyerek başlayabilirsin
#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 …
durum değişkenleri int tip olunca HIGH LOW değişkenlerini tutamayabilir durum değişkenleri boolen tip olarak seçmeyi deneyin
yardımınız için teşekkürler program çalıştı
ö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.
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.
ı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 .
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.
İ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.
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.
Hocam forum sayfanızda üyelik için sorun veriyor.recaptcha çalışmıyor.
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.
İyi günler Ömer hocam benim elimde ödünç udoo quad var ona nasıl arduino programı atabilirim acaba ?
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
Teşekkürler Ömer hocam.
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
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
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 ?
http://arduino.cc/en/reference/map
int counter = analogRead(A0) ;
counter = map(counter, 0, 1023, 0, 255); //<------------ MAP YAPTIK // turn the ledPin on analogWrite(ledPin, counter) ;
Ö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
L298 olanı al fazla akım verenle daha rahat çözersin motor problemlerini.
servo motorunu nasıl kullanıcam onun için özel motor shield mı var yoksa
L298 olanla olurmu
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.
Çok teşekkür ederim Ömer Abi sağol ben 13 yaşındayım arduinoya yeni başladım
hocam size nasıl ulaşabilirim bir ricam olacak sizden mail üzerinden konuşabilir miyiz
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.
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
forum bölümümüze gelin herkes bluetooth a bulaşmış durumda mutlaka size birileri yardım eder.
arduino nano ile nabız ölçme projem varda yardımcı olabilecek arkadaşlar varmı acaba
forum bölümümüze gelin yazın birileri çıkar elbet…
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
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
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ı?
sitede bir çok yazı var okumanızı tavsiye ederim klon için şu yazıya bakın http://arduinoturkiye.com/arduino-alirken-klon-mu-orijinal-mi-almali-farklari-neledir/ arduinoyu programladıktan sonra yeni programı içine atakana kadar eskisi çalışmaya devam eder. elektrik gidip gelse bile son yuklenen programı çalıştırır. içine zilyon kere program yukleyebilirsin. forum kısmından da sorularını sorabılırsın.
Çok teşekkür ederim
#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..
çok tşk ederim…
bildiklerinizi karşılıksız paylaşıyor oluşunuz takdir edilesi bi hamle…
saygılarımla…
Merhabalar.Bir sorum olacaktı. Elimde Arduıno R3 var . Arduınonun algılayabildiği minimum gerilim genliği kaç volttur?
uno r3 te analogRead ile maximum 5v okur minimum 5/1023=0,0048 volt okur
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
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.
Ö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?
bütçe meselesi ben sadece uno almıştım, şimdiye kadar bir set almadım.
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.
teşekkürler Gökhan İNCE şuradaki örnek başlanılabilir. http://123d.circuits.io/circuits/19376-led-shield
Ö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.
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.
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. 🙂
hoca değilim, bildiklerimi paylaşıyorum o kadar, çabanız ve gidiş yönünüz doğru başarılar dilerim…
Ö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);
}
}
}
ldr ve servoları ayrı ayrı kod yazıp denedinizmi çalışıyormu. foruma gelin oradan da sorun…
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..
adafruit sitesinde pca9685 ile ilgili konular var oradaki örnekleri deneyin, foruma da gelin oradan sorun…
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?
Ö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.
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
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.
forumdan sorun hangi ses sesnsorunu kullanıyorsunuz kodunuz nedir filan onları da yazın.
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 ?
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)
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.
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.
Arduino Due kartıyla beraber Scheduler kütüphanesini inceleyebilirsiniz: http://arduino.cc/en/Reference/Scheduler
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.
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.
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
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…
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
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
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?
arduino pwm uretme kısmında faydalı olabilir birde çıkış voltajını adc ile okuyup olması gerekene yaklaştırmak için pwm yönetilebilir. yada kondansatör doldur boşaltla kaskat kondansatörleri arka arkaya doldurarak 3e 4e katlamalı düşük akımlı yüksek voltajlar üretilebilir belki ama önce temel devrenizi kurup arduino ile nasıl birleştireceğinizi planlamanız lazım.
* şurada bişeyler var https://learn.adafruit.com/diy-boost-calc?view=all
* birde şu var işe yarar http://reibot.org/2011/08/07/intro-to-boost-converter/
* şuda iyi http://www.instructables.com/id/Arduino-based-Switching-Voltage-Regulators/?ALLSTEPS
hocam temel devreyi kurdum mosfet anahtarlamalı olacak gelen sinyale göre dc gerilim alacağız.
teşekkür ederim.
ç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 ?
Arduino IDE kullanılmaktadır.
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…
Arkadaşlar bağlantıları yaparken led ve button gibi 220 ohm direnç kullanmasak ne olur cihaz yanar mı ?
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.
İyi günler öncelikle bir şey sormak istiyorum
Bende arduino kullanmayı düşünüyorum acaba AliExpress güvenlimidir sipariş vermeyi düşünüyorum da
şö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.
Doğrudur ona sözüm yok ama arada bayağı bir fiyat farkı var AliExpress te sadece 3 dolar burada 30-40 tl kadar
al bulunsun ne diyeyim 🙂
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
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
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
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.
Teşekürler
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
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.
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
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
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
;————————————————————————————————————————————————————
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.
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
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.
Arduino mega ya robotkol yapmak için toplam kaç servo motor bağlaya bilirim
arduino megaya 48 servo bağlayabiliyormuşsunuz şurada yazıyor http://playground.arduino.cc/ComponentLib/servo kolay gelsin
*
* 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
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…
Cok tesekkurler peki sizin projelerinizden yada bir yerdebişdiğiniz proje varmıdır
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.
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);
}
}
}
merhaba bu tip proje sorularını foruma gelin sorun anında yayınlanır. burada boşuna bekleme yapmaya gerek yok.
ben 3. sınıfa gidiyorum telefon programı için çok teşekkür ederim aşırı işime yaradı
hangi telefon programı hatırlayamadım. kolay gelsin…
Ö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.
ş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
Ö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.
şö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…
}
merhaba ömer hocam ben hatamı farkedip aynı gün konuyu foruma taşıdım zaten
hata değil tercih meselesi…
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
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
Ö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.
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.
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
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
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.
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…
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
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….
peki teşekkürler.
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
interrupt ve serialevent kullanmanız lazım şuradaki örnekte http://www.arduino.cc/en/Tutorial/SerialEvent enter tuşuna basılana kadar karakterleri bir string değişkende biriktirip enter basıldığında ekrana yazar. ekrana yazdığı noktada string içinde red arayacaksınız varsa led yak yaparsın…
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
string arama rutinini geliştirmen lazım stringi bulduğun index değerine birde string uzunluğu kontrolu yaparsan olur sanki…
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
satır sonlarında fazladan crlf karakterleri geliyor onları sil chr(13) chr(10) karakterlerini silmen lazım.
Ö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.
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…
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.
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
foruma gelin…
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;
}
}
hiç bakamadım foruma gelin. yardımcı olan çıkar…
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.
foruma gelin sorun…
arduino uno da nasıl kodlar silinr led yaktım başka şeyler yapcam ama nasıl silineceğini bilmiyorum
her zaman en son yuklediğiniz kod hafızada kalır.
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.
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)
röle yardımı ile 2. sorumu araştırma ile de 1 sorumu çözdüm teşekkürler.
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.
Arduino ile ilgili Bazı Videolara Buradan Baka Bilirsiniz
//www.youtube.com/watch?v=owOgHHKJ5bk
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.
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…
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…
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.
şu iki yazıda nasıl yapacağınınz yazıyor
http://yaab-arduino.blogspot.com.tr/2015/02/fast-sampling-from-analog-input.html
http://www.microsmart.co.za/technical/2014/03/01/advanced-arduino-adc/
google dan arduino adc advanced deyince başka orenklerde var ama yontem hep aynı.
teşekür ederim hocam
merhaba arduino nun standart bilgisayarlardan farkı nedir?
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!
hocam yapacagımız her devre için ayrı bir arduino mu lazım nasıl olacak
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…
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
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…
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..
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…
ömer bey size acıyorum valla her yoruma cevap 😀
sormuşsa cevabı veririz. sora sora öğrenecekler inşallah…
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
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.
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.
şunlara bir baK ADXL35 kullanıyor
https://www.youtube.com/watch?v=NLqOqw2_Vlg
https://www.youtube.com/watch?v=OvZR3jlZIWg
foruma gelin sorun yapanlar var fikir verir…
1. Video proje için bir ipucu veriyor. En azından pcde eksen hareketlerini okuyabilmek bu eksen hareketlerine göre bir komut oluşturabilme fikrini oluşturdu. Forumuda incelicem hocam çok teşekkür ederim
hocam merhaba.. ben aynı buton ile start stop yapamıyorum bi türlü yardımcı olmanız dilegi ile tskler…
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.
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..”);
}
}
acilse forum gel sor hemen.
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
sıramatiklerdeki kucuk yazıcılar thermal yazıcıdır. şu projeye bakın takılırsanız foruma gelin https://www.adafruit.com/products/597
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ı
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
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 .
usb atamasınıda yaptım com5 dıye
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
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/
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.
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
Ö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… 😀
saol ! yazayım 2. bölümü ne olsun içinde ? neyi merak ediyorsun…
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
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)
Merhabalar arduino akilli perde icin kod ariyorum nasil bulabilirim
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.
Ö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);
}
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.
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
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…
ARDUİNO üzerine kod yazdım ama sürekli aynı kod çalışıyor kodu nasıl silerim acil cevaplar mısınız??
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.
merhaba hocam 4 ldr den arduino ile aynı değerleri okumayı nasıl sağlayabilirim yardımcı olur musunuz teşekkürler
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
Merhaba,Arduino uno R3 içindeki programı nasıl download edebilirim.
atmel isp programlayıcı ile arduino işlemcisinin içini okuyabilirsin.
Merhaba,
Bende Arduino Uno R3 var,bunun içinde herhangi bir kodlama yüklenmiş mi? yani bir program upload edilmiş mi?Nasıl öğrenebilirim?
öğ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
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
arduino içindeki kodları okuyabilirsim ama bunlar dönüştürülmüş makina kodudur kaynak kod olarak elde edemezsin.
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.
w5100 webserver orneğini yapmaya çalışın https://www.arduino.cc/en/Tutorial/WebServer
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ı.
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…
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.
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.
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);
}
Foruma gelsenize… biraz yogunumda. Normal sartlarda ikiden fazla anahtari nasil yapiyorsunuz. Sonucta tek lamba var.
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.
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
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…
Slm aynı proje de bana yardımcı olurmusun
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ı ?
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…
Teşekkürler Ömer bey…
Hedefim robot yapmak(makalede belirttiğinizlerden geçerek).
Ayrıca arduino pil ile çalışıyor mu?
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.
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.
Istediginiz gibi kullanabilirsiniz sitemizi forumumuzu. Hayirli olsun…
Hocam ben kod dili pek fazla bilmiyorum ama öğrenmek istiyorum önce hangi kod dilini öğreneyim bide arduinoya yakin bi kod dili solermisiniz
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…
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
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
bilmiyorum. forumda sorun kullanan varsa cevap çıkabilir… ileride yapmayı hedeflediğiniz projeyi araştırın neyle yapılmışsa omalzemeleri yavaş yavaş edinin
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
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.
shield for arduino yazilimini biliyomusununuz acil
sizden duydum bilmiyorum. foruma gelin sorun…
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.
http://arduinoturkiye.com/arduino-temel-baglantilar-arduino-basic-connections/
3. resim sol usttekine göre bağlarsan çalışır farklı birşey yaptıysan arduino pini yanmış olabilir roleden ters voltaj gelir pini bozabilir. foruma gelin sorun.
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 ….
cny70 sensorleri test etmeniz lazım sensor altından beyaz ve siyah kağıt geçirip nasıl tetıkledıgıne bır bakın. gerektiği gibi tetiklemiyorsa direnc değerlerini değiştirmeyi deneyın. cny70 in ir led kısmını 100-200ohm la besleyin diğer foto transistor çıkışını 10k ile besleyin yeterli dıjıtal çıkışı sağlaması lazım. bağlantılarınızı kontrol edin mutlaka ters bağlamış labılırısnız alt ust gorunumde sağı solu şaşar şemanın ona dikkat edin.
dijital input olarak okuma örneği (sizin kodununz ile aynı)
http://electronicpiece.blogspot.co.uk/2012/02/sensor-cny70-arduino.html
genelde bu sensoru analog okumayla da kullanıyorlar direnç değişiklikleri işe yaramazsa analog okuyarak sağ mı solmu karar verirsiniz.
şuradaki örneğe bir bakın
https://gelecegiyazanlar.turkcell.com.tr/konu/arduino/egitim/arduino-201/arduino-ile-renk-okuma
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 ?
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.
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
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.
saolun cok iyi bi yazı olmuş
biraz eskidi yazı ama temel konular eskimiyor…
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 .
sadece yazılım yetmiyor temel elektronik bilgisi de gerekiyor
http://www.instructables.com/id/Disco-Lights-With-Arduino/?ALLSTEPS
http://www.instructables.com/id/Arduino-Based-Disco-Lights/?ALLSTEPS
https://blog.arduino.cc/2011/12/09/portable-diy-disco-dance-floor/
http://thecreatorsproject.vice.com/en_au/blog/turn-your-room-into-a-nightclub-with-this-led-drop-ceiling
http://www.jeremyblum.com/2011/12/25/tutorial-14-for-arduino-holiday-lights-and-sounds/
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
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.
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.
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.
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
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
}
}
ş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
#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”);
}
}
bu koda ledın acık kalma suresını nasıl ayarlarım led1=HIGH
İSE delay(2000) olmasını ıstıyorum daha sonra LOW YORUMLARINIZ ICIN TESEKKUR EDERIM SIMDIDEN LUTFEN ILGILENIN OMER BEY…!
delay(2000) gibi bir komut kullanmak yerine delay(1) kullanıp bunu nasıl kullanacağınızı şurada yazdığım ornekte bulabilirsiniz.
start sımulation butonuna basarsınız
https://circuits.io/circuits/2723629-arduino-2-led-blink
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?
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…
teşekkürler cevabınız için.bakıyorum foruma
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 ??
orneklerde blink kodundaki delay ları 5000 yap
merhaba ben arduinoya yazılım yükleyemiyorum bilnki bile taslak yüklenirken hata oluştu biyor sebebi nedir
klon ardunolarda usb sürücüsü farklı oluyor üstünde ch440 diye entegresi varsa internette aratın ve windows driver i kurun.
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.
foruma gelin nasıl hata alıyorsanız onu da yazın.
Arduino programında koöutları yazdıktan sonra programı atmak istediğimde program yüklenemedi hatası alıyorum neden olabilir
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.
Arduino’da Analog Buton Kullanımının programını yazabilir misiniz ?
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
Peki birde arduino nano nun analog pinine birden fazla buton baglayip bir ledi calistirmanin programini da yazabilir misiniz ?
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…
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..
yollayamayız, foruma da sorun. hayatta başarılar.
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.
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…
Verdiğiniz bilgiler ve ilginiz için çok teşekkür ederim.
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…
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…
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…
foruma gelin kodu oraya koyun yardım eden cıkar.
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.
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
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.
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
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);
}
}
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
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?
foruma gelin sorun p10 panelle ılgılı konular var
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.
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.
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.
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.
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
foruma gelin sorun
arkadaşlar bana 3 eksenli pusula sensörü ile step motoru çalıştıracak kodlar lazım bana yardımcı olur musunuz.
foruma gelin ama size kolaylık kullandıgınız sensorun adını google a yazın cok guzel kodlar gelir
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!!!
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.
Cok faydali Temel bilgiler Tesekkür ederim
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
foruma gelin yada facebookdaki arduıno grupları bu konuda daha faal oralara bir sorun.
Ö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.
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
Ö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.
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
ö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ış
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.
Merhaba Ömer Bey, “volatile boolean” kodu ne işe yarar çoğu yeri araştırdım ama bulamadım cevaplarsanız sevinirim.
compiler optimizasyonu ıle alakalı bir durum aslında ama faydalı, değişkeni kullanmadıgınızda compiler bu hafıza alanını başka bir değişkene atayabilir bunu önlemek için bu tanımlama ıle kullanılırsa compiler bu değişkenin adresini hafizasında devamlı kalıcı tutar. bilmiyorum anlaşıldı mı?
şu şekilde aramalısınız https://www.google.com/search?q=c%2B%2B+volatile+nedir&oq=c%2B%2B&aqs=chrome.1.69i57j35i39j69i65l3j0.5352j0j7&sourceid=chrome&ie=UTF-8
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
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.
1,1,2,3,5,8,13,21……. Bu örüntünün programda yazabilir misiniz?
siz yazdınız mı ornek kodunuzu koyun bakalım beraber.
hocam merhabalar.Assembly kodu olarak buton kontrollü led yakma ve buton kontrollü led parlaklık ayarlamak için yardımcı olabilirmisiniz
olamayız.
hocam merhabalar.Assembly kodu olarak buton kontrollü led yakma ve buton kontrollü led parlaklık ayarlamak için yardımcı olabilirmisiniz.
her gün aynı soruyu başka başka kişiler soruyor aynı yazının altına. topluca cevap vereyim HAYIR OLAMIYORUZ !
İ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
program yuklerken arduıno ustune bağlıysa hc05 onun pinlerini çıkar öyle yuklemeyi dene yukledıkten sonra takarsın pinleri yerine
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
yazma işi https://www.arduino.cc/en/Tutorial/EEPROMWrite
okuma işi https://www.arduino.cc/en/Tutorial/EEPROMRead
arduino açıldığında setup kısmında epromdan okursun hedef değerleri, butonlarla ayarladıklarını da eproma yazarsın anlık.
#include SFE_MicroOLED.h
hocam burda yanlış olan ne
#include < SFE_MicroOLED.h > şeklinde deneyin.
ayrıca bu header dosyasının programınızla aynı klasörde olmasını sağlayın
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
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.
gerçekten çok güzel anlatmışsınız çok faydalı bilgiler ellerinize emeğinize sağlık
teşekkürler. mutlu sağlıklı yeni yıl dileriz, kolay gelsin.
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;
}
mesafe() ve mesafe2() fonksiyonlarını setup() üstünde bir yere taşıyıp denermisin
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);
}
}
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.
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
ö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
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…
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.
projenize çok fazla destek olamayız ancak yapmak istediğinizi anlatın sıkıştığınız noktayı söyleyin buradan yazalım
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
ö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.
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
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
}
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?
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
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);
}
}
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.
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?
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…
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.
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.
hocam,
RC522 modülüne isim tanımlaya bilir miyiz?
Bu isimleri kullanmak istiyorum..
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.
hocam neden NodeMcu ya leş muamelesi yapıyorlar
öylemiymiş. bilmyorum. destekleyen yada geliştirenlerle alakalı bir durum olabilir.
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
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
#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);
}
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
}
bu koda role nasıl eklerim akım gecerse röle tetiklesin
PDF varmı?
yok ama yapabilirsin pdf i.
sayfayı yazdır deyin pradan yazıcı olarak pdf seçeneğini seç sayfadakileri pdf olarak kaydedebilirsin.
kolay gelsin
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?
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.
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
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…
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.
hangi kısmını yaptınız kodunuzu paylaşın buradan bakalım.
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
}
}
}
kodun içinde delay() lar var bunlar veri kaçırmanıza sebep olur. millis() komutu ile çözün o kısımları.
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)
}
çok geç dönebildik ne yaptınız son durum nedir.
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
mapdeger=map(A0_dan_olculen_deger,0,1023,0,255);