dnyARDUINO dnyArduino ile Asansör Uygulaması By Burak Ablay Posted on 23 Ağustos 2015 6 min read 10 0 8,516 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr 7 segmend display Merhabalar arkadaşlar , Yine bu yazımızda hayatın içinden duymaya ve görmeye alışkın olduğumuz bir sistemi dnyArduino seti üzerinde uygulamasını yaptık.Bu uygulama ne kadar asansör uygulaması olsada motor vs elemanlar içermemektedir.Bu uygulamanın amacı asansör sisteminin kat numaralarını 7 Segmend display ile görselini gerçekleştirmektir.Asansörlerde genellikle kat tayini için sınır anahtarları yada kızıl ötesi bazı sensörler tercih edilmektedir.Biz bu uygulamada dnyArduino kiti üzerinde bulunan butonlarla bunu yaptık.Bunların tümü aynı mantığı içermektedir.Tetiği verdiğiniz anda lojik 1 komutunu alan ve sensörü görmediğinde yani buton olarak düşünürsek butonu bıraktığımızda lojik 0 değerini göstermektedir.Ancak bu iş uygulamada lojik 0 a düştüğünde bir önceki değeri yani hala 1. katta olduğumuzu göstermesi istenir.Bu durumu sağlamak için PLC derslerinden alışık olduğumuz mühürleme mantığı ön plana çıkar.dnyArduino üzerinde mühürleme mantığını gerçekleştire bilmek için sıra gelen birçok kod kullandım.Belki bu kod trafiği size karışık gelebilir ancak elimden geldiğince sadeleştirmeye çalıştım.Bu işi farklı türde düşünüp farklı yönden çözebilen programlarda yazılabilir bunada saygı gösteririm. 7 SEGMEND DİSPLAY(dnyArduino) 7 segmend Görüldüğü üzere bizim bildiğimiz 7 segmend displayin dışında dnyArduino tasarımıyla birlikte kolaylıkla displaye hükmedebiliyoruz. Normalde displayler ortak anat ve ortak katottan oluşmaktadır.Bu setin üzerinde bulunan displayler ise ortak katottur.NK ucuna lojik 0’ı verdikten sonra Karakterlerden herhangi birisine lojik 1 değerini yolladığımızda o karakter yanacaktır.Bu mantığa dayanarak uygulamamızın kodunuda yazmış bulunmaktayız. Devrenin Şeması: Devre şeması Devrenin Arduino Kodu: [php] int lastbutton1=LOW; int lastbutton2=LOW; int lastbutton3=LOW; void setup() { // put your setup code here, to run once: pinMode(2, OUTPUT);//7 segment display çıkışları pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, INPUT);//b1 pinMode(10, INPUT);//b2 pinMode(11, INPUT);//b3 } void loop() { // put your main code here, to run repeatedly: int buttonState1,buttonState2,buttonState3; buttonState1 = digitalRead(9); buttonState2 = digitalRead(10); buttonState3 = digitalRead(11); if(buttonState2== LOW && buttonState3==LOW){ if((buttonState1!=lastbutton1)||(buttonState1==HIGH)){ digitalWrite(2,LOW); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); lastbutton1=HIGH; lastbutton3=LOW; lastbutton2=LOW; }} if(buttonState3 ==LOW && buttonState1==LOW){ if((buttonState2!=lastbutton2)||(buttonState2==HIGH)){ digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,HIGH); lastbutton2=HIGH; lastbutton1=LOW; lastbutton3=LOW; }} if(buttonState2 == LOW && buttonState1==LOW){ if((buttonState3!=lastbutton3)||(buttonState3==HIGH)){ digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,HIGH); lastbutton3=HIGH; lastbutton2=LOW; lastbutton1=LOW; }}} [/php] Arduino kodunun anlatımı: Arkadaşlar ilk önce kullanacağım arduino pinlerinin giriş ve çıkışlarını belirledim.Daha sonra butonun dijital durumları kontrol ediliyor.Birinci buton ve birinci kat için 2 ve 3 katlar aktif olmayacak ve ilk durumda butonların durumlarını lojik 0 yaptığım durum değiştimi diye ve buton 1 basıldımı diye kontrol ediyor ilk şartlar sağlandığında displayimiz 1. katı göstermektedir.Elimizi butondan kaldırsak bile yani sınır anahtarından geçti ve 2 kata çıkıyorken bile hala 1.katta göstermek istiyorum.O yüzden ilk durumda lojik 0 a gitse bile 1. butonun durumunu lojik 1 yapıyorum ve sürekli 1. katta olduğumuzu gösteriyoruz.Aynı durumlar 2. kat ve 3. kat için geçerlidir. Devrenin videosu: