Adam hakkini vermis iste. Yok bu sensor okumuyo falan filan yok. Catir catir dusuyor paralar. :p:D
Ben sonradan sensörün bacağındaki direnç değeri ile oynayarak algılamasını artırmayı öğrendim ama 5 tane sensör kullanmam gerekliydi.
5 sensör 30tl para ama servo 10tl, ldr 25 kuruş. 30TL ye 5 ayrı delikten okumak mı? yoksa 10.25 TL ye tek kanaldan okumak mı?
Hem ldr yi de sen önerdin bana. Niye şimdi yan çiziyon ki :katil2:
 
merhabalar yapılan proje cok güzel olmuş herkesin eline sağlık yazılım kütüphanelerini nereden bulabilirim projeyi yapmak istiyorum
 
merhabalar yapılan proje cok güzel olmuş herkesin eline sağlık yazılım kütüphanelerini nereden bulabilirim projeyi yapmak istiyorum
Kod:
#include <Servo.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>

Servo ve LCD ekran kütüphanesini arduino programında aratarak yükleyebilirsin.
EEPROM kütüphanesi zaten arduino içinde kurulu geliyor.
 
Arduino ile Para Sayan Kumbara yapmayı planlıyorum. 1tl, 50kr, 25kr, 10kr ve 5kr için 5 ayrı bölme olacak. Yani parayı attığımda hem ayıracak hem sayacak bir sistem. Bunun için paranın delikten geçtiğini görüp arduino pinine sinyal gönderecek 5 ayrı göz lazım. Ben bu gözün adını hatırlayamadım. IR alıcı mıydı, foto transistör müydü yada başka birşey miydi? Bu konuda bana yardımcı olur musunuz?

Edit: PROJEYİ BİTİRDİM

Uzun süredir üzerinde çalıştığım arduino nano kumbara projemi sonunda bitirdim. Bu kadar uzun sürmesinin nedeni parayı tanımlayacak mekanik kısmın uğraştırmasıydı. Çeşit çeşit mekanizmalar oluşturup denedim ve en sonunda güzel çalışan bir sistem yaptım.
Gerekli Tüm Dosyalar Ekteki Zip Dosyası İçindedir. Takıldığınız yeri Sorabilirsiniz.



7671 eklentisine bak7672 eklentisine bak7673 eklentisine bak7674 eklentisine bak

Arduino Nano Shield
7675 eklentisine bak,

Test Aşamaları
7676 eklentisine bak

Servo, LED ve LDR Bağlantı şeması
7677 eklentisine bak


Arduino Nano Kumbara Kodları:
#include <Servo.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>

// LCD ekran bilgileri
LiquidCrystal_I2C lcd(0x27, 16, 2);

Servo myservo;
#define ldr A0
#define pil A7
#define ikaz 12
int ldr_oku;
int lldr = 0;
int adim = 106;
float para = 0;

// Pil değişkenleri
int min_deger = 988;
float yuzde = 0;
float deger = 0;
int gerilim = 0;

unsigned long simdiki_zaman = 0;
unsigned long onceki_zaman = 0;
int aralik = 32000;

