Lesson 66: Controlling 4 channel relay with push button switches
Please select other codes for this lecture from the links below.
Part 6: Using Relay with Arduino
In this lesson we learn how to control 4 channel relay with 4 push buttons. There are two codes. This code lesson 66-1 is to toggle the relay like push-on, push-off. This code (lesson 66-1) is to push and hold to turn the light on and keep it pressed.
- 00:00 Introduction
- 08:32 Relay power rating
- 09:54 Wiring Explained
- 11:39 Code Explained
- 13:31 Demonstration
/*
* Lesson 66: Controlling 4 channel relay with push button switches
*
* when button pushed, relay ON and stay ON
* push again to make it OFF and stay OFF
*
*
* written by Ahmad Shamshiri for Robojax.com
* on December 11, 2018 at 19:39 in Ajax, Ontario, Canada
Watch instruction video for this code: https://youtu.be/0PW22PD89u0
This video is part of Arduino Step by Step Course which starts here: https://youtu.be/-6qSrDUA5a8
If you found this tutorial helpful, please support me so I can continue creating
content like this. Make a donation using PayPal by credit card https://bit.ly/donate-robojax
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const int pushButton[] ={2,3,4,5};// define push button inputs
const int relayPin[]={11,10,9,8};// output pins where 4 relays will be connected
String relayNames[] ={"CH1", "CH2","CH3","CH4"};// Just put name for 4 relays
int pushed[] ={0,0,0,0};// status of each buttons
int relayStatus[] ={HIGH,HIGH,HIGH,HIGH};// initial status of relay
void setup() {
// Robojax.com 4-Relay-4-Push button 20181211
Serial.begin(9600);// initialize serial monitor
for(int i=0; i<4; i++)
{
pinMode(pushButton[i], INPUT_PULLUP);
pinMode(relayPin[i], OUTPUT);
digitalWrite(relayPin[i], HIGH);// initial relay status to be OFF
}
// Robojax.com 4-Relay-4-Push button 20181211
}
void loop() {
// Robojax.com 4-Relay-4-Push button 20181211
for(int i=0; i<4; i++)
{
int val = digitalRead(pushButton[i]);
if(val == HIGH && relayStatus[i] == LOW){
pushed[i] = 1-pushed[i];
delay(100);
}// if
relayStatus[i] = val;
if(pushed[i] == HIGH){
Serial.print(relayNames[i]);
Serial.println(" ON");
digitalWrite(relayPin[i], LOW);
}else{
Serial.print(relayNames[i]);
Serial.println(" OFF");
digitalWrite(relayPin[i], HIGH);
}// else
}// for
Serial.println("==");
delay(100);
// Robojax.com 4-Relay-4-Push button 20181211
}// loop end