void setup() içindeki myservo.attach(8); satırındaki 8'i 9 yap. Servoyu hangi pine bağladıysan buraya o pin numarasını yazman gerek.
Sd kart ve saat modülünü tamamen devreden sök. Önce sistemi çalışır hale getir.
Sistem çalışmaya başladıktan sonra sd kartı ve saat modülünü dahil edersin. Şuanda bilgin az. Her şeyi aynı anda yapmaya çalışırsan olmaz.
Bunu başarabilmenin en kolay yolu adım adım gidip ne yaptığını anlamak.
Hangi otobüse bineceğini bilmiyorsan, hedefine ulaşamazsın.
1653989251864.png
Çıktı bu şekilde oluyor.
 
Evet işe yaradı. Servonun pervanesinin başlangıç konumunu belirten bir yer var mı kodda ya da bunun için yazılacak bir kod var mıdır?
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.

C++:
// 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);
  }
 
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.

C++:
// 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);
  }
Sistemim bu şekilde, 25 kr için adım sayısını buldum. Sorunsuz işliyor diğerleri için de adım sayılarını değiştiriyorum ama attığım her parayı 25kr olarak algılıyor.
 

Ekler

  • WhatsApp Image 2022-06-03 at 3.35.23 PM.jpeg
    WhatsApp Image 2022-06-03 at 3.35.23 PM.jpeg
    304.3 KB · Görüntüleme: 128
Sistemim bu şekilde, 25 kr için adım sayısını buldum. Sorunsuz işliyor diğerleri için de adım sayılarını değiştiriyorum ama attığım her parayı 25kr olarak algılıyor.
Void loop kısmındaki kodu ekler misin?
 
Void loop kısmındaki kodu ekler misin?
C++:
void loop()
{
  // 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 >= 200 )) {
      para = 1;
      Hesapla(para);
    } else if ((ldr_oku == 1) && (adim >= 150)) {
      para = 0.50;
      Hesapla(para);
    } else if ((ldr_oku == 1) && (adim >= 100)) {
      para = 0.25;
      Hesapla(para);
    } else if ((ldr_oku == 1) && (adim >= 70)) {
      para = 0.10;
      Hesapla(para);
    } else if ((ldr_oku == 1) && (adim >= 50)) {
      para = 0.05;
      Hesapla(para);
    }
  } else {
    myservo.write(80);
    digitalWrite(ikaz, LOW);
  }
 
Bşraz bekleteceğim. Dışarıdayım eve geçince bakacağım.
 
Ben buna cevap yazmıştım ya. Cevap kayıp. Acaba yanlışlıkla başka konuya mı yazdım. :dusun1:
Neyse Dişçideyim şimdi. Eve geçince yazayım.
 
Kodlarda bir sıkıntı göremedim. Adım değerlerini yazmışsın zaten.
Burada tezat bir durum var. Eğer servo her parayı değişik adımlarda düşürüyorsa 25 kuruş olarak okumasına imkan yok.
Çünkü adım sayısına göre if bloğu içine girip oradaki değeri gönderiyor. Yani yukarıdaki koda göre 1 TL attıysan servo 200 adım ilerledikten sonra parayı düşürür ve hesaplama fonksiyonuna 1 değerini gönderir. Bu durumda 25 kuruş yazması imkansız.
Paraları ayrı ayrı atıp videosunu çekebilir misin? Bu esnada ekran da görünürse iyi olur.
 
Kodlarda bir sıkıntı göremedim. Adım değerlerini yazmışsın zaten.
Burada tezat bir durum var. Eğer servo her parayı değişik adımlarda düşürüyorsa 25 kuruş olarak okumasına imkan yok.
Çünkü adım sayısına göre if bloğu içine girip oradaki değeri gönderiyor. Yani yukarıdaki koda göre 1 TL attıysan servo 200 adım ilerledikten sonra parayı düşürür ve hesaplama fonksiyonuna 1 değerini gönderir. Bu durumda 25 kuruş yazması imkansız.
Paraları ayrı ayrı atıp videosunu çekebilir misin? Bu esnada ekran da görünürse iyi olur.
O adım sayıları doğru değil ben mantıken yazdım ama olmuyor. Tutturamıyorum adım sayılarını. Tamam çekeyim video daha net anlaşılır.
 
