- Katılım
- 27 Şubat 2019
- Mesajlar
- 12,010
Şuan dışardayım. Geçmiş mesajlarda var orası. Hatta o mekanizmayı anlattığım video da var.Bağlantı şeması değil kumbarada olan yerlerinin konumunun
Şuan dışardayım. Geçmiş mesajlarda var orası. Hatta o mekanizmayı anlattığım video da var.Bağlantı şeması değil kumbarada olan yerlerinin konumunun
TeşekkürlerŞuan dışardayım. Geçmiş mesajlarda var orası. Hatta o mekanizmayı anlattığım video da var.
buranın konumlarının ölçüleri var mıAbi ldr den 30 -ila 900 arası analog okuma yapabiliyorum. Bunu da map komutu ile 0-1 durumuna yuvarlıyorum. Sadece 2 rakam. Bu durumda para ldr yi kapatıyorsa 0'ı kullanıyorum, kapatmıyorsa 1'i kullanıyorum. Paraları asıl servo sayesinde tanımlıyorum. Para düşene kadar servo 1'er derece aralıklarla ilerliyor. Mesela 1tl 146.adım da düşüyor aşağı. Bende eğer servo 146 ya eşitse 1 tl olarak tanımlıyorum. Diğer paralarda sırasıyla 137,126,119 ve 115. Adımlarda düşüyor. En çok korktuğum 5krş ile 10krş arasında servoda 4 adım fark ediyor.
7030 eklentisine bak
7031 eklentisine bak
Ölçü yok. Oradaki durum şöyle;buranın konumlarının ölçüleri var mı
Kırmızı ile çevirdiğim yertoplam: 0 TL oluyor sürekli13346 eklentisine bak
EEPROM.put
olmalı. Orayı düzeltirsen toplayacaktır.Ona müsait bir zamanda bakalım.Öncelikle teşekkürler bu yardımlarından dolayı. Benim projemde 4x4 tuş takımı ile kağıt para atıldığında ekleme ve kumbaradan para alındığında ise çıkarma işlemi yapan kod yazmam lazım bana bu konuda da yardımcı olur musun? Mesela kumbarada 12.50TL var 8.25TL aldığımda toplamda 4.25TL yazmasını istiyorum.
#include "I2CKeyPad.h"
const uint8_t KEYPAD_ADDRESS = 0x20;
bool konsol = false;
I2CKeyPad keyPad;
int ToplamSayi = 0;
int NoktaSay = 0;
if (keyPad.begin(KEYPAD_ADDRESS) == false)
{
Serial.println("\nERROR: cannot communicate to keypad.\nPlease reboot.\n");
while(1);
}
uint8_t idxx = keyPad.getKey();
char idx = "D#0*C987B654A321"[idxx];
if ( isdigit(idx) ) {
uint8_t sayi = idx - '0';
ToplamSayi = ((ToplamSayi * 10) + sayi);
if (konsol) {
Serial.print( "Tuslanan Sayi:" );
Serial.println(ToplamSayi);
}
SatirTemizle(1);
lcd.print(ToplamSayi);
} else if ( idx == 'A' ) {
// Burada A Tuşunun Yapması Gereken Görevin Kodları Yazılacak
if (konsol) {
Serial.println("A tuşuna basıldı");
}
} else if ( idx == 'B' ) {
// Burada B Tuşunun Yapması Gereken Görevin Kodları Yazılacak
if (konsol) {
Serial.println("B tuşuna basıldı");
}
} else if ( idx == '#' ) {
// Burada # Tuşunun Yapması Gereken Görevin Kodları Yazılacak
if (konsol) {
Serial.println("# tuşuna basıldı");
}
} else if ( idx == '*' ) {
// Burada * Tuşunun Yapması Gereken Görevin Kodları Yazılacak
if (konsol) {
Serial.println("* tuşuna basıldı");
}
} else if ( idx == 'C' ) {
// Burada C Tuşunun Yapması Gereken Görevin Kodları Yazılacak
if (konsol) {
Serial.println("C tuşuna basıldı");
}
} else if ( idx == 'D' ) {
// Burada D Tuşunun Yapması Gereken Görevin Kodları Yazılacak
if (konsol) {
Serial.println("D tuşuna basıldı");
}
}
delay(300);
Merhaba ben microprocessors dersim için arduino ile dijital kumbara projesine başladım ve elimde Arduino Uno Başlangıç Seti (Set İçeriği: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
11248 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); }
Bir tane servoya ihtiyacın var.Merhaba ben microprocessors dersim için arduino ile dijital kumbara projesine başladım ve elimde Arduino Uno Başlangıç Seti (Set İçeriği:
1 x Arduino UNO (CH340 Klon),1 x A'dan B'ye USB Kablo,1 x Orta Boy Breadboard,1 x 40 Pin Ayrılabilen Erkek-Erkek Jumper Kablo,10 x 330 Ohm Direnç,5 x 10K Ohm Direnç,4 x 5 mm Kırmızı LED,2 x 5 mm Yeşil LED,1 x RGB LED,1 x 10K Potansiyometre,1 x 5 mm LDR,1 x HC-SR04 Ultrasonik Sensör,2 x Push Buton (4 Pin),1 x LM35 Sıcaklık Sensörü,1 x Buzzer), Mikro SD Kart Modülü, sd kart, 16x2 LCD Ekran - I2C Lehimli Mavi Display, Arduino DS3231 Hassas RTC Modülü, 40 Adet Dişi-Dişi Jumper Kablo 20cm, Tekli Breadboard, Lityum Pil, 40 Adet Erkek-Erkek Jumper Kablo 20cm,40 Adet Dişi-Erkek Jumper Kablo 20cm var. Bunlar bu proje için yeterli midir ya da başka almam gereken ne var bilmediğim için sormak istedim.
3D yazıcım yok, el becerisi ile yaparım büyük ihtimalle, servonun birsürü modeli var farkeder mi herhangi birini temin etsem?Bir tane servoya ihtiyacın var.
3D yazıcın var mı? Yoksa mekanizmayı el becerisi ile yapman gerekecek.
Devre şeması ve gerekli kodlamalar 1.Mesajda ekli. Videoyu izlediysen mantığını anlamışsındır.
Projeye başladıysan takıldığın yerlerde soru sorabilirsin. Sorularını resim ile desteklemen daha iyi yardım almanı sağlayacaktır.
SG90 alırsan yeterli olacaktır.3D yazıcım yok, el becerisi ile yaparım büyük ihtimalle, servonun birsürü modeli var farkeder mi herhangi birini temin etsem?
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
11248 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); }
Merhaba, burada LCD için bağlantı şeması yok sanırım, onu nasıl yapabilirim?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
11248 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); }
LCD üzerinde I2C modül olmalı.Merhaba, burada LCD için bağlantı şeması yok sanırım, onu nasıl yapabilirim?