Endorfin35+
Kayıtsız Üye
- Katılım
- 1 Mayıs 2020
- Mesajlar
- 4,409
Adam hakkini vermis iste. Yok bu sensor okumuyo falan filan yok. Catir catir dusuyor paralar.
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.Adam hakkini vermis iste. Yok bu sensor okumuyo falan filan yok. Catir catir dusuyor paralar.
Uçmayı biliyorum. Ondan...Niye şimdi yan çiziyon ki
merhabalar yapılan proje cok güzel olmuş herkesin eline sağlık yazılım kütüphanelerini nereden bulabilirim projeyi yapmak istiyorum
#include <Servo.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
teşekkür ederimKod:#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.
hocam hayırlı günler kodlama da 3. satırda hata veriyor acil yardımcı olurmusuzArduino 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); }
Hatanın olduğu ekran resmini koyar mısın?hocam hayırlı günler kodlama da 3. satırda hata veriyor acil yardımcı olurmusuz
Bu kadar acil olan ne?hocam benim bu koda ihtiyacım var cok acil durumda
Bitince resimlerini görmek isteriz.hocam evet bitirme tezim bu ödev olacak yardımınız için çok teşekkür ediyorum hocam
Zipli dosyayı indirip içinin resmini atar mısın?onu bulamadım
Ekran ilk açıldığında void setup kısmındaki kodlar çalışır. LDR nin çalıştığını serial ekrandan test et.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