Arduino LCD I2C Algılamama Sorunu

Merhabalar
Lcd I2C ye hello world yazdırmak istiyorum ve kütüphanesinide indirdim ama arduino uno’ya bağlayınca arduino uno modülü algilanmiyor.
lcd i2c yi baglayinca arduino uno devre dışı kalıyor, cok tuhaf geldi gerçekten
Nasıl cozebilirim acaba?

Yaptığınız devrenin şemasını atarmısınız. :grinning_face_with_smiling_eyes:

SDA > A4
SCL > A5
VCC > 5V
GND > GND
bağlantılar bu şekilde

Güç yetersiz olabilir başka bir bilgisayar ile denermisin? :grinning_face_with_smiling_eyes:

başka bilgisayar yanımda yok maalesef
Ama ilk defa böyle bir sorun ile karşılaştım arduino uno yu daha once kullanirken boyle bir durum oluşmamıştı.

Merhabalar,
Evet Hüseyinin dediği gibi güç yetersiz olabilir eğer başka bir bilgisayarda deneme fırsatınız yoksa 5V lik herhangi bir kaynaktan LCD’yi besleyebilirsiniz. Örnek verirsek telefon adaptörünün kablolarını açın Kırmızıyı LCD’nin vcc pinine, siyah kabloyu da arduinonun GND pinine LCD’nin GND pininide arduinonun GND’sine bağlayarak deneme yapabilirsiniz. :slightly_smiling_face:

9V luk batarya olur mu ?
Arduino uno bağlantı kablosu da mevcut

I2C nin bağlantısını söküp kodu ayın sonra bağlantıları yapıp 9v pille güç vermeyi deneyin. :grinning_face_with_smiling_eyes:

evet çalıştı
acaba bu guc yetersizliği sorunu nasıl çözülür?

Çalışıyorsa sorunu çözmüşsündür demekki :joy:. Bilgisayar için diyorsan onun çözüleceğini zanetmiyorum USB çıkışı zayıftır.

Çok teşekkürler.
Ayrıca bir soru daha soracaktım
Lm35 sensörü ve lcd i2c kullanarak sicaklik ölçümü yapmak istiyorum ,sicaklik degerlerini de 4 farkli olcekte gosteren
ve ayrica olculen yuksek degerleri(ornegin38.5 C) sd kart modulu kullanarak kaydetmek istiyorum
bunun icin nasıl bir kod yazmalıyım ?
ve devre şeması nasil olmali ?

Dört farklı ölçek derken ne dediğinizi anlayamadım. :slightly_smiling_face:

fahreneit, kelvin, rankine, ve celcius
bunlar matematiksel formüller ile birbirine dönüştürülebiliyor
tabi 2*16 ekran oldugu icin ilk satirda Celcius ve Fahrenayt
ikinci satirda Kelvin ve Rankine değerlerini gostermesi gerekiyor sanırım

kod kisminda yardımcı olabilir misiniz acaba?
ozellikle yuksek sıcaklık değeri belirleme ve bunun üzerinde ölçülen sıcaklık değerlerini kaydetme konusunda sorun yaşıyorum

Tamamdır koddları yazıyorum yüksek sıcaklık olarak eğer 30 derecenin üstüne çıkarsa sd karta kaydedecek.

Tamamdır kodlamayı bitirdim. LM35; sağ bacak=GND, orta bacak=A0,
sol bacak=5V. SD kart bağlantısı; MISO=12, SCK=13, SS=10, MOSI=11, GND=GND,
5V=5V pinlerinde bağlıyoruz. i2c ekran bağlantısı; SDA=A4, SCl=A5, GND=GND, Vcc= 5V bağlantılarını yapıyoruz ve şu kodları atıyoruz;

#include<SPI.h>
#include<SD.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); //Eger calısmazsa 0x3f adresini yazin.
int lm35Pin = A0;
int okunan_deger = 0;
float sicaklik_gerilim = 0;
float sicaklik = 0;
const int chipSelect = 10; // SD kart CS/SS bacagi
void setup()
{
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  Serial.println("SD kart yukleniyor");
  if(!SD.begin(chipSelect))
  {
    Serial.println("SD kart taninmadi");
  }
  Serial.println("SD kart tanındı");
  if(!SD.exists("datalog.txt"))
  {
    SD.open("datalog.txt");
    Serial.println("datalog.txt Acildi");
  }
  else
  {
  Serial.println("datalog.txt Bulundu");  
  }
}
void loop()
{
okunan_deger = analogRead(lm35Pin);
sicaklik_gerilim = (okunan_deger / 1023.0)*5000;
sicaklik = sicaklik_gerilim /10.0;
  Serial.println(sicaklik);
lcd.setCursor(1,1);
lcd.print("C=");
lcd.setCursor(4,1);
lcd.print(sicaklik);
lcd.setCursor(8,1);
lcd.print("K=");
lcd.setCursor(10,1);
lcd.print(sicaklik*274);
lcd.setCursor(1,2);
lcd.print("F=");
lcd.setCursor(4,2);
lcd.print(sicaklik*34);
lcd.setCursor(9,2);
lcd.print(sicaklik*493);
if(sicaklik >= 30){
File dataFile = SD.open("datalog.txt, FILE_WRITE");
dataFile.print("Sicaklik= "); dataFile.print(sicaklik);
dataFile.close(); //Kapat ve kaydet
 }
}

İsteğe göre DS1302 saat modülü eklenebilir. Kolay gelsin. :slightly_smiling_face:

1 Beğeni