- Gerekli malzemeler:
- TFT LCD Ekran Modülünü tanımak:
- Dokunmatik Ekran için TFT LCD Ekranın Kalibre Edilmesi:
- Arduino ile TFT LCD Bağlantıları:
- Arduino'nuzu TFT LCD için programlama:
- Çalışma:
Arduino her zaman projeleri kolayca oluşturmaya ve daha çekici görünmelerine yardımcı olmuştur. Dokunmatik ekran seçeneğiyle bir LCD ekranı programlamak karmaşık bir görev gibi görünebilir, ancak Arduino kitaplıkları ve kalkanları bunu gerçekten kolaylaştırmıştı. Bu projede, Toplama, Çıkarma, Bölme ve Çarpma gibi tüm temel hesaplamaları yapabilen kendi Arduino Dokunmatik Ekran hesaplayıcımızı oluşturmak için 2.4 ”Arduino TFT LCD ekran kullanacağız.
Gerekli malzemeler:
- Arduino Uno
- 2,4 ”TFT LCD ekran Kalkanı
- 9V Batarya.
TFT LCD Ekran Modülünü tanımak:
Projeye gerçekten dalmadan önce, bu 2,4 ”TFT LCD Modülünün nasıl çalıştığını ve içinde bulunan türlerin neler olduğunu bilmek önemlidir. Bu 2,4 ”TFT LCD ekran modülünün pin çıkışlarına bir göz atalım.
Gördüğünüz gibi, herhangi bir Arduino Uno / Arduino Mega Board'a mükemmel şekilde uyan 28 pin vardır. Bu pimlerin küçük bir sınıflandırması aşağıdaki tabloda verilmiştir.
Gördüğünüz gibi pinler LCD Komuta Pimleri, LCD Veri Pimleri, SD Kart Pimleri ve Güç Pimleri gibi dört ana sınıflandırmaya göre sınıflandırılabilir, bu pimlerin özenli çalışacağı için detaylı çalışması hakkında fazla bir şey bilmemize gerek yoktur. Arduino Kütüphanemiz.
Ayrıca yukarıda gösterilen modülün altında bmp görüntü dosyaları içeren bir SD kartı yüklemek için kullanılabilecek bir SD kart yuvası bulabilirsiniz ve bu görüntüler Arduino Programı kullanılarak TFT LCD ekranımızda görüntülenebilir.
Dikkat edilmesi gereken bir diğer önemli nokta da Arayüz IC'nizdir. Piyasada orijinal Adafruit TFT LCD modülünden ucuz Çin klonlarına kadar pek çok TFT modülü bulunmaktadır. Adafruit kalkanınız için mükemmel şekilde çalışan bir program, Çin çıkış panoları için aynı şekilde çalışmayabilir. Bu nedenle, elinizde hangi tip LCD ekranları tuttuğunuzu bilmek çok önemlidir. Bu ayrıntı satıcıdan alınmalıdır. Benimki gibi ucuz bir klonunuz varsa, büyük olasılıkla ili9341 sürücü IC'sini kullanıyordur . Bazı temel örnek programları denemek ve LCD ekrana alışmak için bu TFT LCD arayüzünü Arduino öğreticisi ile takip edebilirsiniz. Ayrıca Arduino ile diğer TFT LCD projelerimize buradan göz atın:
- Arduino ve TFT LCD ile NeoPixel LED Şerit Nasıl Kullanılır
- Arduino ile Akıllı Telefon Kontrollü Dijital Kod Kilidi
Dokunmatik Ekran için TFT LCD Ekranın Kalibre Edilmesi:
TFT LCD modülünüzün dokunmatik ekran işlevini kullanmayı planlıyorsanız, düzgün çalışması için kalibre etmeniz gerekir. Kalibrasyonu olmayan bir LCD ekran olasılıkla çalışmayabilir, örneğin bir yere dokunabilirsiniz ve TFT başka bir yere dokunulduğunda yanıt verebilir. Bu kalibrasyon sonuçları tüm panolar için benzer olmayacaktır ve bu nedenle bunu yapmak için kendi başınıza bırakılırsınız.
Kalibre etmenin en iyi yolu, kalibrasyon örnek programını (kitaplıkla birlikte gelir) kullanmak veya hatanızı tespit etmek için seri monitörü kullanmaktır. Ancak bu proje için butonların boyutu büyük olduğu için kalibrasyon büyük bir problem olmamalı ve aşağıdaki programlama bölümü altında ekranınızı nasıl kalibre edebileceğinizi de anlatacağım.
Arduino ile TFT LCD Bağlantıları:
2,4 ”TFT LCD ekran mükemmel bir Arduino Shield'dir. LCD ekranı doğrudan Arduino Uno'nun üstüne itebilirsiniz ve pimlerle mükemmel bir şekilde eşleşecek ve içinden kayacaktır. Ancak, güvenlik açısından Arduino UNO'nuzun Programlama terminalini küçük bir yalıtım bandı ile kapatın, sadece terminalin TFT LCD ekranınızla temas etmesi durumunda. UNO'ya monte edilen LCD, aşağıdaki gibi görünecektir.
Arduino'nuzu TFT LCD için programlama:
Bu arduino hesap makinesi kodunu çalıştırmak için SPFD5408 Kitaplığını kullanıyoruz. Bu değiştirilmiş bir Adafruit kitaplığıdır ve LCD TFT Modülümüz ile sorunsuz bir şekilde çalışabilir. Programın tamamını bu Makalenin sonunda kontrol edebilirsiniz.
Not: Bu kütüphaneyi Arduino IDE'nize kurmanız veya bu programda hatasız derleme yapmanız çok önemlidir.
Bu kitaplığı kurmak için, sizi bir Github sayfasına götürecek olan yukarıdaki bağlantıya tıklamanız yeterlidir. Orada klonlayın veya indirin ve "ZIP İndir" i seçin. Bir zip dosyası indirilecektir.
Şimdi, Arduino IDE'yi açın ve Sketch -> Include Librarey ->.ZIP kitaplığı ekle'yi seçin. Bir tarayıcı penceresi açılır ve ZIP dosyasına gidin ve "Tamam" ı tıklayın. Başarılı olursa, Arduino'nun sol alt köşesinde "Kitaplıklarınıza kitaplık eklendi" yi fark etmelisiniz. Aynısını yapmak için ayrıntılı bir kılavuz Arayüz Eğitiminde verilmiştir.
Şimdi, Arduino IDE'nizde aşağıdaki kodu kullanabilir ve Dokunmatik Ekran Hesaplayıcının çalışması için Arduino UNO'nuza yükleyebilirsiniz. Daha aşağıda, kodu küçük parçalara ayırdım.
Bu programın çalışması için üç kütüphaneye ihtiyacımız var; tüm bu üç kitaplık, yukarıda sağlanan bağlantıdan indirdiğiniz ZIP dosyasında verilmiştir. Bunları aşağıda gösterildiği gibi koda ekledim.
#Dahil etmek
Daha önce de belirtildiği gibi, LCD ekranı beklendiği gibi çalışmasını sağlamak için kalibre etmemiz gerekiyor, ancak endişelenmeyin, burada verilen değerler neredeyse evrenseldir. Ekranın kalibrasyonuna TS_MINX, TS_MINY, TS_MAXX ve TS_MAXY değişkenleri karar verir. Kalibrasyonun tatmin edici olmadığını düşünüyorsanız, etraflarında oynayabilirsiniz.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
TFT LCD ekranın birçok rengi görüntüleyebildiğini bildiğimiz için tüm bu renklerin hex değerinde girilmesi gerekiyor. Daha okunaklı hale getirmek için bu değerleri aşağıda gösterildiği gibi bir değişkene atıyoruz.
#define WHITE 0x0000 // Siyah-> Beyaz #define SARI 0x001F // Mavi-> Sarı #define CYAN 0xF800 // Kırmızı-> Cyan #define PINK 0x07E0 // Yeşil-> Pembe #define RED 0x07FF // Cyan -> Kırmızı #define GREEN 0xF81F // Pembe -> Yeşil #define BLUE 0xFFE0 // Sarı-> Mavi #define BLACK 0xFFFF // Beyaz-> Siyah
Tamam şimdi, programlama kısmına geçebiliriz. Bu programa dahil olan üç bölüm vardır. Bunlardan biri, düğmeleri ve ekranı olan bir hesap makinesinin kullanıcı arabirimini oluşturmaktır. Ardından, kullanıcıların dokunduğuna göre düğmeleri algılar ve son olarak sonuçları hesaplar ve görüntüler. Onları tek tek geçelim.
1. Hesap Makinesi Kullanıcı Arayüzü Oluşturma:
Hesap makinesinin Kullanıcı Arayüzünü tasarlamak için yaratıcılığınızın çoğunu kullanabileceğiniz yer burasıdır. 16 Düğme ve bir görüntüleme birimi olan bir hesap makinesinin basit bir düzenini yaptım. Tasarımı tıpkı MS boyasına bir şey çizecek gibi inşa etmelisiniz. Eklenen kitaplıklar, Çizgiler, Dikdörtgen, Daireler, Karakterler, Dizeler ve çok daha fazlasını tercih ettiğiniz renklerden çizmenize olanak tanır. Mevcut işlevleri bu makaleden anlayabilirsiniz.
90'ların hesap makinesine çok benzeyen bir kullanıcı arayüzü tasarlamak için çizgi ve kutu çizim yeteneklerini kullandım. Her kutunun genişliği ve yüksekliği 60 pikseldir.
// Sonuç Kutusunu Çiz tft.fillRect (0, 0, 240, 80, CYAN); // İlk Sütunu Çiz tft.fillRect (0,260,60,60, RED); tft.fillRect (0,200,60,60, SİYAH); tft.fillRect (0,140,60,60, SİYAH); tft.fillRect (0,80,60,60, SİYAH); // Üçüncü Sütunu Çiz tft.fillRect (120,260,60,60, YEŞİL); tft.fillRect (120,200,60,60, SİYAH); tft.fillRect (120,140,60,60, SİYAH); tft.fillRect (120,80,60,60, SİYAH); // (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, BLUE) için İkinci & Dördüncü Sütun çizin; tft.fillRect (60, b, 60,60, SİYAH);} // (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, BEYAZ) için Yatay Çizgiler Çiz; // (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, BEYAZ) için Dikey Çizgiler Çiz; // (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 *) için tuş takımı etiketlerini görüntüle j)); tft.setTextSize (3); tft.setTextColor (BEYAZ); tft.println (simge);
2. Düğmelerin algılanması:
Bir diğer zorlu görev, kullanıcı dokunuşunu algılamaktır. Kullanıcı bir yere her dokunduğunda, pikselin X ve Y konumlarının nasıl dokunduğunu görebileceğiz. Bu değer, aşağıda gösterildiği gibi println kullanılarak seri monitörde görüntülenebilir.
TSPoint p = waitTouch (); X = py; Y = piksel; Seri baskı (X); Seri.baskı (','); Serial.println (Y); // + "" + Y);
Kutuyu her biri 60 piksel genişliğinde ve yüksekliğinde tasarladığımız için, dört Sıra ve (0,0) 'dan başlayan sütunlar için. Her kutunun konumu aşağıdaki resimde gösterildiği gibi tahmin edilebilir.
Ancak pratik durumda sonuç bu olmayacaktır. Kalibrasyon probleminden dolayı beklenen ve gerçek değer arasında büyük bir fark olacaktır.
Bu nedenle, kutunun tam konumunu tahmin etmek için satıra tıklamanız ve seri monitörde karşılık gelen konumunu kontrol etmeniz gerekir. Bu, bunu yapmanın en profesyonel yolu olmayabilir, ancak yine de mükemmel çalışıyor. Tüm çizgilerin konumunu ölçtüm ve aşağıdaki değerleri elde ettim.
Şimdi, tüm kutuların konumunu bildiğimiz için. Bir kullanıcı herhangi bir yere dokunduğunda, (X, Y) değerlerini aşağıda gösterildiği gibi her kutunun değeriyle karşılaştırarak nereye dokunduğunu tahmin edebiliriz.
if (X <105 && X> 50) // 2. Sütundaki Düğmeleri Algılama {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // (Sayı == 0) Sayı = 0 ise // 0 Düğmesine Basılır; else Sayı = (Sayı * 10) + 0; // İki kez basıldı} if (Y> 85 && Y <140) {Serial.println ("Button 2"); eğer (Sayı == 0) Sayı = 2; else Sayı = (Sayı * 10) + 2; // İki kez basıldı}
3. Sayıların Görüntülenmesi ve Sonucun Hesaplanması:
Son adım, sonucu hesaplamak ve bunları TFT LCD Ekran üzerinde görüntülemektir. Bu arduino hesap makinesi yalnızca 2 numara ile işlem yapabilir. Bu iki sayı, "Num1" ve "Num2" değişkenleri olarak adlandırılır. "Sayı" değişkeni Num1 ve Num2'den değer verir ve alır ve aynı zamanda sonucu taşır.
Bir kullanım bir düğmeye bastığında, numaraya bir rakam eklenir. Başka bir tuşa basıldığında bir önceki rakam 10 ile çarpılarak yeni numara eklenir. Örneğin, 8'e basıp sonra 5'e ve sonra 7'ye basarsak. Sonra önce değişken 8'i sonra (8 * 10) + 5 = 85'i sonra (85 * 10) +7 = 857'yi tutacaktır. 857 değeri onunla.
eğer (Y> 192 && Y <245) {Serial.println ("Düğme 8"); eğer (Sayı == 0) Sayı = 8; else Sayı = (Sayı * 10) + 8; // Tekrar basıldı}
Toplama gibi herhangi bir işlem yaptığımızda kullanıcılar toplama düğmesine bastığında Number'dan gelen değer Num1'e aktarılacak ve ardından Number sıfırlanarak ikinci sayı için girdi almaya hazır hale gelecektir.
Eşittir tuşuna basıldığında, Sayı'daki değer Num2'ye gönderilecek ve ardından ilgili hesaplama (bu durumda ekleme) yapılacak ve sonuç tekrar "Sayı" değişkeninde saklanacaktır.
Son olarak bu değer LCD ekranda görüntülenecektir.
Çalışma:
Bu Arduino Dokunmatik Ekran Hesaplayıcının çalışması basittir. Aşağıda verilen kodu Arduino'nuza yüklemeli ve çalıştırmalısınız. Hesap makinesini LCD ekranınızda görüntüleyebilirsiniz.
Artık herhangi bir sayı girebilir ve hesaplamalarınızı yapabilirsiniz. Şimdilik sadece iki işlenen ve sadece operatör ile sınırlıdır. Ancak, birçok seçeneğe sahip olmasını sağlamak için kodu değiştirebilirsiniz.
Hesaplama yaptıktan sonra her defasında ekrandaki değeri temizlemek için “C” ye basmanız gerekir. Umarım projeyi anlamışsınızdır ve benzer bir şey inşa etmekten zevk almışsınızdır. Herhangi bir şüpheniz varsa, bunları forumlarda veya aşağıdaki yorum bölümünde yayınlamaktan çekinmeyin. Bir dahaki sefere başka bir ilginç projede görüşmek üzere, o zamana kadar mutlu bilgisayar kullanımı !!
Ayrıca aşağıdaki Gösteri Videosu'na bakın.