- Gerekli malzemeler
- Devre Şeması ve Bağlantı
- Arduino kullanarak LCD için STM32'yi programlama
- Programı STM32F103C8T6'ya Yükleme
Herhangi bir mikrodenetleyici projesi için, bir görüntüleme birimini bununla arabirim haline getirmek, projeyi çok daha kolay ve kullanıcının etkileşime girmesi için çekici hale getirir. Mikrodenetleyiciler için en yaygın kullanılan ekran birimi 16 × 2 Alpha sayısal ekranlardır. Bu tür ekranlar, yalnızca kullanıcıya hayati bilgileri görüntülemek için yararlı olmakla kalmaz, aynı zamanda projenin ilk geliştirme aşamasında bir hata ayıklama aracı olarak da kullanılabilir. Bu eğitimde, 16 × 2 LCD ekranı STM32F103C8T6 STM32 Geliştirme kartı ile nasıl arayüzleyebileceğimizi ve Arduino IDE kullanarak nasıl programlayabileceğimizi öğreneceğiz. Arduino'ya aşina olan insanlar için bu eğitim, her ikisi de birbirine çok benzediği için bir pasta yürüyüşü olacak. Ayrıca STM32 Mavi Hap Kurulu hakkında daha fazla bilgi edinmek için başlangıç eğitimimizi izleyin.
Gerekli malzemeler
- STM32 Mavi Hap Geliştirme Kurulu
- 16 × 2 LCD ekran
- FTDI Programcısı
- Kabloların Bağlanması
- LCD ekran
16 × 2 Dot matrix LCD ekrana kısa giriş
Daha önce de söylendiği gibi, Energia IDE arabirimi çocuk oyuncağı haline getiren güzel bir kitaplık sağlar ve bu nedenle ekran modülü hakkında herhangi bir şey bilmek zorunlu değildir. Ama ne kullandığımızı göstermek ilginç olmaz mıydı !!
16 × 2 adı, ekranın 16 Sütun ve 2 Satıra sahip olduğunu ve birlikte (16 * 2) 32 kutu oluşturduğunu belirtir. Aşağıdaki resimde tek bir kutu böyle bir şeye benzeyecektir.
Tek bir kutuda matris sırası 5 Satır ve 8 sütun olan 40 piksel (nokta) vardır ve bu 40 piksel birlikte bir karakter oluşturur. Benzer şekilde, tüm kutular kullanılarak 32 karakter görüntülenebilir. Şimdi pinout'lara bir göz atalım.
LCD, yukarıda gösterildiği gibi toplam 16 Pin'e sahiptir, aşağıdaki gibi dört gruba ayrılabilirler.
Kaynak Pimleri (1, 2 ve 3): Bu pimler, ekran için güç ve kontrast seviyesini sağlar
Kontrol Pimleri (4, 5 ve 6): Bu pinler, LCD arabirim IC'deki kayıtları ayarlar / kontrol eder (daha fazlası aşağıdaki bağlantıda bulunabilir)
Veri / Komut Pinleri (7 ila 14): Bu pinler, LCD'de hangi bilgilerin görüntülenmesi gerektiğine dair verileri sağlar.
LED pinler (15 ve 16): Bu pinler gerekirse LCD'nin arka ışığını yakmak için kullanılır (isteğe bağlı).
Tüm bu 16 pinden, LCD'nin düzgün çalışması için yalnızca 10 pinin kullanılması zorunludur, bu LCD ekran hakkında daha fazla bilgi edinmek istiyorsanız, bu 16x2 LCD makalesine atlayın.
Devre Şeması ve Bağlantı
STM32F103C8T6 STM32 Mavi Hap panosu ile 16 * 2 Dot matrix LCD arayüzünün devre şeması aşağıda gösterilmiştir. Fritzing Yazılımı kullanılarak yapılmıştır.
Gördüğünüz gibi tam bağlantı bir devre tahtası üzerinden yapılır. STM32 Mikroişlemciyi programlamak için bir FTDI kartına ihtiyacımız var. Önceki eğitimimize benzer şekilde, FTDI kartını STM32'ye bağladık, FDTI programcısının Vcc ve toprak pimi sırasıyla STM32'nin 5V pimine ve toprak pimine bağlanır. Bu, STM32 kartına ve LCD'ye güç sağlamak için kullanılır, çünkü her ikisi de + 5V kabul edebilir. FTDI kartının Rx ve Tx pini STM32'nin A9 ve A10 pinlerine bağlanır, böylece kartı önyükleyici olmadan doğrudan programlayabiliriz.
Daha sonra LCD'nin STM32 kartına bağlanması gerekir. LCD'yi 4 bit modunda kullanacağız, bu nedenle 4 veri biti pini (DB4'ten DB7'ye) ve iki kontrol pimini (RS ve EN) STM32 kartına STM32F103C8T6 LCD arayüz devresinde gösterildiği gibi bağlamamız gerekiyor. yukarıdaki diyagram. Ayrıca aşağıdaki tablo bağlantı kurmanıza yardımcı olacaktır.
LCD Pin No. |
LCD Pin Adı |
STM32 Pin Adı |
1 |
Zemin (Gnd) |
Zemin (G) |
2 |
VCC |
5V |
3 |
VEE |
Zemin (G) |
4 |
Kayıt Seçimi (RS) |
PB11 |
5 |
Okuma / Yazma (RW) |
Zemin (G) |
6 |
Etkinleştir (EN) |
PB10 |
7 |
Veri Bit 0 (DB0) |
Bağlantı Yok (NC) |
8 |
Veri Bit 1 (DB1) |
Bağlantı Yok (NC) |
9 |
Veri Bit 2 (DB2) |
Bağlantı Yok (NC) |
10 |
Veri Bit 3 (DB3) |
Bağlantı Yok (NC) |
11 |
Veri Bit 4 (DB4) |
PB0 |
12 |
Veri Bit 5 (DB5) |
PB1 |
13 |
Veri Bit 6 (DB6) |
PC13 |
14 |
Veri Bit 7 (DB7) |
PC14 |
15 |
LED Pozitif |
5V |
16 |
LED Negatif |
Zemin (G) |
Bağlantılar tamamlandıktan sonra Arduino IDE'yi açabilir ve programlamaya başlayabiliriz.
Arduino kullanarak LCD için STM32'yi programlama
Bu eğitimde anlatıldığı gibi, STM32 Mikrodenetleyicimizi programlamak için Arduino IDE'yi kullanacağız. Ancak, Arduino IDE varsayılan olarak STM32 kartına sahip olmayacaktır, bu nedenle bir paket indirmeli ve Arduino IDE'yi aynı şekilde hazırlamalıyız. Önceki eğitimimizde Arduino IDE kullanarak STM32F103C8T6 ile başlarken yaptığımız tam olarak buydu. Dolayısıyla, gerekli paketleri yüklemediyseniz, bu eğiticiye geri dönün ve buradan devam etmeden önce onu izleyin.
STM32 Kartı Arduino IDE'ye takıldıktan sonra programlamaya başlayabiliriz. Program bir Arduino kartına çok benziyor, değişecek tek şey pin isimleridir çünkü gösterimler STM32 ve Arduino için farklıdır. Programın tamamı bu sayfanın sonunda verilmiştir, ancak programı açıklamak için aşağıda gösterildiği gibi küçük anlamlı parçalara ayırdım.
Mikrodenetleyicilerimizi programlamak için Arduino kullanmanın göze çarpan bir avantajı, Arduino'nun neredeyse her ünlü sensör ve aktüatör için hazır kitaplıklara sahip olmasıdır. İşte burada programlamayı çok daha kolay hale getiren LCD kütüphanesini ekleyerek programımıza başlıyoruz.
#Dahil etmek
Bir sonraki satırda , LCD ekran kontrolünü ve veri hatlarını STM32'nin hangi GPIO pinlerine bağladığımızı belirtmemiz gerekiyor. Bunu yapmak için donanımımızı kontrol etmeliyiz, kolaylık sağlamak için LCD'nin pin adlarını STM32'nin GPIO pinine göre listeleyen üstte verilen tabloya da başvurabilirsiniz. Pinlerden bahsettikten sonra LiquidCrystal işlevini kullanarak LCD'yi başlatabiliriz . Ayrıca LCD ekranımızı aşağıda gösterildiği gibi “ lcd ” olarak adlandırıyoruz.
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // LCD bağlanmıştır ile pin adları söz LiquidCrystal lcd (rs, tr, D4, D5, D6, D7); // LCD'yi başlatın
Ardından kurulum işlevinin içine giriyoruz. Burada ilk olarak ne tür bir LCD kullandığımıza değineceğiz. 16 * 2 LCD olduğundan lcd.begin (16,2) satırını kullanıyoruz. Void kurulum işlevinin içindeki kod yalnızca bir kez çalıştırılır. Bu yüzden ekrana 2 saniye boyunca gelen ve sonra silinen bir giriş metnini görüntülemek için kullanırız. Metin biz işlevi kullanmak görünmesini vardır pozisyonunu bahsetmek için lcd.setcursor ve kullandığımız metin yazdırmak için lcd.print fonksiyonunu. Örneğin lcd.setCursor (0,0) , " Interfacing LCD " yi ve lcd.setCursor (0,1) işlevini yazdırdığımız ilk satır ve ilk sütuna imleci ayarlayacaktır. imleci “ CircuitDigest ” satırını yazdırdığımız ikinci satırın ilk sütuna taşır .
void setup () {lcd.begin (16, 2); // 16 * 2 LCD lcd.setCursor (0, 0) kullanıyoruz; // İlk satırda ilk sütunda lcd.print ("Arayüz LCD"); // Bu lcd.setCursor (0, 1); // İkinci satırın ilk sütununda lcd.print ("- CircuitDigest"); // Bu gecikmeyi yazdır (2000); // iki saniye bekleyin lcd.clear (); // Ekranı temizleyin}
Giriş metnini görüntüledikten sonra, kullanıcının intro mesajını okuyabilmesi için bir gecikme oluşturarak programı 2 saniye boyunca tutuyoruz. Bu gecikme, hat gecikmesi (2000) tarafından yaratılır, burada 2000, mil saniye cinsinden gecikme değeridir. Gecikmeden sonra, LCD'deki tüm metni kaldırarak LCD'yi temizleyen lcd.clear () işlevini kullanarak LCD'yi temizleriz.
Son olarak iç boşluk döngü, biz birinci hattı ve ikinci satırda saniye değerine “STM32 -Mavi Pill” gösterilecek. Saniye değeri, millis () işlevinden elde edilebilir. Millis () MCU desteklenmektedir zaman artan hakkını alır bir çekim olduğunu. Değer mili saniye biçimindedir, bu nedenle LCD'mizde görüntülemeden önce 1000'e böleriz.
geçersiz döngü () { lcd.setCursor (0, 0); // İlk satır ilk sütunda lcd.print ("STM32 -Mavi Hap"); // Bu lcd.setCursor (0, 1); // İkinci satırın ilk sütununda lcd.print (milis () / 1000); // ikincil değerlerin değerini yazdırın }
Programı STM32F103C8T6'ya Yükleme
Yukarıdaki paragrafta tartışıldığı gibi, kod yüklenir yüklenmez çıktıyı fark edebilmelisiniz. Ancak, kart hala programlama modunda olduğundan, bu program kartı tekrar çalıştırdığınızda çalışmayacaktır. Bu nedenle , program yüklendikten sonra önyükleme 0'daki jumper aşağıda gösterildiği gibi 0 konumuna geri döndürülmelidir. Ayrıca şimdi program STM32 kartına yüklendiğinden, FTDI kartına ihtiyacımız yok ve tüm kurulum, aşağıda gösterildiği gibi STM32 kartının mikro-USB portu tarafından çalıştırılabilir.
Bu, LCD ekranın STM32 kartıyla kullanılmasına yardımcı olacak basit bir arayüz projesidir, ancak bunu harika projeler oluşturmak için de kullanabilirsiniz. Umarım öğreticiyi anladınız ve ondan yararlı bir şeyler öğrendiniz. Çalışmasını sağlamakta herhangi bir sorunla karşılaştıysanız, lütfen sorunu göndermek için yorum bölümünü kullanın veya diğer teknik sorular için forumları kullanın. STM32 LCD ekranın tam çalışma da aşağıda verilen bir video olarak bulunabilir.