Arduino buton basma süresine göre işlem yapma

Paylaş

Herkese iyi günler. Bir arkadaşım mesaj attı ve “Bir butona  belli bir süre basınca bir röle, belli bir süre basınca başka bir röleyi tetikleyebilir miyiz?” diye sordu. Biraz araştırdım ve birçok kod buldum ama kodlar biraz karışık geldi açıkçası. Biraz düşününce kendim yapmaya karar verdim. Biraz uğraşınca başardım şükür. Burada 2 adet led kullandım ve 1 saniyeden az basarsam kırmızı led, 1-2 saniye arasında basarsam yeşil led yanıyor. 2 saniyeden fazla basarsam ledler sönüyor. Mantık olarak ise şu şekilde düşündüm;

Butona basıldığında while döngüsü çalışıyor ve delay ile 100 milisaniye bekleyerek bir değişkeni arttırıyor. B değer en başta 0. Butondan elimizi çekince  değer 10 kez artarsa 1 saniye beklemiş oluyoruz ve kırmızı led yanıyor. Eğer değer sayısı 10 ile 20 arasında ise 2 saniye beklemiş oluyoruz ve değer 20’den fazla ise 2 saniyeden fazla beklemiş oluyoruz. While komutu bu sayıyı buluyor.

While’dan sonraki if bloğu ise işlemin yapılacağını onaylayarak say değerine göre ilgili ledi yakıyor diğerini söndürüyor ve say değeri ile işlem değerlerini tekrar sıfırlıyor. işlem bu şekilde sürekli devam ediyor. Led yerine istediğiniz röleyi tetikleyerek işlem yapabilirsiniz.

Mantık kolay umarım işinize yarar. Kodlar ve devre aşağıdaki gibi. Kolay gelsin.

Devre şeması
Butona 5 volt giriş yaptık ve çıkışı  digital 2’ye, kırmızı led digital 7’ye ve yeşil led digital 6’ya bağladık.

Video

Kodlar

 

1.428 views

Arduino buton basma süresine göre işlem yapma” için 6 yorum

  1. Oncelikle cok faydali olmus tesekkurler. Bir sorum olacakti. 3 ayri butonla tek bir roleyi 3 ayri sn de cektirmek istiyorum. Yani birinci butona bastim role 5 sn cekili kaldi sonra enerjisi kesildi. 2.butona bastim 3 sn cekili kaldi vs. Nasil yapabilirim. Yardimci olursaniz sevinirim.

    1. şu şekilde yapabilirsiniz. birinci butona basınca 1. röleyi çektirdikten hemen sonra delay(5000); yazarak 5 saniyelik bir gecikme yaparsınız. artık hangi röleyi ne kadar çekilmiş halde bekleteceksiniz o kadar süre delay ile bekletme yapabilirsiniz. fırsat bulursam bu hafta içinde bir örnek hazırlamaya çalışayım ama delay ile oldukça kolay olacaktır. Geç gelen yanıt içiinde kusura bakmayın. Şu sıralar biraz fazla yoğunum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.