Perancangan Elektro Stimulator

Overview


Elektrostimulator merupakan suatu peralatan elektronik yang mampu menghasilkan tegangan listrik dengan intensitas dan frekuensi tertentu untuk merangsang keseimbangan Chi/ energi tubuh. Penelitian ini bertujuan untuk membuat rancang bangun elektrostimulator yang memiliki bentuk gelombang keluaran spike dan square dimana tegangan, frekuensi dan waktu rangsang dapat divariasi sesuai dengan kebutuhan. Penelitian yang bersifat eksperimen ini dilakukan dengan membuat elektrostimulator yang memiliki 2 gelombang keluaran yang berbeda dan mengemasnya menjadi satu alat sehingga memberi kekeluasaan pada akupunkturis untuk melakukan terapi sesuai dengan kondisi penderita.Dari hasil perancangan alat dan perwujudannya kemudian dilakukan uji coba dan kalibrasi. Kalibrasi alat menggunakan osiloskop dan digital frekuensi meter. Analisis dilakukan dengan menggunakan uji T pada 2 sisi untuk mengetahui stabilitas tegangan dan frekuensi pada keempat keluaran. Hasil penelitian diperoleh elektrostimulator dengan bentuk gelombang spike(pulsa) dan square.

Hardware Used

  • Arduino Uno R3 – 1
  • Step Up Dc Converter
  • Lcd 2x16 I2C
  • Adaptor 9V 1 A
  • Jumper Wires
  • Kabel Pad Elktroda
  • Elektroda
  • keypad 1x4

Software Used

        Arduino IDE

Libraries Used

Search Results

Web results

Note : 

Input Dc converter terhubung dengan sumber 3.3V arduino dan output terhubung pwm signal generator.
Pin 11 Sebagai TX arduino -> Pin Rx PWM signal generator
Pin 10 sebagai RX arduino -> Pin Tx PWM signal generator
#include <SoftwareSerial.h>
SoftwareSerial SoftSerial(10, 11);

Tambahan Input Keypad 1x4 untuk pilihan Level frekuensi atau Duty Cycle

const int buttonPin[] = {2,3,4,5};
void setup() 
{   
  for(int x=0; x<4; x++)
  {
    pinMode(buttonPin[x], INPUT_PULLUP); 
  }
}

Full Code

Arduino Code


#include <SoftwareSerial.h>
SoftwareSerial SoftSerial(10, 11); // RX | TX pins.  Can be reassigned if needed
#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27, 16, 2);
const long BAUDRATE = 9600;    // Baud rate of the XY-LPWM module
char c = ' ';                  // Character being transmitted 
//===============================================================================
//  Initialization
//===============================================================================
const int buttonPin[] = {2,3,4,5};

void setup() {
  // put your setup code here, to run once:
{   
  for(int x=0; x<4; x++)
  {
    pinMode(buttonPin[x], INPUT_PULLUP); 
  }
}
    SoftSerial.begin(BAUDRATE);  // Init soft serial object
    Serial.begin(9600);          // Init hardware serial
    Serial.println("XY-LPWM Serial Test");
    Serial.println("Enter 'Fxxx', 'Fx.xx', 'Fxx.x' or 'Fx.x.x' to set frequency");
    Serial.println("Enter 'Dxxx' to set duty cycle");
    Serial.println("Enter 'read' to get current settings");
  lcd.setCursor(0,0);
  lcd.print("   Elektro");
  lcd.setCursor(0,1);
  lcd.print(" stimulator");
  delay(2000);
  lcd.clear();
}
void loop() {
  // put your main code here, to run repeatedly:
    if (buttonState == LOW && buttonPin[x] == 2) {    
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("1. Frekensi :");
        lcd.setCursor(0,1);
        lcd.print(" level 1");
         SoftSerial.write("'F070'");
         delay(1000);
         SoftSerial.write("'D060'");
        delay(500);
    }
       if (buttonState == LOW && buttonPin[x] == 3) {    
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("1. Frekensi :");
        lcd.setCursor(0,1);
        lcd.print(" level 2");
         SoftSerial.write("'F060'");
         delay(1000);
         SoftSerial.write("'D050'");
        delay(500);
    }
 
    if (buttonState == LOW && buttonPin[x] == 4) {    
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("1. Frekensi :");
        lcd.setCursor(0,1);
        lcd.print(" level 3");
         SoftSerial.write("'F050'");
         delay(1000);
         SoftSerial.write("'D40'");
        delay(500);
    }
       if (buttonState == LOW && buttonPin[x] == 5) {    
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("1. Frekensi :");
        lcd.setCursor(0,1);
        lcd.print(" level 4");
         SoftSerial.write("'F040'");
         delay(1000);
         SoftSerial.write("'D035'");
        delay(500);
    }
 if (SoftSerial.available())
    {
        c = SoftSerial.read();
        if (c=='F' || c=='D') Serial.write(' ');  // Add space between commands
        Serial.write(c);
        
    }
     // Read char from the Serial Monitor and send to the XY-LPWM module
    if (Serial.available())
    {
        c = Serial.read();
        SoftSerial.write(c);   
        Serial.write(c);  // Echo character typed to serial monitor window
    }
}

0 Comments