Selasa, 20 April 2021

Membuat Rangkaian Digital Input di Mikrokontroller (arduino, esp32, stm32. esp8266)

 


Assalamu'alaikum,

semoga kita selalu diberikan keselamatan dan kesehatan. di pagi ini saya akan share hasil diskusi di grup whatsapp Modbus Arduino yang penduduknya sekitar 255 kepala. diskusi hari ini membahas tentang bagaimana membuat rangkaian digital input yang aman, handal dan simpel.

arti aman disini yaitu aman terhadap EMI atau EMF. Electromagnetic Interference atau biasa disingkat EMI adalah noise (gangguan) elektrikal yang disebabkan oleh medan elektromagnetik yang dihasilkan oleh sistem elektrikal lain.

Pada umumnya gangguan EMI ini terjadi jika ada 2 rangkaian elektronika yang berdekatan. Bisa salah satu mempengaruhi yang lain, bisa juga saling mempengaruhi. Besarnya gangguan EMI berbanding lurus terhadap arus. Ingat: medan elektromagnetik ditimbulkan oleh aliran arus.

Secara mekanisme, arus yang mengalir pada suatu konduktor menimbulkan medan elektromagnetik, kemudian medan elektromagnetik ini dapat menimbulkan arus pada konduktor lainnya. Arus yang tidak dinginkan inilah yang menjadi gangguan (EMI).

Selain aman dari EMI ada juga harus aman terhadap range tegangan supply input. Disini membuat rangkaian digital input  batasannya tegangan 12-24V.  Jadi optional ketika dikasih input tegangan.

sekarang arti handal adalah handal kinerjanya ketika dikasih input tegangan terbalik. rangkaiannya tidak mudah rusak.

selanjutnya arti simpel. Simpel disini dalam arti tidakmembutuhkan komponen banyak dan gampang merangkainya. seperti SIMOR (simple modbus RTU)

langsung saja kita disiapkan komponennya :

  • opto coupler TLP290
  • resistor 3k3 atau 3k8
  • resistor 4k7
  • resistor 2k2
  • led
  • MCU (mikrokontroller seperti arduino, esp, stm)
rangkai rangkaian seperti di atas. video simulasi menyusul

Wassalam
Founder SIMOR Technology

Rabu, 14 April 2021

CARA MENGETAHUI ADDRESS I2C DENGAN MUDAH DAN SIMPEL

 






terkadang saat beli lcd i2c kita kesulitan addresnya brp....?

berikut triknya .

sambungkan komponen seperti gambar di atas.

lalu upload sketchnya dibawah ini:


  • #include <Wire.h>
  •  void setup()
  • {
  •   Wire.begin();
  •    Serial.begin(9600);
  •   while (!Serial);             
  •   Serial.println("\nI2C Scanner");
  • }
  •  void loop()
  • {
  •   byte error, address;
  •   int nDevices;
  •    Serial.println("Scanning...");
  •    nDevices = 0;
  •   for(address = 1; address < 127; address++ )
  •   {
  •      Wire.beginTransmission(address);
  •     error = Wire.endTransmission();
  •      if (error == 0)
  •     {
  •       Serial.print("I2C device found at address 0x");
  •       if (address<16)
  •         Serial.print("0");
  •       Serial.print(address,HEX);
  •       Serial.println("  !");
  •        nDevices++;
  •     }
  •     else if (error==4)
  •     {
  •       Serial.print("Unknown error at address 0x");
  •       if (address<16)
  •         Serial.print("0");
  •       Serial.println(address,HEX);
  •     }    
  •   }
  •   if (nDevices == 0)
  •     Serial.println("No I2C devices found\n");
  •   else
  •     Serial.println("done\n");
  •    delay(5000);           // wait 5 seconds for next scan
  • }

kemudian cek di serial monitor.


semoga bermanfaat

LOMBA DESAIN HMI VIRTUINO MQTT

 




turorial dan persyaratan ada di video bawah ini:





Senin, 12 April 2021

Cara membuat monitoring tegangan dan Arus DC via Modbus RTU dengan Arduino Uno dan INA219

 



sensor INA 219 adalah sensor untuk mengukur arus dan tegangan  dan media komunikasinya via i2c. dari 2 parameter itu bisa juga memonitor daya dengan rumus:
 daya = tegangan x arus

adapun kemampuan nya itu mengukur tegangan sampai 26VDC dan untuk arus max 3,2A.

berikut ini adalah bagian-bagian dari sensor INA219:




adapun caranya declare koding sensornya di ARDUINO IDE agar bisa multi sensor, sebagai berikut:
Adafruit_INA219 ina219_A; // tanpa jumper
Adafruit_INA219 ina219_B(0x41);//JUMPER A0
Adafruit_INA219 ina219_C(0x44);//JUMPER A1
Adafruit_INA219 ina219_D(0x45);//JUMPER A0 DAN A1


contoh jumper A0:



cara wiring:


