İsmail Köle
Üye
- Katılım
- 13 May 2016
- Mesajlar
- 16
- Puanları
- 1
- Yaş
- 33
Arduino ile keypad üzerinden girilen char türündeki veriyi integer türüne çeviriyorum ancak rakam olarak bu işlemi yapıyorum.Şuan yapmak istediğim keypad üzerinden girilen rakamlardan 2 veya 3 basamaklı sayı oluşturmak.Bu işlemi nasıl gerçekleştiririm...Kodlar aşağıda arkadaşlar...Forumda arama yaptım ancak verilen cevaplar biraz askıda kalmış gibi yardımcı olursanız sevinirim
Kod:
#include <Keypad.h>//Keypad kütüphanesi eklendi...
byte motor = 13, mz80 = 5;
int sayac, adet, tutulan;
const byte SATIR = 4;//4 satır için sabit tanımlanıyor...
const byte SUTUN = 3;//3 sütun için sabit tanımlanıyor...
char tuslar[SATIR][SUTUN] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'},
};//4X3 lük matris oluşturuldu...
byte rowPins[SATIR] = { 9, 8, 7, 6 }; //Satır pinlerinin dijital girişleri ayarlanıyor...
byte colPins[SUTUN] = { 12, 11, 10 };//Sütun pinlerinin dijital girişleri ayarlanıyor...
Keypad kpd = Keypad( makeKeymap(tuslar), rowPins, colPins, SATIR, SUTUN );//Satır ve sütun için tuş haritası oluşturuluyor...
void setup() {
Serial.begin(9600);//Seri monitör başlatılıyor...
pinMode(mz80, INPUT);//Sensör giriş olarak tanımlanıyor...
pinMode(motor, OUTPUT);//Motorun bağlı olacağı röleyi çıkış olarak ayarlıyoruz...
digitalWrite(motor, LOW);
}
void loop() {
char tus = kpd.getKey(); //Keypadten gelen değer okunup adete gönderiliyor...
if (tus)//Tuşa basıldığında;
{
Serial.println(tus);//Basılan tuşu ekranda göster...
adet=tus-48;//Ascii kodundan integer türüne çevrim yapılıyor ve adet isimli değişkende tutuluyor sonuc...
}
if (digitalRead(mz80) == 0) //Sensör ürünü gördü mü?
{
delay(20);//Bekleme...
if (digitalRead(mz80) == 1) //Ürün sensörün önünden geçtiyse;
{
sayac++;//Her ürün geçtiğinde sayı 1 arttırılacak...
Serial.print("Adet:");
Serial.println(sayac);//Sayacı ekrana yazdırıyoruz...
if (sayac == adet ) //Eğer sayaç değişkeni girilen adet sayısana eşitse;
{
digitalWrite(motor, LOW);//Motor dursun...ß
Serial.println("Bitti");//Bitti yazsın...
sayac = 0;//Sayaç sıfırlansın...
}
}
}
}
[code]