I have been working on a project for work. It is basically supposed to simulate fans turning on at different speeds at different temperatures. I am using an Andymart Talon SR speed controller (am 2505) to drive the fans. It requires a PWM signal. Can I
just put a analog write command just before each delay I have in my code for the duty cycle the fans should be on?
#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#define WHITE 0x7 // These #defines make it easy to set the backlight color
void setup() {
Serial.begin(9600);
lcd.begin(16, 2); // set up the LCD's number of columns and rows:
lcd.setBacklight(WHITE);
lcd.setCursor(0, 0);
lcd.print(" Cooling Fan");
lcd.setCursor(0, 1);
lcd.print("Amps 4.8 160 F");
delay(2500);
lcd.setCursor(0, 1);
lcd.print("Amps 5.1 163 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 5.3 165 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 5.5 168 F");
delay(2500);
lcd.setCursor(0, 1);
lcd.print("Amps 5.7 170 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 5.9 172 F");
delay(1900);
lcd.setCursor(0, 1);
lcd.print("Amps 6.1 174 F");
delay(2500);
lcd.setCursor(0, 1);
lcd.print("Amps 6.3 176 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 6.6 178 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 7.1 181 F");
delay(2500);
lcd.setCursor(0, 1);
lcd.print("Amps 7.4 183 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 7.9 188 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 8.6 190 F");
delay(2500);
lcd.setCursor(0, 1);
lcd.print("Amps 9.1 193 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 9.4 195 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 9.7 199 F");
delay(2500);
lcd.setCursor(0, 1);
lcd.print("Amps 10.3 202 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 10.9 206 F");
delay(1800);
lcd.setCursor(0, 1);
lcd.print("Amps 11.5 212 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 11.0 207 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 10.5 204 F");
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Amps 9.8 199 F");
delay(1500);
lcd.setCursor(0, 1);
lcd.print("Amps 9.3 196 F");
delay(3000);
lcd.setCursor(0, 1);
lcd.print("Amps 9.1 193 F");
delay(1250);
lcd.setCursor(0, 1);
lcd.print("Amps 8.6 190 F");
delay(1200);
lcd.setCursor(0, 1);
lcd.print("Amps 8.3 188 F");
delay(1100);
lcd.setCursor(0, 1);
lcd.print("Amps 8.0 185 F");
delay(1200);
lcd.setCursor(0, 1);
lcd.print("Amps 7.7 182 F");
delay(1100);
lcd.setCursor(0, 1);
lcd.print("Amps 7.5 179 F");
delay(1000);
lcd.setCursor(0, 1);
lcd.print("Amps 7.2 176 F");
delay(1100);
lcd.setCursor(0, 1);
lcd.print("Amps 6.9 173 F");
delay(1200);
lcd.setCursor(0, 1);
lcd.print("Amps 6.5 169 F");
delay(1000);
lcd.setCursor(0, 1);
lcd.print("Amps 6.1 164 F");
delay(1000);
lcd.setCursor(0, 1);
lcd.print("Amps 5.7 160 F");
delay(1500);
lcd.setCursor(0, 1);
lcd.print("Amps 0.0 158 F");
delay(1000);
lcd.setCursor(0, 1);
lcd.print("Amps 0.0 156 F");
delay(1250);
}
void loop() {
}