test dulu via serial monitor, berikut sketchnya:
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup(void) 
{
  Serial.begin(115200);
  while (!Serial) {
      // will pause Zero, Leonardo, etc until serial console opens
      delay(1);
  }
  uint32_t currentFrequency;
  ina219.begin();
  Serial.println("SIMOR Measuring voltage and current with INA219 ...");
}
void loop(void) 
{
  float shuntvoltage = 0;
  float busvoltage = 0;
  float current_mA = 0;
  float loadvoltage = 0;
  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = ina219.getCurrent_mA();
  loadvoltage = busvoltage + (shuntvoltage / 1000);
  
  Serial.print("Bus Voltage:   "); Serial.print(busvoltage); Serial.println(" V");
  Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
  Serial.print("Load Voltage:  "); Serial.print(loadvoltage); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.println("");
  delay(2000);
}

setelah data sudah muncul, langkah selanjutnya lempar data ke modbus:


#include <ModbusRtu.h>
#define ID   1
Modbus slave(ID, 0, 0); // this is slave ID and RS-232 or USB-FTDI
uint16_t au16data[90];
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219_A;

void setup() {
  uint32_t currentFrequency;
  ina219_A.begin();  // Initialize first board (default address 0x40)
  ina219_B.begin();  // Initialize second board with the address 0x41
   slave.begin( 19200 );

}

void loop() {
  slave.poll( au16data, 90 );
  io_poll();
}

void io_poll() {
  int Ashuntvoltage = 0;
  float Abusvoltage = 0;
  int Acurrent_mA = 0;
  float Aloadvoltage = 0;
  int Bshuntvoltage = 0;
  float Bbusvoltage = 0;
  int Bcurrent_mA = 0;
  float Bloadvoltage = 0;
  Ashuntvoltage = ina219_A.getShuntVoltage_mV();
  Abusvoltage = ina219_A.getBusVoltage_V();
  Acurrent_mA = ina219_A.getCurrent_mA();
  Aloadvoltage = Abusvoltage + (Ashuntvoltage / 1000);

   // read INA219
  au16data[2] = Ashuntvoltage ;
  au16data[3] = Abusvoltage * 10;
  au16data[4] = Acurrent_mA ;
  au16data[5] = Aloadvoltage * 10;
  au16data[6] = ((Acurrent_mA *0.001) * Abusvoltage) * 10; //daya
  

}





Terima kasih sudah meluangkan waktunya untuk membaca artikel ini.

silahkan tinggalkan komen jika ada masukan untuk artikel selanjutnya


Jumat, 05 Maret 2021

CT Clamp yang membuat bingung hasil pengukurannya

 



Assalamu'alaikum, 
warga dunia maya.
Founder SIMOR kali ini akan berbagi pengalaman menggunakan CT Clamp seperti gambar di atas. sebelum membeli sangat tertarik sekali karena mempunya beberapa kelebihan,antara lain:
1. penggunaannya user friendly, tinggal capit aja
2. aman digunakan saat pengukuran beban di trafo
3. warnanya sesuai standart RST
4. kelebihan terakhir yaitu di harganya, karena hampir 2x lipat harga CT splitcore

jadi itu tadi kelebihannya yang membuat ingin segera membelinya. kemudian CT clamp itu sudah terbeli dan terangkai seperti gambar dibawah ini:


setelah jadi alat. akhirnya ditest dilapangan sama teman-teman yantek. Ternyata hasilnya diluar dugaan. akurasinya sangat jauh. berikut hasilnya:
CT clamp ---- Tang ampere
91                    64
100                  74
114                  91

kemudian kucoba kepada teman-temen. mereka tidak tau juga. ada yang menanyakan berapa tingkat akurasinya. kalo di spek sih tertulis 0.5. 

Ide kemudian tiba-tiba muncul,

 ada kabel NYYHY 2x1,5mm  sisa. kemudian saya coba ganti kabel existing yang mn ukurannya cuma 1mm kalo gk salah dan puanjang sekali.
jadilah seperti gambar di foto dibawah ini.
dan hasil pengukuran di video






cukup sekian dulu critanya. semoga bermanfaat bagi temen" yang mau beli CT clamp ini jangan kawatir dengan hasilnya....

jangan lupa tinggalkan komen setelah membaca ini...

Jazakallah khairan

Wassalamu'alaikum

Founder SIMOR


Senin, 01 Maret 2021

NGOPI - Bagaimana upload stm32 via ST Link dengan software arduino IDE

 





kesimpulan ngopi tadi malam :
1. led builtin stm32 versi bluepill itu di pc13, versi blackpill itu di pb12

2. upload via stlink tidak bisa monitor serial.print kalo pakai stlink yang harga 30rb an. solusinya pakai usb to ttl di pin PA9 dan PA10 untuk tx rxnya

3. upload via ST link sangat mudah gak ribet cukup colok seperti digambar


yang mau menambahkan silahkan tinggalkan komen dibawah ini


untuk artikel tentang STM32 pakai usb to ttl bisa kunjungi link INI

driver ST link download

file presentasi  DOWNLOAD

cara blok value di Node red

 ambil node filter dan edit seperti di bawah ini