Advertisement
learnelectronics

Arduino Potentiometer Controled Fan w/ MOSFET

Apr 3rd, 2019
734
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. //
  2. //
  3. //
  4. //          Arduino Potentiometer Controled Fan w/ MOSFET
  5. //          by learnelectronics
  6. //          4/2/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. int pwmOut = 0;                                     //INITIALIZE VARIABLE FOR PWM CONTROL OF FAN
  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(3,OUTPUT);                                //DEFINE D3 AS AN OUTPUT
  35.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);        //START UP THE OLED
  36.   display.display();                                //SHOW BUFFER
  37.   display.clearDisplay();                           //CLEAR BUFFER
  38.  
  39.  
  40.  
  41.  
  42.  
  43. }
  44.  
  45.  
  46. void loop() {
  47.  
  48.   potRead = analogRead(A0);                         //READ THE POTENTIOMETER @ A0
  49.   pwmOut = map(potRead, 0, 1023, 125, 255);         //CONVERT THE 0-1023 VAULE OF THE POT TO THE 0-255 VALUE PWM USES
  50.  
  51.   display.setTextSize(1);                           //SETUP OLED WITH TEXT SIZE OF 1
  52.   display.setTextColor(WHITE);                      //SETUP OLED WITH COLOR WHITE
  53.   display.setCursor(0,0);                           //SETUP OLED WITH CURSOR IN UPPER LEFT
  54.   display.print("Analog Val: ");                    //PRINT HEADING TO OLED BUFFER
  55.   display.println(potRead);                         //PRINT POT VALUE (A0) TO OLED BUFFER AND NEWLINE
  56.   display.print("PWM Val: ");                       //PRINT HEADING TO OLED BUFFER
  57.   display.println(pwmOut);                          //PRINT PWM VALUE (D3) TO OLED BUFFER AND NEWLINE
  58.   display.display();                                //SHOW WHATS IN THE OLED BUFFER
  59.   delay(100);                                       //WAIT 100mS
  60.   display.clearDisplay();                           //CLEAR THE DISPLAY
  61.   analogWrite(3,pwmOut);                            //OUTPUT A PWM VALUE TO PIN D3 TO CONTROL THE FAN SPEED
  62.  
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement