Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- //
- //
- // Arduino Potentiometer Controled Fan w/ MOSFET
- // by learnelectronics
- // 4/2/2019
- // www.youtube.com/c/learnelectronics
- // email:[email protected]
- //
- //
- //
- #include <Wire.h> //I2C LIBRARY FOR OLED
- #include <Adafruit_GFX.h> //ADAFRUIT GRAPHICS LIBRARY
- #include <Adafruit_SSD1306.h> //ADAFRUIT OLED DRIVER LIBRARY
- int potRead = 0; //INITIALIZE VARIABLE FOR POTENTIOMETER
- int pwmOut = 0; //INITIALIZE VARIABLE FOR PWM CONTROL OF FAN
- #define OLED_RESET 4 //REQUIRED BY SSD1306 LIBRARY
- Adafruit_SSD1306 display(OLED_RESET); //DEFINE THE OLED AS display
- void setup() {
- Serial.begin(9600); //SERIAL COMMS FOR DEBUGGING
- pinMode(A0,INPUT); //DEFINE A0 AS AN INPUT
- pinMode(3,OUTPUT); //DEFINE D3 AS AN OUTPUT
- display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //START UP THE OLED
- display.display(); //SHOW BUFFER
- display.clearDisplay(); //CLEAR BUFFER
- }
- void loop() {
- potRead = analogRead(A0); //READ THE POTENTIOMETER @ A0
- pwmOut = map(potRead, 0, 1023, 125, 255); //CONVERT THE 0-1023 VAULE OF THE POT TO THE 0-255 VALUE PWM USES
- display.setTextSize(1); //SETUP OLED WITH TEXT SIZE OF 1
- display.setTextColor(WHITE); //SETUP OLED WITH COLOR WHITE
- display.setCursor(0,0); //SETUP OLED WITH CURSOR IN UPPER LEFT
- display.print("Analog Val: "); //PRINT HEADING TO OLED BUFFER
- display.println(potRead); //PRINT POT VALUE (A0) TO OLED BUFFER AND NEWLINE
- display.print("PWM Val: "); //PRINT HEADING TO OLED BUFFER
- display.println(pwmOut); //PRINT PWM VALUE (D3) TO OLED BUFFER AND NEWLINE
- display.display(); //SHOW WHATS IN THE OLED BUFFER
- delay(100); //WAIT 100mS
- display.clearDisplay(); //CLEAR THE DISPLAY
- analogWrite(3,pwmOut); //OUTPUT A PWM VALUE TO PIN D3 TO CONTROL THE FAN SPEED
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement