Arduino kodu hatası

Katılım
13 Temmuz 2018
Mesajlar
1.844
Makaleler
1
Çözümler
27
Yer
Mersin
Daha fazla  
Cinsiyet
Erkek
ESP8266 modülü ile sıcaklık ve nem değerlerini thingspeak'e gönderen bir sistem yapmıştım ve gayet iyi çalıştı.
Sonradan LCD ekran ile bu verileri ve işlemleri LCD den okumak istedim ve LiquidCrystal kütüphanesini ekledim gerekli pin ayarlarını yaptım.

Kod:
#include <SoftwareSerial.h>                               
#include <dht11.h> 
#include <LiquidCrystal.h>
const int rs = 0, en = 1, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
String agAdi = "**********";                 
String agSifresi = "****************";       
int rxPin = 10;                                             
int txPin = 11;                                         
int dht11Pin = 2;
String ip = "184.106.153.149";                                //Thingspeak ip adresi
float sicaklik, nem;
dht11 DHT11;
SoftwareSerial esp(rxPin, txPin);                             //Seri haberleşme pin ayarları
void setup() {
  lcd.begin(16,2);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  digitalWrite(8, HIGH);
  Serial.begin(9600);  //Seri port ile haberleşmemizi başlatıyoruz
  Serial.println("Started");
  lcd.print("Started");
  esp.begin(115200);                                          //ESP8266 ile seri haberleşmeyi başlatıyor
  esp.println("AT");                                    //AT komutu ile modül kontrolünü yapıyoruz
  Serial.println("AT Yollandi");
  while(!esp.find("OK")){                                 
    esp.println("AT");
    Serial.println("ESP8266 Bulunamadı.");
    lcd.print("ESP8266 Bulunamadi");
    lcd.clear();
    lcd.setCursor(0, 0);
      }
  lcd.clear();
  lcd.setCursor(0, 0);
  Serial.println("OK Komutu Alındı");
  delay(100);
  esp.println("AT+CWMODE=1");   //ESP8266 modülünü client olarak ayarlıyoruz
  while(!esp.find("OK")){                                 
    esp.println("AT+CWMODE=1");
    Serial.println("Ayar Yapiliyor....");
    lcd.print("Ayar yapiliyor");
  }
  lcd.clear();
  lcd.setCursor(0, 0);
  Serial.println("Client olarak ayarlandı");
  Serial.println("Aga Baglaniliyor...");
  lcd.print("Aga Baglaniliyor");
  esp.println("AT+CWJAP=\""+agAdi+"\",\""+agSifresi+"\"")             ;//Ağımıza bağlanıyoruz
  lcd.clear();
  lcd.setCursor(0, 0);
  while(!esp.find("OK"));                                   
  Serial.println("Aga Baglandi.");
  digitalWrite(8, LOW);
  lcd.print("Aga Baglandi");
  delay(1000);
  lcd.clear();
  lcd.setCursor(0, 0);
}
void loop() {
     digitalWrite(9, HIGH);
   esp.println("AT+CIPSTART=\"TCP\",\""+ip+"\",80");           //Thingspeake bağlanıyoruz
  if(esp.find("Error")){                                   
    Serial.println("AT+CIPSTART Error");
    lcd.print("Error");
    lcd.clear();
    lcd.setCursor(0, 0);
  }
  DHT11.read(dht11Pin);
  sicaklik = (float)DHT11.temperature;
  nem = (float)DHT11.humidity;
  lcd.print(sicaklik);
  lcd.setCursor(4, 2);
  lcd.print(nem);
  String veri = "GET https://api.thingspeak.com/update?api_key=*********************";   //Key kısmına kendi api keyimizi yazıyoruz.  Kendi API keyim olduğu için sansürledim.                               
  veri += "&field1=";
  veri += String(sicaklik);
  veri += "&field2=";
  veri += String(nem);                                     
  veri += "\r\n\r\n";
  esp.print("AT+CIPSEND=");                                 
  esp.println(veri.length()+2);
  delay(2000);
  if(esp.find(">")){                                       
    esp.print(veri);                                       
    Serial.println(veri);
    Serial.println("Veri gonderildi.");
    delay(1000);
  }
  Serial.println("Baglantı Kapatildi.");
  esp.println("AT+CIPCLOSE");                                //Bağlantıyı kapatıyor
  delay(1000);                                              //Yeni veri gönderimi için 1 saniye bekliyor
  lcd.clear();
  lcd.setCursor(0, 0);
}

Maalesef LCD çalışmadı ve değişik karaketrler akmaya başladı. Ardından dümdüz bir ekran çıktı.






LCD'nin doğru bağlandığını teyit etmek için:


Kod:
#include <LiquidCrystal.h>

const int rs = 0, en = 1, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);


void setup() {
  lcd.begin(16,2);

}

void loop() {
  lcd.print("Deneme yazısı");
  delay(50);
  lcd.clear();

}

kodunu çalıştırdım ve eksiksiz çalıştı.

Kod kısmındaki hata nerede?
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı