Introduction: Iontophoresis Controlled by Arduino Timer

DIY Iontophoresis device powered by Arduino with timer function

these device will have a polarity switch on the SET time interval (ON and OFF).

Step 1: BACKGROUND

HISTORY :

Hyperhidrosis is the condition characterized by abnormally increased sweating,[1] in excess of that required for regulation of body temperature.[2] It is associated with a significant quality of life burden from a psychological, emotional, and social perspective.[citation needed] As such, it has been referred to as the 'silent handicap'.[3]

source : Hyperhidrosis for full article

Iontophoresis is a physical process in which ions flow diffusively in a medium driven by an applied electric field. Iontophoresis is to be distinguished from the carriage of uncharged molecules by diffusive fluxes of other molecules, especially of solvent molecules, for example by electro-osmosis, that is to say by flux of uncharged solvent molecules carried as a cross-effect of iontophoresis.[1][2]These phenomena, directly and indirectly, constitute active transport of matter due to an applied electric field. The transport is measured in units of chemical flux, commonly µmol/cm2h. The transport of a charged species of interest may also be measured in terms of a representative electric current, but that current might not be the whole of the current driven by the applied electric field.

source : Iontophoresis for full article

and for whom who has a condition above (*Hyperhidrosis) don't run or hide cos YOU ARE NOT ALONE

I hope by these device it can help to reduce or even remove the excess sweating with HOME TREATMENT, they key of success is by doing these treatment regularly (4-5 time a weeks with 5-10 minutes interval).

WARNING :

May be for some people will suffer a bit pain (electric shock) especially during the polarity switch due to the electric current flow into the body, but I have made these machine adjustable, so for the people who never do this can start with very low voltage first to adapt. and increase the current slowly to suit.

These device will switch the polarity of the electric current which deliver to the body on the SET Time interval in MENU. and it's has an INDIVIDUAL adjustment for ON time and OFF time.

Step 2: PREPARATION

It takes me a couple days to able to make it into full operating device and few hour for assembly

SO let get started and gather the parts needed

PARTLIST :

1. Arduino (you may use any type of Arduino Board) for me I am using Pro Mini which is I have on hand

2. BOXES (I am using a ancient box used for TRANSFORMER power supply) or you may also used another box as you desire

3. LCD (16x2) -- I am using the i2c interface (you may use another type to implement --- relevant with timer code)

4. Rotary encoder with push button / switch

5. TRANSFORMER

for transformer I am using 2 different type

a. is for the main power for Iontophoresis which is have a vary voltage output (1.5, 3, 4.5, 6, 7.5, 9, 12V) so we can easily adjust it to suits with our needed.

b. is power transformer to supply the arduino and some peripherals device .

You may also using another type of these power supply (adjusted based on your need)

6. Rotary Switch (for main Iontophoresis voltage selector) the main function I am using these setup is I can adjust the voltage output which will deliver the electricity into the skin/body, if it's to HURT than I can lowering the voltage outout. (we have plenty of voltage selection by using these)

7. Some piece of PCB (to mount and place all the parts)

8. Relay (here I am using the DPDT type of relay and it has 5V input voltage to operate)

Why DPDT ? cos we need to have some of polarity switch (if relay is ON it make a output A pin to POSITIVE and output B pin to NEGATIVE and vice versa

9. Buzzer / LED (optional)

10. Some wire & supporting parts

11. Metal Tray (these will used to store the TAP WATER which will used for the process)

(HAS TO BE A METAL) better using STAINLESS

Step 3: WIRING ALL PARTS (Initial SETUP)

after all parts is available

my SETUP is :

- Arduino Pro Mini pin A4&A5 (is used to drive the i2c LCD)

- Arduino Pro Mini pin 2&3 (is used to drive the Rotary Encoder with pull-down resistor)

- Arduino Pro Mini pin 4 (is used to drive the push button with pull-down resistor)

- Arduino Pro Mini pin 5 (is used to drive the Relay)

- Arduino Pro Mini pin 6 (is used to trigger a buzzer)

Step 4: WIRING LCD TO ARDUINO

lets describe step by step (for easy understanding I am using Fritzing to demonstrate the wiring SETUP)

1. WIRING ARDUINO WITH LCD

and my code is :

// both are needed if we use i2C LCD

#include

#include

// we have to define the i2C address and type of LCD we use)

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()

lcd.begin();

NOTE:

if you not sure what address of your LCD , you can use the arduino i2c Scanner example as attached files:

Step 5: WIRING ROTARY ENCODER TO ARDUINO

lets describe step by step (for easy understanding I am using Fritzing to demonstrate the wiring SETUP)

it will used 10K resistor and 100nf Cap (ceramic)


1. WIRING ARDUINO WITH ENCODER and my code is :

int encoder0PinA = 3;

int encoder0PinB = 2;

const int buttonPin = 4;

int buttonState ;
int lastButtonState = LOW;

long lastDebounceTime = 0; // the last time the output pin was toggled
long debounceDelay = 80;

int encoder0Pos = 0;
int encoder0PinALast = LOW;

// and in setup

void setup() {

pinMode(buttonPin, INPUT);

pinMode(encoder0PinA,INPUT);

pinMode(encoder0PinB,INPUT);

}

Step 6: WIRING ARDUINO WITH RELAY & BUZZER

lets describe step by step (for easy understanding I am using Fritzing to demonstrate the wiring SETUP)

1. WIRING ARDUINO WITH RELAY & BUZZER and my code is :

const int outputPin = 5; // LED / RELAY PIN

int buzzer = 6; // buzzer sound PIN

// in setup

void setup() {

pinMode(buzzer, OUTPUT);
pinMode(outputPin, OUTPUT);

}

note on relay :

cause these have a switch mode polarity, meaning :

Relay on output wire (a) POSITIVE , wire (b) NEGATIVE

relay off output wire (a) NEGATIVE , wire (b) POSITIVE

we need a DPDT relay which has am ability to do the task

see the image for relay wiring

Step 7: FULL CODE

First thing thanks to Martin Mensik for his contribution on the CODE for the timer

Martin Mensik
FULL CODE

and the rest of the code

(*. INO file also attached)

I can't copy paste here (the format is strange)

NOTE:

Due to my limitation on time, for now I am still using (delay) function to trigger the encoder rotation and outputted to the buzzer.

these may affect, cos using (delay) but I think is not a critical problem, cos I have tried and the delay not disturbing :)

if some one have a revision on this (used without delay) than will much appreciate

Step 8: SOME NOTE :

As I stated above (limitation on the time) mine is still uncompleted YET, it's still missing the rotary switch selector :(.

BUT these is enough for testing purposes, since I can just make a JUMPER WIRE on these

Once I have complete these, than I will have these EDITED :)

TO DO NEXT :

FOR EASY OPERATION, these device is still counting and displayed in (S) / SECOND, in future I will add some more option to added a MINUTES counter (instead of only count in SECONDS)

cos at a moment, if we desire to set ON/OFF interval for 2 minutes is still displayed count in 120 seconds

For now, These device will switch the polarity of the electric current which deliver to the body on the SET Time interval in MENU. and it's has an INDIVIDUAL adjustment for ON time and OFF time. BUT still REPEATED the cycles over and over until we shutdown the power supply to stop.

FOR next will also thinking to have a PERIODIC on / off timer which we can sets into a specific of time and after the time sets is complete the machine is stops.

also another idea to have PWM polarity switch, so we will never suffer from pain again during the polarity change by relay, meaning will removed the relay which act for polarity switch with some kind of power transistor.

THANKS TO EVERYONE WHO HELP ME ON THESE

Step 9: