STM32F103C8T Blue Pill Dengan Display LCD 20×4 (I2C)

STM32 dengan display LCD 20x4

STM32F103C8T Blue Pill Dengan Display LCD 20×4 (I2C)

Berikut ini percobaan menghubungkan STM32F103C8T dengan display LCD 20×4. Antar muka menggunakan komunikasi serial I2C. LCD 20×4 menggunakan protokol serial, sehingga perlu modul I2C. STM32 menggunakan tegangan 3,3 volt, sedangkan LCD 20×4 menggunakan tegangan 5 volt, sehingga perlu level converter antara I2C di ESP32 dan I2C di modul PCF8752. Pada LCD 20×4 dipasang modul serial to paralel PCF8574 untuk menghubungkan protokol I2C ke paralel input/output pada LCD.

STM32 dengan display LCD 20x4
STM32 dengan display LCD 20×4

Berikut ini blok diagram sistem

Pin I2C dapat dilihat pada daftar pin pada STM32F103 berikut ini.

 

 

STM32F103 Pinout Diagram

Komunikasi I2C

Pin I2C yang dipakai adalah PB6 (SCL1) dan PB7 (SDA1).

Tegangan I2C dari STM32 adalah 3,3 volt, sedangkan PCF8574 perlu 5 volt. Untuk itu perlu komponen bi directional logic level converter di antara keduanya.

Power Supply

Pada board Blue Pill sudah terdapat output 5 volt, jadi tegangan  5 volt untuk LCD dapat diambil dari situ.

Software

 

 

#include <LiquidCrystal_I2C.h>
// https://circuitdigest.com/microcontroller-projects/stm32-stm32f103c8-i2c-communication-tutorial
// Include the libraries:
// LiquidCrystal_I2C.h: https://github.com/johnrickman/LiquidCrystal_I2C

#include <Wire.h> // Library for I2C communication
#include <LiquidCrystal_I2C.h> // Library for LCD

LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);

void setup() {
  Wire.begin();
  // Initiate the LCD:
  lcd.init();
  lcd.backlight();
  Serial.begin(115200);
  Serial.println("\nLCD Test");
  pinMode(LED_BUILTIN, OUTPUT);
}
int counter = 0;
void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Elektrologi");
  lcd.setCursor(0, 1);
  lcd.print("IPTEK.WEB.ID");
  lcd.setCursor(0, 2);
  lcd.print("STM32F103C8T BluePill");
  lcd.setCursor(0, 3);
  lcd.print("31 Januari 2021");

  lcd.setCursor(12, 0);
  lcd.print(counter);

  Serial.print("Send data: ");
  Serial.println(counter);

  delay(500);
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);
  counter++;
}

Referensi

  • https://circuitdigest.com/microcontroller-projects/stm32-stm32f103c8-i2c-communication-tutorial

3 thoughts on “STM32F103C8T Blue Pill Dengan Display LCD 20×4 (I2C)

  1. Apakah harus menggunakan bidirectional ? adakah cara lainnya tanpa menggunakan bidirectional?

    1. Protokol komunikasi I2C sifatnya bidirectional, jadi memang harus pakai bidirectional converter kalau tegangan di mikroprosesor tidak sama dengan tegangan di komponen I2Cnya.

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.