Merhaba arkadaşlar. Bu dersimizde arduino kullanarak yaptığımız bir projeyi bilgisayardan şifre girerek nasıl başlatabileceğinizi anlatacağım.
Bunu bilgisayarınız açılırken girilen şifre gibi düşünebilirsiniz. Arduinonuz size bir şifre soracak eğer, şifre doğru ise çalışmaya başlayacaktır.
Şifre gönderimi serial monitör tarafından olacaktır. Herkesin en başta analog deger okumak için kullandiği ekranla biz bu sefer arduinoya değer göndereceğiz. Eğer gönderdiğimiz değer önceden belirlediğimiz değerle eşleşirse kod bizim asıl projemizin döngüsüne girecektir.
void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); Serial.begin(9600); Serial.println("Merhaba!"); delay(1000); Serial.println("Lutfen sifreyi giriniz"); } void loop() { start: const char pas = 'makerrobotistan'; if (Serial.read() == pas) { Serial.println("giris yapildi"); delay(1000); digitalWrite(13, HIGH); goto start; } }
Kod kısacası serial giriş daha önce belirlenmiş değişkene eşit olursa if’in içine girip led yakar. Siz bunu kendi projenize uyarlarsanız if’in içine While(1) gibi bir döngü yazarak şifre girildiğinde programınızı başlatabilirsiniz.
Bu koda alternetif olarak arduinonun kendi password kütüphanesi vardır.
#include <Password.h> Password password = Password( "1234" ); void setup(){ Serial.begin(9600); password.append('1');//Parola tahminine 1 ekle password.append('2');//Parola tahminine 2 ekle password.append('3');//Parola tahminine 3 ekle password.append('4');//Parola tahminine 4 ekle Serial.println( password.evaluate()?"true":"false" ); //1234 == 1234 oldugu için true yazdirmali password.reset(); //parolayı sifirlar Serial.println( password.evaluate()?"true":"false" ); // 1234 != NULL oldugu için false yazar password.set("qwerty"); //sifreyi qwerty yapar Serial.println( password.is("qwerty")?"true":"false" ); //qwerty == qwerty oldugu için true yazdirmali Serial.println( password.is("qwirty")?"true":"false" ); // qwerty != qwirty oldugu için false yazar } void loop(){/*asil kod*/}
Not: Şifre girilirken serial haberleşme kullanıldığı için arduinonuzun üstündeki rx tx pinlerini kullanırken dikkatli olmanız gerekir.
Rasim hocam yazı için teşekkür ederim. Kendi kütüphanesindeki kodlarla yaptık oldu. Şimdi sizin kodu da deneyecez.
Çok güzel bir anlatım olmuş Rasim hocam ellerine sağlık saygılar
Bu yazılım yanlış burada şifre maker robotistan değil sadece n harfi
Loop un içine artı bir kod yazarakta deneyebilirsiniz serial ekranda sadece n harfini yazarakta deneyebilirsiniz
Arduinonun Orginal olmasımı gerekiyor hocam lütfen cevaplayın
Hayır. Arduino’nun klon veya orjinal olması farketmez.
Rasim hocam eline saglık
Microchip de program kilitleme nin yaptıgı işi mi yapıyor tam olarak.Bizim Yazdığımız kodun kopyalanıp başkalarının tarafından çoğaltılmasını engelleyebilirmiyiz
hocam şifreyi nasıl çözüyoruz
const char pas = ‘makerrobotistan’;
Burada gözden kaçan bir hata var.
Örneğin char pas = ‘a’; dersek tamam ama karakter dizisini tek tırnak arasında yazamayız.
const char * pas = “makerrobotistan” deseydik bu şekilde olabilirdi. C’de string tanımlaması bu şekildedir. Ya da dizi şeklinde tanımlayabilirsiniz.
Ayrıca serialread fonksiyonu tek bir karakter okuyor bunun için Serial.readString fonksiyonunun kullanılması gerekir.
Derlerken hata vermiyor fakat çalıştırınca son harf olan n değişkene yüklendiği için sadece “n” harfine göre işlem yapıyor.
abi siz benim çok işime yaradınız sizin sayenizde arduinoda çok iyisiniz lütfen daha fazla proje atarmısınız
Merhaba ben hazır projeme buradaki kodu nasıl ekleyebilirim çok uğraştım yapamadım yardım ederseniz sevinirim