// Pil Karakterleri
byte pil_yuz[8] = {
  B01110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte pil_yetmisbes[8] = {
  B01110,
  B11011,
  B10001,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte pil_elli[8] = {
  B01110,
  B11011,
  B10001,
  B10001,
  B11111,
  B11111,
  B11111,
  B11111
};
byte pil_yirmibes[8] = {
  B01110,
  B11011,
  B10001,
  B10001,
  B10001,
  B11111,
  B11111,
  B11111
};
byte pil_on[8] = {
  B01110,
  B11011,
  B10001,
  B10001,
  B10001,
  B10001,
  B11111,
  B11111
};

// Kumbara değişkenleri
float toplam = 0;
float veritipi;
void setup()
{
  Serial.begin(115200);
  myservo.attach(8);

  pinMode(ldr, INPUT);
  pinMode(ikaz, OUTPUT);

  myservo.write(106);
  digitalWrite(ikaz, LOW);

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Kumbara V.1");
  lcd.setCursor(0, 1);

  float toplam = EEPROM.get(0, veritipi);
  SatirTemizle(1);
  lcd.setCursor(0, 1);
  lcd.print("Toplam: ");
  String mst = String(toplam);
  String msst = "TL";
  mst.concat(msst);
  lcd.setCursor(7, 1);
  lcd.print(mst);
}

// Pil Göstergesi Fonksiyonu
/*void PilGosterge(byte gelen_char) {
  lcd.createChar(1, gelen_char);
  lcd.setCursor(15, 1);
  lcd.write(1);
}*/

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 >= 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);
  }

  // Pil Ölçümü
  simdiki_zaman = millis();
  if (onceki_zaman >= 4294967295) onceki_zaman = 0;
  if (simdiki_zaman - onceki_zaman >= aralik) {
    onceki_zaman = simdiki_zaman;

    gerilim = analogRead(pil);
    Serial.print("Analog Read: ");
    Serial.println(gerilim);
    if (gerilim >= 1022)
      gerilim = 1022;

    if (gerilim <= 988)
      gerilim = 988;
    yuzde = gerilim - min_deger;
    //Serial.print("Yüzde: ");
    //Serial.println(yuzde);
    deger = (100.00 / 34.00) * yuzde;
    //Serial.print("Değer: ");
    //Serial.println(deger);

    if (deger >= 90.00) {
      //PilGosterge(pil_yuz);
      lcd.createChar(1, pil_yuz);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else if (deger >= 75.00) {
      //PilGosterge(pil_yetmisbes);
      lcd.createChar(1, pil_yetmisbes);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else if (deger >= 50.00) {
      //PilGosterge(pil_elli);
      lcd.createChar(1, pil_elli);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else if (deger >= 25.00) {
      //PilGosterge(pil_yirmibes);
      lcd.createChar(1, pil_yirmibes);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else {
      //PilGosterge(pil_on);
      lcd.createChar(1, pil_on);
      lcd.setCursor(15, 1);
      lcd.write(1);
    }

  }
}

// Para Kaydetme Fonksiyonu
void Hesapla(float gelen_para) {
  SatirTemizle(0);
  lcd.setCursor(0, 0);
  lcd.print("Son Atilan: ");
  lcd.setCursor(12, 0);
  lcd.print(gelen_para);
  Serial.print("Son Atilan: ");
  Serial.println(gelen_para);
  float toplam = EEPROM.get(0, veritipi);
  toplam += gelen_para;
  // Aşağıdaki EEPROM satırı sistem tamamen çalışır duruma gelince aktif edilecek.
  // Bu komut kapalı olduğu için sistem toplama yapmaz.
  // Sistemem tamamen hazır olduğunda aktif edilir ve toplama yapmaya başlar.
  //EEPROM.put(0, toplam);
  SatirTemizle(1);
  lcd.setCursor(0, 1);
  lcd.print("Toplam: ");
  String mst = String(toplam);
  String msst = "TL";
  mst.concat(msst);
  lcd.setCursor(7, 1);
  lcd.print(mst);
  adim = 106;
  myservo.write(adim);
  digitalWrite(ikaz, LOW);
  Serial.print("Toplam: ");
  Serial.print(toplam);
  Serial.println(" TL");
  delay(50);
}



// LCD Satır Temizleme Fonksiyonu
void SatirTemizle(int satir) {
  lcd.setCursor(0, satir);
  lcd.print("                ");
  lcd.setCursor(0, satir);
}
hocam hayırlı günler kodlama da 3. satırda hata veriyor acil yardımcı olurmusuz
 
hata ilk 3. satır hocam
 

Ekler

  • hata.png
    hata.png
    76.9 KB · Görüntüleme: 106
hocam benim bu koda ihtiyacım var cok acil durumda
Bu kadar acil olan ne?
Ödev olarak mı seçtin projeyi?
Görünüşe göre kütüphaneyi eklememişsin, yada yanlış yere eklemişsin. Birinci mesajdaki zipli dosyayı indir. İçinde o kütüphane var.
BELGELERİM-->ARDUINO - - >LIBRARY içine ekle.
 
hocam şuan bir sorunum daha var ldr ile kırmızı led ışık uyuşmuyor sebebi ise ldr nin algılamaması ve servo motoru harekete geçirmemesi ayrıca ilk açıldıgında lcd ekranda bişeyler yazması lazım degilmiydi
 
hocam şuan bir sorunum daha var ldr ile kırmızı led ışık uyuşmuyor sebebi ise ldr nin algılamaması ve servo motoru harekete geçirmemesi ayrıca ilk açıldıgında lcd ekranda bişeyler yazması lazım degilmiydi
Ekran ilk açıldığında void setup kısmındaki kodlar çalışır. LDR nin çalıştığını serial ekrandan test et.
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,950
Mesajlar
118,738
Üyeler
2,822
Son üye
lalemasall

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