void setup içinde
myservo.write(106);
yazıyor.
Benim mekanizmama göre ayarladığım başlangıç kodu bu. Sen kendi mekanizmana göre başlangıç konumu belirlemelisin.
Önce servonun kolunu sök.
Sonra tahminen senin servon 180 derecedir. Bunun ortasını (90 olarak) ayarla. Yani
myservo.write(90);
yap.
Sonra servo kolunu mekanizmada durması gereken konuma göre servoya geri tak.
Bundan sonra yapacağın işlemler de var.
Para haznesine 5 kuruş at. Servo tık tık tık diye 1'er adım ilerleyecek. Bu adımları 90'ın üzerine say. 91-92-93-94...
5 kuruş hazneden düştüğü anda ki değeri yaz bir kenera. Mesela 98'inci adımda düştüyse 5 kuruş, bunu kenara 5 kuruş = 98 adım diye not al.
Sonra her bir para için ayrı ayrı bu adımları 90 dan başlayarak say ve not et.
En son elindeki verileri void loop'un hemen altında, Para Tanımlama ve Kaydetme kod bloğunun içine yazacaksın.
// Para Tanımlama Ve Kaydetme
lldr = analogRead(ldr);
ldr_oku = map(lldr, 0, 800, 0, 1);
if (ldr_oku == 0) {
myservo.write(adim);
adim++;
digitalWrite(ikaz, HIGH);
delay(30);
lldr = analogRead(ldr);
ldr_oku = map(lldr, 0, 800, 0, 1);
if ((ldr_oku == 1) && (adim >= 146)) {
para = 1;
Hesapla(para);
} else if ((ldr_oku == 1) && (adim >= 137)) {
para = 0.50;
Hesapla(para);
} else if ((ldr_oku == 1) && (adim >= 126)) {
para = 0.25;
Hesapla(para);
} else if ((ldr_oku == 1) && (adim >= 119)) {
para = 0.10;
Hesapla(para);
} else if ((ldr_oku == 1) && (adim >= 115)) {
para = 0.05;
Hesapla(para);
}
} else {
myservo.write(106);
digitalWrite(ikaz, LOW);
}