Mirko Pavleski
Published © GPL3+

DIY Advanced Arduino Colloidal Silver Generator

How to make an advanced colloidal silver device with Arduino, which has all the features of such commercial devices.

BeginnerFull instructions provided3 hours4,981
DIY Advanced Arduino Colloidal Silver Generator

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Standard LCD - 16x2 White on Blue
Adafruit Standard LCD - 16x2 White on Blue
×1
l293d Motor Driver IC
×1
Linear Regulator (7805)
Linear Regulator (7805)
×1
Rotary potentiometer (generic)
Rotary potentiometer (generic)
×1
Resistor 1k ohm
Resistor 1k ohm
×1
Resistor 221 ohm
Resistor 221 ohm
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free

Story

Read more

Schematics

Schematic

...

Code

Arduino Code

C/C++
...
// Arduino DC motor speed and direct control
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 9, 5, 4, 3, 2);

#define pot      0
#define pwm1     10
#define pwm2    11

boolean direct = 0;
int current;
int Shutdown=0;
int mA = 0;
int hours;
int minutes;
int seconds;
long hour = 3600000; // 3600000 milliseconds in an hour
long minute = 60000; // 60000 milliseconds in a minute
long second = 1000; // 1000 milliseconds in a second

void setup() {
  lcd.begin(16, 2);
 
  pinMode(pwm1,   OUTPUT);
  pinMode(pwm2,   OUTPUT);
}

void loop() {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Coloidal I=mA ");
  lcd.print(mA);
  long timeNow = millis();
  hours = (timeNow) / hour;             
  minutes = ((timeNow) % hour) / minute ;
  seconds = (((timeNow) % hour) % minute) / second;
  lcd.setCursor(0, 1);
  lcd.print("T:");
  lcd.print(hours);
  lcd.print(":");
  lcd.print(minutes);
  lcd.print(":");
  lcd.print(seconds);
 
  
  current = analogRead(pot) / 4;
  mA=map(current, 0,255,0,10);

  
  if(direct)
    analogWrite(pwm1, current);
  else
    analogWrite(pwm2, current);

  direct=!direct;
    
   if(minutes>=0 && minutes<30){
     digitalWrite(pwm1, 0);
    lcd.setCursor(10,1);
    lcd.print("P:+/-"); 
    
}
   if( minutes>=30 && minutes<59){
      digitalWrite(pwm2, 0);
    lcd.setCursor(10,1);
    lcd.print("P:-/+");       
  }

  
  if(hours>=3){
   digitalWrite(pwm1, 0);
   digitalWrite(pwm2, 0);
    lcd.setCursor(10,1);
    lcd.print("END");    
 
   } 
    delay(100);

 }

Credits

Mirko Pavleski

Mirko Pavleski

150 projects • 1285 followers

Comments