Pengukuran Kecepatan Putaran Dengan Tachogenerator

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.

tachogenerator

Berikut ini tampak atas setting percobaan

Berikut ini tampak samping setting percobaan

Berikut ini detail pemasangan motor DC .

tachogeneratorBerikut 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.

 

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

Pemrograman STM32 Blue Pill Dengan Arduino dan ST-LINK-V2

Berikut ini uraian untuk melakukan proses upload program menggunakan ST Link V2 dari Arduino IDE. Cara lain adalah menggunakan ST Link Utility.

Hardware

Siapkan hardware berupa board STM32F103C8T dan programmer ST-LINK-V2

Instalasi Arduino IDE

Proses instalasi software untuk board STM32duino dapat dilihat di sini: https://github.com/stm32duino/wiki/wiki/Getting-Started

Konfigurasi Arduino IDE

Pilih Board -> STM32 Boards (STM32duino.com) (in sketchbook) -> Generic STM32F103C series

Pilih variant 64k Flash .

Pilih Upload Method: Tools -> Upload method -> STLink

Pilih port COM yang sesuai. Jika dilihat di Device Manager, akan nampak sebagai “Maple Serial”.

Setelah itu coba jalankan software Blink (File -> Examples -> Basics -> Blink). Jika semuanya lancar, maka LED akan berkedip dengan frekuensi 0,5 Hz.

Referensi

Alternatif Board STM32

Berikut ini survey singkat tentang board STM32 yang dapat dipakai untuk belajar.

STM32 Blue Pill. ST Link V2 (clone), STM32F4 Discovery, STM32 Discovery
STM32 Blue Pill. ST Link V2 (clone), STM32F4 Discovery, STM32 Discovery

 

Alternatif #1 STM32 Blue Pill

STM32 Blue Pill dan STL LINK V2
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.

Harga:

  • Blue Pill: sekitar Rp 32 ribu
  • ST LINK V2: sekitar Rp 33 ribu

Artikel terkait:

Alternatif #2 STM32F Discovery

STM32F407G Discovery
STM32F407G Discovery

Resource: https://www.st.com/en/evaluation-tools/stm32f4discovery.html

Harga sekitar Rp 400 ribuan, kata kunci “STM32F Discovery Boards”

Alternatif #3 STM32VL  Discovery

STM32 Value Line Discovery
STM32 Value Line Discovery

Prosesor: STM32F100

Resource: https://www.st.com/en/evaluation-tools/stm32vldiscovery.html

Harga: barang susah dicari.

STM32F401

STM32F401
STM32F401
STM32F401CCU6
STM32F401CCU6

Belum pernah dicoba, harga Rp 60 ribuan.

Perlu ST-Link-V2 untuk upload software

STM32F411CEU6

STM32F411CEU6
STM32F411CEU6

Prosesor STM32F411CEU6, belum pernah dicoba.

Harga Rp 200 ribuan.

Perlu ST-Link-V2 untuk upload software

Saran

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.

 

 

 

 

 

 

ESP32 Lolin32 Lite Dengan Display LCD 20×4 (serial I2C)

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
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
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++;
}

Hasil

ESP32 dan LCD 20x4
ESP32 dan LCD 20×4

Referensi

Arduino UNO Dengan Display LCD 20×4 (serial I2C)

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

Arduino UNO secara praktis sama saja dengan Arduino Nano, jadi cara menyambungnya sama seperti pada artikel “Arduino Nano Dengan Display LCD 20×4 (serial I2C)“.

Berikut fisik penyambungan kabel I2C antara Arduino UNO dengan modul PCF8574.

Sambungan I2C antara Arduino UNO dan LCD 20x4
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

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.

Rangkaian Arduino Nano dan MCP4725 di breadboard
Rangkaian Arduino Nano dan MCP4725 di breadboard

Spesifikasi

Microcontroller ATmega328
Architecture AVR
Operating Voltage 5 V
Flash Memory 32 KB of which 2 KB used by bootloader
SRAM 2 KB
Clock Speed 16 MHz
Analog IN Pins 8
EEPROM 1 KB
DC Current per I/O Pins 40 mA (I/O Pins)
Input Voltage 7-12 V
Digital I/O Pins 22 (6 of which are PWM)
PWM Output 6
Power Consumption 19 mA
PCB Size 18 x 45 mm
Weight 7 g
   

Daftar Pin pada Arduino Nano

Daftar pin Arduino Nano
Daftar pin Arduino Nano

Sumber:

 

 

Arduino Nano Dengan Display LCD 20×4 (serial I2C)

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 20x4
Arduino Nano dengan display LCD 20×4

Berikut ini modul PCF8752 dipasang di bagian belakang LCD:

LCD 20x4 tampak belakang
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  yang lebih detail
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()
{
}

Referensi

  • LCD 20×4
  • https://github.com/johnrickman/LiquidCrystal_I2C/tree/master/examples/HelloWorld

Foot Switch CNTD CFS-201

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.

Foot Switch CNTD CFS-201
Foot Switch CNTD CFS-201 tampak samping

 

Foot Switch CNTD CFS-201
Foot Switch CNTD CFS-201 tampak atas

 

Foot Switch CNTD CFS-201
Foot Switch CNTD CFS-201 tampak bawah

Foot Switch CNTD CFS-201
Kotak Foot Switch CNTD CFS-201