Bir anormallik var senin işte ama çözemedik. Ben int olarak kullanıyorum sorun olmuyor.
Neyse madem long ile düzgün çalışıyor öyle devam et.
Merhaba;
anormallik olmasa şaşarım benim işimde
izlediğim videolara göre sd kart için gerekli kodları eklemeye çalıştım, normal birşey yaparak yine çalıştıramadım tabi
Kod:
#include #include #include #include // SPI kütüphanesi eklendi #include // SD kart kütüphanesi eklendi File dosya; // dosya adında bir File nesnesi oluşturuldu LiquidCrystal_I2C lcd(0x27, 20, 4); const uint8_t KEYPAD_ADDRESS = 0x20; //yeni I2CKeyPad keyPad; //yeni int lcdCursor = 0; int lcdprint = 0; long ToplamSayi = 0; void setup(){ pinMode(4, OUTPUT); Serial.begin(115200); lcd.begin(); SD.begin(); lcd.backlight(); // Ekrana yazdırılacak metin for(int i=0; i<4; i++) { lcd.setCursor(0,1); lcd.print(" MERCEDES BENZ "); delay(250); lcd.clear(); lcd.setCursor(0,2); lcd.print(" MERCEDES BENZ "); delay(250); lcd.clear(); } lcd.setCursor(0,1); lcd.print(" MERCEDES BENZ "); if (keyPad.begin(KEYPAD_ADDRESS) == false) { Serial.println("\nERROR: cannot communicate to keypad.\nPlease reboot.\n");// yeni while(1); } } void loop(){ lcd.clear(); lcd.setCursor(0,0); lcd.print(" ARAC NUMARASI GIR "); lcd.setCursor(6,2); lcd.print(ToplamSayi); uint8_t idxx = keyPad.getKey(); char idx = "123A456B789C*0#D"[idxx]; if ( isdigit(idx) ) { uint8_t sayi = idx - '0'; ToplamSayi = ((ToplamSayi * 10) + sayi); } else if ( idx == '#' ) { Serial.print(ToplamSayi); hesapla(ToplamSayi); ToplamSayi = 0; } else if ( idx == '*' ) { //Serial.print(ToplamSayi); } else if ( idx == 'A' ) { dosya.println("deneme"); //Serial.print(ToplamSayi); } else if ( idx == 'B' ) { dosya.close(); //Serial.print(ToplamSayi); } else if ( idx == 'C' ) { //Serial.print(ToplamSayi); } else if ( idx == 'D' ) { //Serial.print(ToplamSayi); } delay(300); } void hesapla(long arac_no) { Serial.print("Fonksiyon ici:"); Serial.println(arac_no); dosya = SD.open(arac_no,FILE_WRITE); }"]#include <I2CKeyPad.h>
#include <Wire.h>
#include <LiquidCrystalTr_I2C.h>
#include <SPI.h> // SPI kütüphanesi eklendi
#include <SD.h> // SD kart kütüphanesi eklendi
File dosya; // dosya adında bir File nesnesi oluşturuldu
LiquidCrystal_I2C lcd(0x27, 20, 4);
const uint8_t KEYPAD_ADDRESS = 0x20; //yeni
I2CKeyPad keyPad; //yeni
int lcdCursor = 0;
int lcdprint = 0;
long ToplamSayi = 0;
void setup(){
pinMode(4, OUTPUT);
Serial.begin(115200);
lcd.begin();
SD.begin();
lcd.backlight();
// Ekrana yazdırılacak metin
for(int i=0; i<4; i++)
{
lcd.setCursor(0,1);
lcd.print(" MERCEDES BENZ ");
delay(250);
lcd.clear();
lcd.setCursor(0,2);
lcd.print(" MERCEDES BENZ ");
delay(250);
lcd.clear();
}
lcd.setCursor(0,1);
lcd.print(" MERCEDES BENZ ");
if (keyPad.begin(KEYPAD_ADDRESS) == false)
{
Serial.println("\nERROR: cannot communicate to keypad.\nPlease reboot.\n");// yeni
while(1);
}
}
void loop(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ARAC NUMARASI GIR ");
lcd.setCursor(6,2);
lcd.print(ToplamSayi);
uint8_t idxx = keyPad.getKey();
char idx = "123A456B789C*0#D"[idxx];
if ( isdigit(idx) ) {
uint8_t sayi = idx - '0';
ToplamSayi = ((ToplamSayi * 10) + sayi);
}
else if ( idx == '#' ) {
Serial.print(ToplamSayi);
hesapla(ToplamSayi);
ToplamSayi = 0;
}
else if ( idx == '*' ) {
//Serial.print(ToplamSayi);
}
else if ( idx == 'A' ) {
dosya.println("deneme");
//Serial.print(ToplamSayi);
}
else if ( idx == 'B' ) {
dosya.close();
//Serial.print(ToplamSayi);
}
else if ( idx == 'C' ) {
//Serial.print(ToplamSayi);
}
else if ( idx == 'D' ) {
//Serial.print(ToplamSayi);
}
delay(300);
}
void hesapla(long arac_no) {
Serial.print("Fonksiyon ici:");
Serial.println(arac_no);
dosya = SD.open(arac_no,FILE_WRITE);
}
Last edited by a moderator: