Berikut ini foto-foto percobaan pengukuran kecepatan putaran menggunakan motor DC kecil.
Berikut ini tampak atas setting percobaan. Motor DC di sebelah kanan sebagai penggerak, motor DC di atas (tertutup triplek) sebagai pengukur kecepatan.
Berikut ini tampak atas setting percobaan
Berikut ini tampak samping setting percobaan
Berikut ini detail pemasangan motor DC .
Berikut ini detail pemasangan motor DC .
Berikut ini tampak atas percobaan
Berikut ini tampak atas percobaan
Berikut ini output tegangan pada motor DC demgam setting 100 mV per div dan 50 ms per div.
Berikut ini output tegangan pada motor DC demgam setting 100 mV per div dan 50 ms per div. Arah putaran motor kebalikan dari yang sebelumnya.
Berikut ini percobaan mengukur tegangan pada motor DC kecil pada waktu berputar.
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 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++;
}
Berikut ini survey singkat tentang board STM32 yang dapat dipakai untuk belajar.
STM32 Blue Pill. ST Link V2 (clone), STM32F4 Discovery, STM32 Discovery
Alternatif #1 STM32 Blue Pill
STM32 Blue Pill dan STL LINK V2
Prosesornya adalah STM32F103C8T6 , board ini dikenal luas sebagai ‘Blue Pill’. Untuk memasukkan program dan debugging dapat menggunakan modul ST-Link-V2.
Solusi murah meriah adalah STM32 Blue Pill dengan ST-LINK-V2. Board ini banyak dipakai dan ada banyak versinya, banyak juga resourcenya.
Jika ingin performance yang lebih baik, bisa cari board STM32F4, kalau yang mahal adalah board buatan STM32. Enaknya support lebih jelas dibandingkan board STM32F4 yang 3rd party.
Berikut ini percobaan menghubungkan ESP32 Lolin32 Lite dengan display LCD 20×4. Antar muka menggunakan komunikasi serial I2C. LCD 20×4 menggunakan protokol serial, sehingga perlu modul I2C. ESP32 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.
ESP32 Lolin-32 dari WEMOS
Berikut ini blok diagram sistem
Skema Rangkaian
Berikut ini skema rangkaian lengkap.
Skema rangkaian ESP32 Lolin32 Lite dengan LCD I2C
Arduino Nano pada rangkaian tersebut hanya berfungsi untuk memberikan tegangan 5 volt, karena pada ESP32 Lolin32 Lite tidak ada pin 5V. Jika menggunakan ESP32 Devkit mestinya lebih enak, karena di ESP32 Devkit ada pin 5V. Tegangan 5V ini dapat diganti dengan regulator / adaptor 5V lain.
Komunikasi I2C
ESP32 tidak memiliki pin I2C yang spesifik, jadi kita dapat memilih pin mana yang dipakai sebagai pin untuk I2C (SDA dan SCL). Pada percobaan ini dipilih pin 15 untuk SDA dan pin 13 untuk SCL. Konfigurasi ini dimasukkan di software dalam bentuk parameter I2C_SDA dan I2C SCL yang didefinisikan di awal software.
Semua pin pada ESP32 termasuk pin I2C menggunakan tegangan kerja 3 volt, sedangkan display menggunakan tegangan 5 volt. Untuk itu tegangan kerja PCF8574 disamakan dengan display LCD (5 volt), sedangkan tegangan I2C diubah dari 3 volt (di ESP32) menjadi 5 volt (di PCF8574). Komunikasi harus 2 arah, karena protokol I2C mensyaratkan slave menjawab setiap kali ada pengiriman data. Untuk itu pada jalur I2C digunakan komponen ‘bi directional level converter‘.
Power Supply
Sumber daya ESP32 menggunakan USB charger 5 volt. Pada board ESP32 sudah ada regulator 3,3 volt yang mengubah tegangan supply USB 5 volt menjadi 3,3 volt.
Sumber daya 5 volt untuk LCD dan PCF8574 diberikan melalui sebuah modul Arduino Nano yang dipakai. Seharusnya dapat menggunakan power supply 5 volt apa saja. Kebetulan saja yang tersedia saat ini adalah board Arduino Nano.
Software
Berikut ini software yang dipakai untuk menghasilkan tampilan.
// Demo LCD dengan ESP32 I2C
#include <LiquidCrystal_I2C.h>
// https://www.makerguides.com/character-i2c-lcd-arduino-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, 16, 2); // Change to (0x27,16,2) for 16x2 LCD.
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);
#define I2C_SDA 15
#define I2C_SCL 13
#define LED_BUILTIN 22 // LED built in pada ESP32 Lolin32 Lite
void setup() {
Wire.begin(I2C_SDA, I2C_SCL);
// Initiate the LCD:
lcd.init();
lcd.backlight();
Serial.begin(115200);
Serial.println("\nLCD Test");
pinMode(LED_BUILTIN, OUTPUT);
}
int counter = 0;
void loop() {
// Print 'Hello World!' on the first line of the LCD:
lcd.setCursor(0, 0);
lcd.print("Elektrologi");
lcd.setCursor(0, 1);
lcd.print("iptek.web.id");
lcd.setCursor(0, 2);
lcd.print("ESP32 Lolin32 Lite");
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++;
}
Berikut ini percobaan menghubungkan Arduino UNO (ATmega328) dengan display LCD 20×4. Antar muka menggunakan komunikasi serial I2C. LCD 20×4 menggunakan protokol serial, sehingga perlu modul I2C. Antara Arduino Nano dan LCD 20×4 dipasang modul serial to paralel PCF8574 untuk menghubungkan protokol I2C ke paralel input/output.
Hasil antar muka Arduino UNO ke LCD 20×4 dengan I2C
Berikut fisik penyambungan kabel I2C antara Arduino UNO dengan modul PCF8574.
Sambungan I2C antara Arduino UNO dan LCD 20×4
// sumber: https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Elektrologi");
lcd.setCursor(0, 1);
lcd.print("iptek.web.id");
lcd.setCursor(0, 2);
lcd.print("Arduino UNO");
lcd.setCursor(0, 3);
lcd.print("31 Januari 2021");
}
void loop()
{
}
Arduino Nano adalah modul berbasis mikrokontroler ATmega328 dalam bentuk rangkaian yang kecil, lengkap, mudah dipasang di breadboard. Modul ini dapat diprogram melalui kabel USB Mini-B.
Berikut ini percobaan menghubungkan Arduino Nano (ATmega328) dengan display LCD 20×4. Antar muka menggunakan komunikasi serial I2C. LCD 20×4 menggunakan protokol serial, sehinggan perlu modul I2C. Antara Arduino Nano dan LCD 20×4 dipasang modul serial to paralel PCF8574 untuk menghubungkan protokol I2C ke paralel input/output.
Blok diagram sistem adalah sebagai berikut:
Sumber daya dapat menggunakan USB dari komputer ataupun USB charger. Sumber daya dihubungkan ke Arduino Nano menggunakan kabel USB. Arduino Nano dihubungkan ke modul PCF8574 menggunakan komunikasi I2C. Modul PCF8574 dihubungkan ke LCD 20×4 menggunakan komunikasi data paralel.
Arduino Nano dengan display LCD 20×4
Berikut ini modul PCF8752 dipasang di bagian belakang LCD:
LCD 20×4 tampak belakang dengan komunikasi serial I2C
Pada modul PCF8574 terdapat potensiometer berwarna biru. Potensiometer ini fungsinya adalah mengatur kontras pada LCD 20×4
Penyambungan memperhatikan daftar pin Arduino Nano sebagai berikut:
Daftar pin Arduino Nano
Kaki yang dipakai pada Arduino Nano adalah SDA (A4) dan SCL (A5). Pin SDA dan SCL pada Arduino Nano sudah tetap, tidak dapat diganti-ganti.
Tegangan kerja Arduino Nano adalah 5 volt. Tegangan kerja LCD 20×4 adalah 5 volt, sehingga dapat langsung menggunakan tegangan 5 volt dari modul Arduino Nano. Tegangan kerja PCF8574 adalah 2,5 volt sampai dengan 6 volt, sehingga aman kalau disambung ke Arduino Nano.
Penyambungan kabel sebagai berikut
Pin pada Modul PCF8752
Pin Arduino Nano
GND
GND
VCC
5V
SDA
SDA (A4)
SCL
SCL (A5)
Sebelum dicoba ke LCD, sebaiknya diuji dulu apakah sambungan I2C sudah betul , menggunakan perangkat lunak I2C Scanner.
Prosedur instalasi library LCD I2C sebagai berikut:
Download library Liquid Crystal I2C buatah John Rickman https://github.com/johnrickman/LiquidCrystal_I2C
Install library tersebut di direktori library Arduino. Biasanya letaknya di Documents/Arduino/libraries atau C:\Users\<USERNAME>\Documents\Arduino\libraries
Contoh program dapat dilihat dari https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde
Untuk membuat tampilan seperti pada foto, buat program Arduino berikut ini:
// sumber: https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Elektrologi");
lcd.setCursor(0, 1);
lcd.print("iptek.web.id");
lcd.setCursor(0, 2);
lcd.print("Arduino Nano");
lcd.setCursor(0, 3);
lcd.print("31 Januari 2021");
}
void loop()
{
}
Pompa air miniatur berguna untuk memompa cairan dalam jumlah tidak terlalu banyak. Tegangan kerja 12 volt DC. Tidak diberikan informasi batas arus maksimum pada pompa ini. Kononnya pompa semacam ini biasa dipakai di dispenser air minum dengan tangki di bawah.
Sakelar kaki cocok dipakai untuk aplikasi-aplikasi di mana kedua tangan sudah sibuk melakukan pekerjaan lain. Contohnya adalah di pabrik industri untuk pengoperasian mesin industri, di mana tangan sudah sibuk untuk menangani benda kerja.