Hobby Electronics Projects & More

Arduino uses solid state relay power control for H-bridge.
Fig. 1

Arduino SSR Power Enable Program

by Lewis Loflin

In fig. 1 a solid state relay is used as a power enable switch for a generic H-bridge circuit. Below is the program used to operate the above.

Pressing S1 and S2 together enables power. Press both again and power is off.

Arduino digital pin 11 (LED3) turns the solid state relay ON-OFF. This is done by reading I/O pin state then inverting (XOR or NOT) the result then writing it back.


#define SW1 2
#define SW2 3
#define LED1 9
#define LED2 10
#define LED3 11
#define pot 0


// HIGH = 1 and LOW = 0

#define ON 1
#define OFF 0

byte temp;

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(SW1, INPUT);
  digitalWrite(SW1, HIGH); // pull up on
  pinMode(SW2, INPUT);
  digitalWrite(SW2, HIGH); // pull up on


}

void loop() {
  delay(100);

  if ( S1() && !S2() ) {
    delay(200);
    if (S2()) { } // do nothing
    else digitalWrite(LED1, 1);
  }
  else digitalWrite(LED1, 0);

  if ( S2() && !S1() ) {
    delay(200);
    if ( S1() ) { } // do nothing
    else digitalWrite(LED2, 1);
  }
  else digitalWrite(LED2, 0);
  
  // power enable
  if ( S1() && S2() ) {
    byte temp = !digitalRead(LED3);
    digitalWrite(LED3, temp);
    while( S1() || S2() ) {}
  } // end if


}

// returns 1 if switched pressed
byte  S1(void)   {
  if (digitalRead(SW1) != 1)   return 1;
  // or use (digitalRead(SW1) == 0)
  // 1 is a HIGH
  else return 0;
}

// returns 1 if switched pressed
byte  S2(void)   {
  if (digitalRead(SW2) != 1)   return 1;
  else return 0;
}



Videos:
My YouTube Videos on Electronics
Introduction to the Arduino Microcontroller
Part 1: Programming Arduino Output
Part 2: Programming Arduino Input
Part 3: Arduino Analog to Digital Conversion
Part 4: Using Arduino Pulse-Width-Modulation
Repost Arduino AC Power Control