Тёмный
No video :(

Arduino millis ile aynı anda birden fazla işlem yaptırmak - 2.bölüm - Ders 26 - 

Görsel İşitsel Teknoloji
Подписаться 16 тыс.
Просмотров 6 тыс.
50% 1

Arduino içerisinde millis ve micros komutları ile aynı anda aynı zamanda yapılacak işlerin kontrolü sağlanmaktadır. Bir işlem yaparken arada gecen zamanı yada geçmesini istediğimiz zamanı bu komutlar ile sağlarız. Zaman komutlarıyla bir ledin yanması, bir fanın çalışma süresi, bir sensörün ölçüm aralığı gibi bir çok donanımı kontrol edebiliriz. Delay ve delaymicroseconds arduino içerisinde kullanıldığı satırda algoritmayı bekletirken millis ve micros komutları algoritmayı bekletmeden işlemler yapmaktadır. Bu videomuzda zaman fonksiyonlarının genel ve kullanım mantığını örnekle anlatmaya çalıştım, videoyu izleyerek detayları hakkında bilgi sahibi olabilirsiniz.
#delay #delaymicroseconds #millis
Dersimizde kullandığımız malzemeler ve kodlar:
1 Adet Arduino uno r3
3 Adet Led
3 Adet 330R direnç
1 adet bread board ve bağlantı kabloları
Kuracağınız algoritma mantığına uygun donanımlar seçebilirsiniz.
Video içerisindeki kodlar : www.teknikerle...
Elektronik ürünleri satın alabileceğiniz
www.famerelektr... doğru adres
Ayrıca;
► Sıfırdan Elektronik Öğrenmek isteyenler için: bit.ly/3rghV8b
► Sıfırdan Fotoğrafçılık Öğrenmek isteyenler için: bit.ly/3vXctay
► Adobe After Effects Öğrenmek için : bit.ly/3Cj8GYU
► Sıfırdan Arduino Öğrenmek isteyenler için: bit.ly/3qzI3M1
► Yeni ders videoları için : bit.ly/3A066qa buraya tıklayarak abone olabilirsiniz!
İyi Seyirler.
Bu video hoşunuza gittiyse ve yeni ekleyeceğimiz videolar hakkında anında haberdar olmak için kanalımıza abone olmayı ve beğen butonuna tıklamayı unutmayınız.
Fotoğraf işleme, Video İşleme ve Robotik Kodlama hakkında herşey bu kanalda.
Fotoğrafta Kompozisyon ve Photoshop ile fotoğraf işleme.
After effects ve Premierde Video kurgu ve düzenleme.
Arduino ile Robotik Kodlama dersleri.
Sayısal elektronik devreleri…

Опубликовано:

 

26 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 68   
@erhanaktepe8434
@erhanaktepe8434 Год назад
Hocam siz resmen ışığı görmeye yardımcı oluyorsunuz , bu kadar güzel ve sürükleyici bir anlatım yok
Год назад
Teşekkür ederim ☺️
@celalkalaycoglu4880
@celalkalaycoglu4880 4 месяца назад
Hocam çok teşekkür ederiz bizi bilgilendiriyorsunuz
4 месяца назад
👋👋👋
@unlunl87
@unlunl87 Год назад
Sizin gibi bilgisini paylaşan eğiten öğreten insanlara hayranım hocam teşekkürler.
Год назад
Teşekkür ederim ☺️
@cemilerdem5694
@cemilerdem5694 Год назад
Teşekkürler
Год назад
👋👋👋
@user-sm6fj6eg4b
@user-sm6fj6eg4b 5 месяцев назад
supersin hocam
5 месяцев назад
👋👋👋
@serdarcal
@serdarcal 7 месяцев назад
Gerçekten tebrik ederim 👏👏
7 месяцев назад
Teşekkürler ☺️
@oyungezegeni6012
@oyungezegeni6012 2 года назад
Güzel bir paylaşım olmuş emeğinize sağlık
2 года назад
Teşekkür ederim
@turgutaydogan5753
@turgutaydogan5753 Год назад
teşekkürler Allah razı olsun senden
Год назад
👋👋👋
@ahmetaydin3313
@ahmetaydin3313 10 месяцев назад
emeğinize sağlık hocam çok çok teşekkürler
10 месяцев назад
Teşekkürler ☺️
@fusunkaratas9774
@fusunkaratas9774 Год назад
şu millis komutunu insanların kafasını karma karışık yapan bir konu. yok önceki zaman yoık şimdiki zaman vs. bunun yerine şöyle basit bir kod var örneğin işlemi 1 saniyede bir işlem yapmak istiyorsanız if (millis() % 1000 == 0) { yazarak devam edin hepsi bu kadar. Bu kod, zamanlayıcı olarak millis() fonksiyonunu kullanarak her saniyenin bölü 1000'inde (yani her saniyenin başında) istediğiniz işlemi yapar. süre 5 saniye ise if (millis() % 5000 == 0) { olarak değiştirin değeri kolay gelsin
@fusunkaratas9774
@fusunkaratas9774 Год назад
hatta şöyle yapabiliriz. örneğin yeşil bir led 50 ms yanıp 100 ms sönecekse. öncelikle const if (millis()% 50 == 0) { digitalWrite(lyesilpin,HIGH)); } if (millis() % 100 == 0) { digitalWrite(yesilpin,LOW); }
Год назад
:) sanırım sizin de kafanızı bir hayli karıştırmış. Aslında haklısınız ama keşke sizin dediğiniz gibi olabilseydi güzel olurdu. Vermiş olduğunuz örneği tekrar incelerseniz bunun pek mümkün olmayacağını anlarsınız. Millis' i Delay'dan ayıran en büyük fark sayıcının hiç durmadan sayması bunu biliyoruz. Millis mod alınarak sağlıklı çalışabilen bir fonksiyon değildir. Bunun teknik altyapısını inceleyerek ne demek istediğimi anlayabilirsiniz. Sizin örnekleriniz üzerinde giderek açıklamaya çalışacağım. Siz demişsiniz ki ; if (millis() % 1000 == 0) { ne yapacaksanız yapın} bu satırlar ilk başta bir kez çalışır ve ondan sonra bir daha asla 1 saniye arayla bu satırı göremezsiniz illaki bu satır ileride bir zamanda tekrar çalışır ama bu mod alma işleminin kalanın 0 olduğu rastgele bir zamanda olacaktır. Tinkercad ile basit bir simülasyon ile deneyebilirsiniz. Hatta arduino kartına yükleyip te seri ekrandan takibini yapabilirsiniz. İkinci örneğinize gelince maalesef tam bir fiyasko ilk örneğinize göre mantık hatası içeriyor. Bir led yanarken aynı anda sönmesi mümkün mü? Çünkü aynı millisi kullandık. Biraz daha somutlaştıralım: millisin zaman damgası örneğin 25000 olsun 25000 iken dedik yeşil led yan >>>> if (millis()% 50 == 0) { digitalWrite(lyesilpin,HIGH)); } 25000 iken dedik yeşil led sön >>>>if (millis() % 100 == 0) { digitalWrite(yesilpin,LOW); } Yukarıyı okursak şöyle dedik: 25000 iken yeşilled 50ms yansın ve yaktı aynı zaman dilimi içinde 25000 iken yeşilled 100ms sönsün dedik Arduino buna itiraz etmez derleme yapınca hata vermez ama yeşilledin hiçbir zaman yandığını göremezsiniz. Sonuç: Siz gelin bu, şimdiki zaman ve önceki zaman mantığını kavramaya çalışın. Sorunsuz şekilde ledinizin ve hatta ledlerinizin yanıp söndüğünü görebilin.
@ahmetozdemir7173
@ahmetozdemir7173 9 месяцев назад
Millis komutunun ne olduğunu anlaaya çalışanlar mutlaka sizi dinlemeli.
9 месяцев назад
👋👋👋
@technicahmett
@technicahmett Год назад
Hocam elinize sağlık. Çok güzel ve detaylı bir video olmuş. Millis tam oturmamıştı ama aturmaya başladı. Fakat aklıma takılan birşey var, bu led yakmalarını buton basılınca nasıl başlatılırız. Yani buton yada başka bir girdiye göre led yakmak istediğimizde millis i nasıl kullanacağız. Bunu tam olarak anlayamadım.
Год назад
Kanalımdaki arduino öğreniyorum serisi içindeki buton sayaç ve diğer videolarda bir çoğunda örnekledim onlardan faydalanabilirsiniz.
@mustafasartas3481
@mustafasartas3481 9 месяцев назад
hocam çok güzel bi çalışma olmuş benim aklıma takılan bir durum oldu ben nema 17 step motor kullanırken adımlar arası bekleme delayMicroseconds ile yapıyordum ve fonksiyon içinde mesela 3veya4 motor kullanırken motorlara tek tek hareket vermek istediğim zaman motor bi ses çıkarıp hareket etmiyordu bunun sebebi araya bekleme komutu olarak kullandığım delay fonksiyonu mu sebep oluyor ve adımlar arası bekleme süresini millis olarak nasıl kullanabilirim ( mail yerine yorum olarak yazdım belki ihtiyacı olan birisi de faydalanır) şimdiden teşekkürler :)
9 месяцев назад
Aynı anda birden fazla işlemin kontrol edilmesi gerekiyorsa delay kullanımı diğer işlemlerin bekletilmesine sebep olur. Millis mantığı şuanki zaman ile aradan geçen zamanı kıyaslama yapılarak zaman farkını süre olarak kullanmamızdır. Bu sayede kodlar delayda olduğu gibi satır beklemesi yerine işlemler beklemeksizin devam edebilir ve kontrol edebilirsiniz.
@caglarsayim3107
@caglarsayim3107 8 месяцев назад
hocam bizim işlemcimiz aynı anda sadece bir işelmi gerçekleştiryordu şimdi kırmızı lede 500ms verdik yeşil lede 1000 ms verdik 1000ms anında ikisininde yanması gerekiyor işlemci ikisini aynı anda nasıl çalıştırıyor.
8 месяцев назад
Bu işlemi ms hızında yaptığı için aradaki minik gecikmeleri biz farkedemiyoruz
@conspiratorshadow
@conspiratorshadow Год назад
hocam cok uzatmışsın HIGH LOW felan CHANGE komutu işini görürdü daha pratik
Год назад
En iyi yol bildiğin yol. Ama yerine göre alternatif yolları da bilmek gerekir.
@muratkoroglu2035
@muratkoroglu2035 Год назад
Hocam öncelikle videolarin akiciligi cok iyi bu konuda basarilarinin devamini dilerim amator olarak arduino switch case break kullanarak led animasyon yapmaya calisiyorum fakat bazi animasyonlarda delay cok kullandigimdan animasyon degisimi icin araya giremiyorum yardimci olursaniz cok memnun olurum
Год назад
Eğitim videolarını izlemenizi tavsiye ederim, bu konuyla ilgili kanalda videoladan faydalanabilirisiniz.
@fzlsr
@fzlsr Год назад
1 jojstick 2 adet step motor 4 kanal röle 2 arduino 2 nrf24 antenli alet aldım. İş makinesini uzaktan kontrol etmeye çalışıyorum. Uzaktan marş yaptırdım. 1. Röle kontak, 2. Röle kızdırma bujisi, 3. Röle marş motoru, 4. Röle korna. Buraya kadar yaptım. Şimdi 1. Step motor gaz pedalına, 2. Step motoru direksiyona takmak istiyorum. Mekanik işini ben yapacağım ancak uzaktan kumanda ve kodları için yardım lazım.🙏
Год назад
Detaylı bir proje. Özelden mail ile iletişime geçebilirsiniz.
@fzlsr
@fzlsr Год назад
@ mail bulamadım hocam size zahmet yazar mısınız
Год назад
@@fzlsr kerim42ari@gmail.com
@cevatozturkmicrotekelektro7463
@cevatozturkmicrotekelektro7463 7 месяцев назад
hocam serial ekranda rakamlar sürekli üzerine koyarak gidiyor. bildiğim kadarıyla belirli bir sayıya geldiğinde durması gerekiyor yanılıyormuyum
7 месяцев назад
Durmuyor değişkenin saklanabileceği tanımlamadaki son değerine gelince düzenli saymıyor.
@sinandemir4945
@sinandemir4945 Месяц назад
hocam ben arduino nano da hc06 ile uzaktan kontrollü araç uygulamamda ayrıca polis çakarı fonksiyonu ekledim fakat çakar çalışınca fonksiyonu çalışınca uzaktan kontrol sırasında sıkıntı yaşıyorum ya almıyor yada takılı kalıyor. lütfen bana yardımcı olur musunuz
Месяц назад
Çakar için delay kullanmayın ve ayrıca aşağıdaki video da fikir verebilir Arduino - Kesmeler - Zaman Kesme - Aynı Anda iki işlem - Robotik Kodlama Dersleri - 75 - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-DHa8rIstCmg.html
@sinandemir4945
@sinandemir4945 Месяц назад
Hocam o ve bir çok videonuzu izledim ama kaç gündür uğraşıyorum bir türlü mantığı çözemedim ne yaptıysam beceremedim.bana yardımcı olun hacom
@vetkangalae7606
@vetkangalae7606 Год назад
Elimde boyle bir kod var Birinci butonu kullanırken aynı anda ikinci kodu nasıl kullanabilirim tesekkurler int butonpin = A1; int butonpin2 = A2; int butonpin3 = A3; int role_1 = 12; int role_2 = 11; int butondurum = 0; int butondurum2 = 0; int butondurum3 = 0; void setup(){ pinMode(butonpin, INPUT); pinMode(butonpin2, INPUT); pinMode(butonpin3, INPUT); pinMode(role_1, OUTPUT); pinMode(role_2, OUTPUT); } void loop(){ butondurum = digitalRead(butonpin); butondurum2 = digitalRead(butonpin2); butondurum3 = digitalRead(butonpin3); digitalWrite(role_2,HIGH ); if (butondurum == HIGH) { digitalWrite(role_2, LOW); delay(209); digitalWrite(role_1, LOW); delay(209); digitalWrite(role_1, HIGH); delay(409); digitalWrite(role_2, HIGH); delay(16000); } else { digitalWrite(role_1, HIGH),(role_2, HIGH); } if (butondurum2 == HIGH) { digitalWrite(role_2, LOW); delay(209); digitalWrite(role_1, LOW); delay(209); digitalWrite(role_1, HIGH); delay(409); digitalWrite(role_2, HIGH); delay(6500); } else { digitalWrite(role_1, HIGH),(role_2, HIGH); } if (butondurum3 == HIGH) { digitalWrite(role_2, LOW); delay(209); digitalWrite(role_1, LOW); delay(209); digitalWrite(role_1, HIGH); delay(409); digitalWrite(role_2, HIGH); delay(4000); } else { digitalWrite(role_1, HIGH),(role_2, HIGH); } }
Год назад
İşlemler arasında çok uzun delay kullanmak algoritmayı bekletir. Bunun yerine millis i uyarlayınız. Video içinde yöntemi mevcut.
9 месяцев назад
Sayın hocam merhaba Nasıl yaparız fikriniz var mı?
8 месяцев назад
Maalesef bu şekilde bilemiyorum.
@anlimaca
@anlimaca Год назад
Hocam aşağıdaki kodda led 1 er saniye aralıklarla yanıp sönüyor, ve delay kullanmadan örneklerinizdeki gibi millis ile yaptım. Fakat bir noktada tıkandım. if (brakestatus == 0) { if (now - before > 1000) { ledstatus = !ledstatus; digitalWrite(led, ledstatus); before = now; } } else { analogWrite(led, 255); } Ben led in yaklaşık 60 milisaniye yanıp, 1 saniye kadar sönük kalmasını ve bunu tekrarlamasını istiyorum. Ama yukarıdaki kodda 1 saniye yanıp 1 saniye sönüyor.
Год назад
ledstatus yerine high low kullanın delay yerine millis kullanabilirsiniz. İki ayrı millis kullanacaksınız.
@ismetatalay8712
@ismetatalay8712 2 года назад
Hocam merhaba, peki bu millis komutunu yeni bir fonksiyon içerisine atayıp sadece o fonksiyon ile gecikme verebilirmiyiz bilgilendirirmisiniz ?
2 года назад
Aynı zaman aralığı kullanılacaksa fonksiyon içerisinde kullanılabilir.
@ismetatalay8712
@ismetatalay8712 2 года назад
@ evet aynı zaman aralığında kullanmayı düşünüyorum peki nasıl yazabilirim yeni bir fonksiyon oluşturup içerisine videoda olduğu gibi if şeklinde mi yazmalıyım?
2 года назад
@@ismetatalay8712 evet
@ozankavci
@ozankavci 2 года назад
Hocam merhaba, zaman fonksiyonu demişken. Watch dog timer dan bahsedermisiniz neredeyse hiç Türkçe kaynak yok
@ozankavci
@ozankavci 2 года назад
Bonus olarak 🙏
2 года назад
Bu konuyada yer verelim inş.
9 месяцев назад
Sayın hoca selamlar, millis() fonsiyonunu kullanarak butonlar ve metot kullanarak bie seneryo oluşturdum şöyle ki; yeşil ledi 500ms kırmızı ledi 750ms ve beyaz ledi 1000 ms aralıklarla yaktırmak istiyorum ancak bunu metot kullanarak herbirinin butonunan basıldığında yapsın istiyorum ve durdur butonuna bastığımda ise bütün ledlerimin sönmesini istiyorum. Söndürme işlemini dış keme kullanarak yapabiliriz ancak farklı ve daha pratik bir yolu var mıdır? Kodum sağlıklı çalışmıyor... Serial Monitor da hep yeşil dönüyor.... Yazdığım kodu paylaşıyorum yardımınızı istirham ediyorum saygılar... unsigned long simdikizaman; unsigned long oncekizaman_yesil=0; unsigned long oncekizaman_kirmizi=0; unsigned long oncekizaman_beyaz=0; bool led_durum_yesil=HIGH; bool led_durum_kirmizi=HIGH; bool led_durum_beyaz=HIGH; int basla_yesil=7; int basla_kirmizi=8; int basla_beyaz=9; int durdur=1; int led_yesil=3; int led_kirmizi=4; int led_beyaz=5; void setup() { pinMode(basla_yesil,INPUT_PULLUP); pinMode(basla_kirmizi,INPUT_PULLUP); pinMode(basla_beyaz,INPUT_PULLUP); pinMode(durdur,INPUT_PULLUP); pinMode(led_yesil,OUTPUT); pinMode(led_kirmizi,OUTPUT); pinMode(led_beyaz,OUTPUT); Serial.begin(9600); } void loop() { simdikizaman=millis(); if(digitalRead(basla_yesil==HIGH)){ yesil(); } else if(digitalRead(basla_kirmizi==HIGH)){ kirmizi(); } else if(digitalRead(basla_beyaz==HIGH)){ beyaz(); } else(digitalRead(durdur==HIGH)) ;{ durdurx(); } } void durdurx() { digitalWrite(led_yesil,LOW); digitalWrite(led_kirmizi,LOW); digitalWrite(led_beyaz,LOW); } void yesil() { if(simdikizaman-oncekizaman_yesil>=500) { Serial.println("yesil"); Serial.println(simdikizaman); led_durum_yesil=!led_durum_yesil; digitalWrite(led_yesil,led_durum_yesil); oncekizaman_yesil=simdikizaman; } } void kirmizi() { if(simdikizaman-oncekizaman_kirmizi>=750) { Serial.println("kirmizi"); Serial.println(simdikizaman); led_durum_kirmizi=!led_durum_kirmizi; digitalWrite(led_kirmizi,led_durum_kirmizi); oncekizaman_kirmizi=simdikizaman; } } void beyaz() { if(simdikizaman-oncekizaman_beyaz>=1000) { Serial.println("beyaz"); Serial.println(simdikizaman); led_durum_beyaz=!led_durum_beyaz; digitalWrite(led_beyaz,led_durum_beyaz); oncekizaman_beyaz=simdikizaman; } }
9 месяцев назад
Uygulamalı test etmek lazım, bu şekilde zor
9 месяцев назад
@ sayın hocam nasıl yaparız var mı fikriniz?
@HO-cj3ut
@HO-cj3ut 2 года назад
başarılı olmuş sizden bir ricam var ben motor kullanıcam 3v var 6v var 12v var ; ben bunlara elektirik bilgim az hangi direnç kullanmalıyım bunun videosunu bulamadım her videoda az az bahsetmişler yeterli değil , örneğin 3-6v yazan motor aldım bu kaç amper çeker buna kaç pil gerekir direnç hangisi yeterlidir vs vs
2 года назад
Teşekkür ederim. Motor için neden direnç kullanma ihtiyacı duyuyorsunuz. Tek başına direnç ile motorların çekeceği akımı kontrol etmek pek mümkün değil. Motor sürücü kartlar var onlardan faydalanabilirsiniz. Motorun türü ve nerede ne amaçla kullanılacağıda önemli bir konu. Kanalımdaki dc motorlar videomu izleyebilirsiniz. Size biraz fikir verecektir. DC (Doğru Akım) Motorlar Nasıl Çalışır? Servo, Step, Fırçalı ve Fırçasız Motorlar #19 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-q1Iz9bNmXOo.html
@HO-cj3ut
@HO-cj3ut 2 года назад
@ Dirençler üzerine videonuzu ve motor videonuzu izledim L298 üzerine bilgilendim ve çok daha kücük sürücü kartları olduğunu gördüm fakat hangisi hangi motora göre sanırım voltajdan bakarak anlıyoruz , özellikle site üzerinden alışveriş yaparken akım, volt gibi değerler verildiğinden akıl karışıyor bu yüzden yazdım. Teşekkür ederim.
2 года назад
@@HO-cj3ut motor konusu hem akımla hem voltajla doğrudan ilişkilidirler, motorun torku ve devir hızı gibi bir çok etken vardır. Doğrudan birşey söylemek doğru bir yönlendirme olmaz.
@HO-cj3ut
@HO-cj3ut 2 года назад
@ bitçok sürücü kartı var hepsi aynı işlevi görüyor sanırım l298 , a4988, l9110 bunları neye göre almayız bir avantaj dezavantaj tarzı bir durum var mı bu farklı kartlar nelere hizmet etmektedir. Bu durumlarla alakalı bir video gelicek mi ?
2 года назад
@@HO-cj3ut ilerleyen eğitim serileri içinde inş.
@nazimozcan9061
@nazimozcan9061 Год назад
merhaba herkese, ogrenırken bır sorunla karsılastım ??? delayla digitalWrite ( ledpin.HIGH); delay (100); digitalWrite ( ledpin.LOW); 100ms sonra sonmesını ıstesem ve yanmıcak bunu neden mıllısle yapamadım bı turlu bu mıllıs hep flasor olarakmı kullanılıyor yardımcı olursan sevınırım calısan kod mıllıs flosör { currentMillis = millis(); if (currentMillis - startMillis >= 100) { digitalWrite(ledPin, !digitalRead(ledPin)); state startMillis = currentMillis; } }
Год назад
Burada çalışan kodlar mevcut. www.teknikerler.com/arduino-millis-ile-ayni-anda-birden-fazla-islem-yapma-2-bolum-ders-26/amp/
Далее
Arduino Sketch with millis() instead of delay()
14:27
Просмотров 227 тыс.
YAPAY ZEKAYA Robot Kodlatmak
23:24
Просмотров 151 тыс.
millis() Fonksiyonu Kullanımı
10:51
Просмотров 2,5 тыс.
EEPROM - Arduino Tarifleri #26
21:33
Просмотров 53 тыс.