Advertisement
learnelectronics

Arduino Potentiometer Controled Relay Module

Apr 7th, 2019
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.31 KB | None | 0 0
  1. //
  2. //
  3. //
  4. //          Arduino Potentiometer Controled Relay Module
  5. //          by learnelectronics
  6. //          4/6/2019
  7. //          www.youtube.com/c/learnelectronics
  8. //          email:[email protected]
  9. //
  10. //
  11. //
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. #include <Wire.h>                                   //I2C LIBRARY FOR OLED
  21. #include <Adafruit_GFX.h>                           //ADAFRUIT GRAPHICS LIBRARY
  22. #include <Adafruit_SSD1306.h>                       //ADAFRUIT OLED DRIVER LIBRARY
  23.  
  24. int potRead = 0;                                    //INITIALIZE VARIABLE FOR POTENTIOMETER
  25.  
  26.  
  27. #define OLED_RESET 4                                //REQUIRED BY SSD1306 LIBRARY
  28.  
  29. Adafruit_SSD1306 display(OLED_RESET);               //DEFINE THE OLED AS display
  30.  
  31. void setup()   {                
  32.   Serial.begin(9600);                               //SERIAL COMMS FOR DEBUGGING
  33.   pinMode(A0,INPUT);                                //DEFINE A0 AS AN INPUT
  34.   pinMode(2,OUTPUT);                                //DEFINE D2 AS AN OUTPUT for relay 1
  35.   pinMode(3,OUTPUT);                                //DEFINE D3 AS AN OUTPUT for relay 2
  36.   pinMode(5,OUTPUT);                                //DEFINE D5 AS AN OUTPUT for relay 3 (cant use D4 - in use by OLED)
  37.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);        //START UP THE OLED
  38.   display.display();                                //SHOW BUFFER
  39.   display.clearDisplay();                           //CLEAR BUFFER
  40.  
  41.  
  42.  
  43.  
  44.  
  45. }
  46.  
  47.  
  48. void loop() {
  49.  
  50.   potRead = analogRead(A0);                         //READ THE POTENTIOMETER @ A0
  51.  
  52.   display.clearDisplay();                           //CLEAR THE DISPLAY
  53.   display.setTextSize(1);                           //SETUP OLED WITH TEXT SIZE OF 1
  54.   display.setTextColor(WHITE);                      //SETUP OLED WITH COLOR WHITE
  55.   display.setCursor(0,0);                           //SETUP OLED WITH CURSOR IN UPPER LEFT
  56.   display.print("Analog Val: ");                    //PRINT HEADING TO OLED BUFFER
  57.   display.println(potRead);                         //PRINT VALUE TO OLED BUFFER
  58.   display.println("------------");                  //PRINT A LINE TO OLED BUFFER
  59.   display.println("");                              //PRINT BLANK LINE TO OLED BUFFER
  60.  
  61.       if (potRead > 2 && potRead <334)              //CHECK IF SYSTEM IS ON AND IN POSITION 1
  62.       {
  63.       digitalWrite(2,HIGH);                         //CLOSE RELAY 1
  64.       digitalWrite(3,LOW);                          //OPEN RELAY 2
  65.       digitalWrite(5,LOW);                          //OPEN RELAY 3
  66.       display.setTextSize(2);                       //SET LARGE TEXT ON OLED
  67.       display.println("Heat ON");                   //PRINT SYSTEM STATUS TO OLED BUFFER
  68.       }
  69.       else if (potRead > 333 && potRead <667)       //CHECK IF SYSTEM IS IN POSITION 2
  70.       {
  71.       digitalWrite(3,HIGH);                         //CLOSE RELAY 2(ON)
  72.       digitalWrite(2,LOW);                          //OPEN RELAY 1(OFF)
  73.       digitalWrite(5,LOW);                          //OPEN RELAY 3(OFF)
  74.       display.setTextSize(2);                       //SET LARGE TEXT ON OLED
  75.       display.println("Cool ON");                   //PRINT SYSTEM STATUS TO OLED BUFFER
  76.       }
  77.       else if (potRead > 666)                       //CHECK IF SYSTEM IS IN POSTION 3
  78.       {
  79.       digitalWrite(5,HIGH);                         //CLOSE RELAY 3
  80.       digitalWrite(2,LOW);                          //OPEN RELAY 1
  81.       digitalWrite(3,LOW);                          //OPEN RELAY 2
  82.       display.setTextSize(2);                       //SET LARGE TEXT ON OLED
  83.       display.println("Fan ON");                    //PRINT SYSTEM STATUS TO OLED BUFFER
  84.       }
  85.       else                                          IF SYSTEM IS OFF
  86.       {
  87.         digitalWrite(2,LOW);                        //OPEN RELAY 1
  88.         digitalWrite(3,LOW);                        //OPEN RELAY 2
  89.         digitalWrite(5,LOW);                        //OPEN RELAY 3
  90.         display.setTextSize(2);                     //SET LARGE TEXT ON OLED
  91.         display.println("All OFF");                 //PRINT SYSTEM STATUS TO OLED BUFFER
  92.       }
  93.  
  94.  
  95.    
  96.   display.display();                                //SHOW WHATS IN THE OLED BUFFER
  97.   delay(100);                                       //WAIT 100mS
  98.   display.clearDisplay();                           //CLEAR THE DISPLAY
  99.  
  100.  
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement