Çözdüm olayı. LDR yi if bloğuna girmeden okuyup değeri sıfır ise if bloğuna sokuyordum. İçeride paranın düştüğünü kontrol etmek için
ldr_oku == 1
ise komutu kullanıyordum. Bu komut analog okuma olayı if 'in dışında kaldığı için 1 değil hep 0 dönüyordu. Haliyle if 'in içine girmediğinden komutlar çalışmıyordu. Bende if içinde bir kez daha analog okuma yaptım. Böylece paranın düştüğünü kesinleştirip if 'in içindeki komutları okutabildim. Biraz karışık ama önceki kodlar ile şimdikini karşılaştırırsanız anlaşılır.
BAŞARDIM!!!
Öte yandan benim için bu bir devrimdir.
Konunun başından beri tek elemanla okumaya çalıştığım paraları sonun da bu gün okuyabildim.
Artık 1 LED, 1 LDR ve bir SERVO ile 5 adet madeni paramızı tanımlayabiliyorum.
Dolayısıyla bir önceki projede 5 ayrı servo ile bu işi başarmış olsam da kutuyu kapatmak içimden gelmedi. Çünkü 5 servo, 5 ldr ve onların dirençleri, kabloları vs derken insanı çileden çıkarır bir hal alıyor olay. Kumbara yapmak isteyeni bu kadar zorlamamak gerektiğini düşündüm.
Azmettim, Pes etmedim, Zorlandıkça sıkılıp bırakmadım, Aksine üstüne gittim.
Aşağıda gördüğünüz kodlar alelade yazılmış bir kod bloğu değil, bir başarının simgesidir. Bazılarının oturup 5dk da yazabileceği bu kodlar benim için paha biçilmezdir. Çünkü bu kodları yazabilmek için beni destekleyen arkadaşlarım, abilerim vardı. Onlarca öneri aldım, onlarca video izledim, internette sayfa sayfa konu araştırdım ve en sonun da 25sn lik bir mekanizma görüntüsünü analiz edip uygulayarak ve de bu mekanizmanın kodlarını sıfırdan kendim yazarak sonuca ulaştım.
Yakında yeni görsel ve videolar ile görüşmek üzere.
void loop()
{
lldr = analogRead(ldr);
ldr_oku = map(lldr, 0, 800, 0, 1);
if (ldr_oku == 0) {
myservo.write(adim);
adim++;
delay(30);
lldr = analogRead(ldr);
ldr_oku2 = map(lldr, 0, 800, 0, 1);
if ((ldr_oku2 == 1) && (adim >= 146)) {
//para = 1.00;
Serial.println("Bir TL");
adim = 106;
myservo.write(adim);
}else if ((ldr_oku2 == 1) && (adim >= 137)) {
//para = 1.00;
Serial.println("Elli Kuruş");
adim = 106;
myservo.write(adim);
}else if ((ldr_oku2 == 1) && (adim >= 126)) {
//para = 1.00;
Serial.println("Yirmibeş Kuruş");
adim = 106;
myservo.write(adim);
}else if ((ldr_oku2 == 1) && (adim >= 119)) {
//para = 1.00;
Serial.println("On Kuruş");
adim = 106;
myservo.write(adim);
}else if ((ldr_oku2 == 1) && (adim >= 115)) {
//para = 1.00;
Serial.println("Beş Kuruş");
adim = 106;
myservo.write(adim);
}
} else {
myservo.write(106);
}
}