Çözüldü Arduino Uno butonlar ile LCD ekrana yazı yazdırma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

dorukre1

Decapat
Katılım
14 Kasım 2022
Mesajlar
69
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
LCD ekrana nasıl buton ile yazı yadırabilirim? Örneğin; 1.tuşa bastığımda ekranda "geç" yazsın 2.tuşa bastığımda ise "dur" yazsın bunun hakkında bir kod verir misiniz bana?

Ekran: 16x2 LCD ekran.
Bağlantıyı I2C modülü ile yapıyorum.
 
Son düzenleyen: Moderatör:
Çözüm

Galiba küçük bir kod yazabilirim.

C++:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

#define but1 2
#define but2 3
#define but3 4

void setup()
{
lcd.begin();
pinMode(but1,INPUT);
pinMode(but2,INPUT);
pinMode(but3,INPUT);
lcd.setcursor(0,0);
lcd.print("Tusa basin");
}

void loop()
{
if (digitalRead(but1) ==1)
{
lcd.setcursor(0,0);
lcd.clear();
lcd.print("Durun!");

while (digitalRead(but1) ==1)
{
delay(100);
}
}
 elseif ((digitalRead(but2) ==1)
{
lcd.setcursor(0,0);
lcd.clear();
lcd.print("Bekleyin...");

while (digitalRead(but2) ==1)
{
delay(100);
}
}

elseif (digitalRead(but3) ==1)
{
lcd.setcursor(0,0);
lcd.clear();
lcd.print("Geçin");

while (digitalRead(but3) ==1)
{
delay(100);
}
}

}

Kütüphane ismini yanlış yazmış olabilirim bir de telefondan yazdım hata alırsanız belirtin.

Ayrıca butonlar için pulldown direnci kullanmayı unutmayın aksi takdirde kod kilitlenir çünkü tuşa basılı tutunca saçmalamasını engellemek için while döngüleri koydum.


Kodun düzenlenmiş hali:

C++:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define but1 2
#define but2 3
#define but3 4

void setup()
{
 lcd.begin(0x27, 16, 2);
 pinMode(but1, INPUT);
 pinMode(but2, INPUT);
 pinMode(but3, INPUT);
 lcd.setCursor(0, 0);
 lcd.print("Tusa basin");
}

void loop()
{
 if (digitalRead(but1) == 1)
 {
 lcd.setCursor(0, 0);
 lcd.clear();
 lcd.print("Durun!");

 while (digitalRead(but1) == 1)
 {
 delay(100);
 }
 }
 else if (digitalRead(but2) == 1)
 {
 lcd.setCursor(0, 0);
 lcd.clear();
 lcd.print("Bekleyin...");

 while (digitalRead(but2) == 1)
 {
 delay(100);
 }
 }

 else if (digitalRead(but3) == 1)
 {
 lcd.setCursor(0, 0);
 lcd.clear();
 lcd.print("Geçin");

 while (digitalRead(but3) == 1)
 {
 delay(100);
 }
 }

}

Galiba küçük bir kod yazabilirim.

C++:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

#define but1 2
#define but2 3
#define but3 4

void setup()
{
lcd.begin();
pinMode(but1,INPUT);
pinMode(but2,INPUT);
pinMode(but3,INPUT);
lcd.setcursor(0,0);
lcd.print("Tusa basin");
}

void loop()
{
if (digitalRead(but1) ==1)
{
lcd.setcursor(0,0);
lcd.clear();
lcd.print("Durun!");

while (digitalRead(but1) ==1)
{
delay(100);
}
}
 elseif ((digitalRead(but2) ==1)
{
lcd.setcursor(0,0);
lcd.clear();
lcd.print("Bekleyin...");

while (digitalRead(but2) ==1)
{
delay(100);
}
}

elseif (digitalRead(but3) ==1)
{
lcd.setcursor(0,0);
lcd.clear();
lcd.print("Geçin");

while (digitalRead(but3) ==1)
{
delay(100);
}
}

}

Kütüphane ismini yanlış yazmış olabilirim bir de telefondan yazdım hata alırsanız belirtin.

Ayrıca butonlar için pulldown direnci kullanmayı unutmayın aksi takdirde kod kilitlenir çünkü tuşa basılı tutunca saçmalamasını engellemek için while döngüleri koydum.


Kodun düzenlenmiş hali:

C++:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define but1 2
#define but2 3
#define but3 4

void setup()
{
 lcd.begin(0x27, 16, 2);
 pinMode(but1, INPUT);
 pinMode(but2, INPUT);
 pinMode(but3, INPUT);
 lcd.setCursor(0, 0);
 lcd.print("Tusa basin");
}

void loop()
{
 if (digitalRead(but1) == 1)
 {
 lcd.setCursor(0, 0);
 lcd.clear();
 lcd.print("Durun!");

 while (digitalRead(but1) == 1)
 {
 delay(100);
 }
 }
 else if (digitalRead(but2) == 1)
 {
 lcd.setCursor(0, 0);
 lcd.clear();
 lcd.print("Bekleyin...");

 while (digitalRead(but2) == 1)
 {
 delay(100);
 }
 }

 else if (digitalRead(but3) == 1)
 {
 lcd.setCursor(0, 0);
 lcd.clear();
 lcd.print("Geçin");

 while (digitalRead(but3) == 1)
 {
 delay(100);
 }
 }

}
 
Son düzenleme:
Çözüm

Hocam ben kabloları nereye takacağım anlamadımda bana şema çizip gönderir misiniz?
 
Hocam ben kabloları nereye takacağım anlamadımda bana şema çizip gönderir misiniz?
Arduino türüSDA piniSCL pini
Arduino UnoA4A5
Arduino Mega2021
Arduino Leonardo23
Arduino Due2021
Arduino NanoA4A5
Burası yararlı olabilir:
Resim:
 
Son düzenleme:
merhabalar öncelikle kodlama ve şema için teşekkür ederim aynı kodu ve sistemi

128x32 Oled Lcd Ekran 0.91 Inch SSD1306

ekrana yazdırmak alttaki kodu:

Kod:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

bu şekilde değişrerek çalıştırabilirmiyiz ?
#include "Adafruit_SSD1306.h"
 

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
SDA ve SCL pinleri özel pinlerdir atama yapamazsınız. SCL ve SDA pinleri sırası ile A5 ve A4 pinleridir. Ayrıca Arduino üzerindeki 0 ve 1 pinleri RX ve TX haberleşmesi için kullanılır bu yüzden bu pinler genelde kullanılmaz; bu pinlerin kod yüklenirken boş olması gerekir.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…