Kodlarda bir sıkıntı göremedim. Adım değerlerini yazmışsın zaten.
Burada tezat bir durum var. Eğer servo her parayı değişik adımlarda düşürüyorsa 25 kuruş olarak okumasına imkan yok.
Çünkü adım sayısına göre if bloğu içine girip oradaki değeri gönderiyor. Yani yukarıdaki koda göre 1 TL attıysan servo 200 adım ilerledikten sonra parayı düşürür ve hesaplama fonksiyonuna 1 değerini gönderir. Bu durumda 25 kuruş yazması imkansız.
Paraları ayrı ayrı atıp videosunu çekebilir misin? Bu esnada ekran da görünürse iyi olur.
0.05 kuruşu attığımda yanlışlıkla hareket ettirdim devreyi servo 1 tl anladı onun dışında her attığım parayı 0.25 kr olarak algılıyor
 

Ekler

  • IMG_4075.MOV
    82.2 MB
  • image.jpg
    image.jpg
    729.4 KB · Görüntüleme: 116
0.05 kuruşu attığımda yanlışlıkla hareket ettirdim devreyi servo 1 tl anladı onun dışında her attığım parayı 0.25 kr olarak algılıyor
Mekanizmayı da çekmen lazımdı. Önemli olan orası.
Servo kolunu öyle bir ayarlaman lazımki 5 kuruşta atsan 1tl de atsan kıyıdan köşeden kaçıp düşmemesi lazım.
Paralar sadece servo kolu yeterince açıldığında düşmeli.
 
Mekanizmayı da çekmen lazımdı. Önemli olan orası.
Servo kolunu öyle bir ayarlaman lazımki 5 kuruşta atsan 1tl de atsan kıyıdan köşeden kaçıp düşmemesi lazım.
Paralar sadece servo kolu yeterince açıldığında düşmeli.
servodan geçmesinde sorun yok sadece adım sayılarını tutturamıyorum 1 tl yi ayarladım 0.50 kr da ayarladım ama 0.25 kr da tıkanıyo devre
 
servodan geçmesinde sorun yok sadece adım sayılarını tutturamıyorum 1 tl yi ayarladım 0.50 kr da ayarladım ama 0.25 kr da tıkanıyo devre
Servonun LDR ve LED'e çok yakın olması lazım. Çünkü servo ilerlemeye başladığında parada ilerliyor. Eğer para düşmeden önce LDR ve LED'in önü açılıyorsa bu da sıkıntıya sebep olur.

25 kuruşu attın.
Servo kolu ilerlemeye başladı.
Sende saymaya başladın 81-82-83-84......
Para 85 de düştü.
Gittin kodların içinde 25 kuruşun if bloğundaki karşılaştırmasını 85 yaptın.

1- Bu durumda tam olarak ne oluyor?
2- Para düşmeden LDR ve LED'in önü açılıyor mu?
 
Servonun LDR ve LED'e çok yakın olması lazım. Çünkü servo ilerlemeye başladığında parada ilerliyor. Eğer para düşmeden önce LDR ve LED'in önü açılıyorsa bu da sıkıntıya sebep olur.

25 kuruşu attın.
Servo kolu ilerlemeye başladı.
Sende saymaya başladın 81-82-83-84......
Para 85 de düştü.
Gittin kodların içinde 25 kuruşun if bloğundaki karşılaştırmasını 85 yaptın.

1- Bu durumda tam olarak ne oluyor?
2- Para düşmeden LDR ve LED'in önü açılıyor mu?
 

Ekler

  • C8852A18-30AF-452F-B473-0458BEE91008.jpeg
    C8852A18-30AF-452F-B473-0458BEE91008.jpeg
    239.2 KB · Görüntüleme: 138
  • FullSizeRender.MOV
    5.9 MB

Çevrimiçi personel

Forum istatistikleri

Konular
6,944
Mesajlar
118,678
Üyeler
2,821
Son üye
Sfkzdmr

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top