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?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…