PWM question

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() {
}

Do you have a link for that device?

Below is the link for the unit I am going to use.

http://www.andymark.com/Talon-p/am-2505.htm

The site says:

Input PWM signal: 0.9-2 ms @ 333 Hz

That’s pretty similar to a RC servo control signal, and one of the feedback comments says that it worked fine with a standard 50Hz servo control signal. In that case you could use the Servo library to generate a suitable control signal.

Ok, so if my understanding is correct I would use the servo.write command. A 0 will fans off, and 180 will be fans full power. And I will have to figure out the in between. This seems pretty strait forward.

The write() method takes a nominal servo (angular) position and outputs the corresponding pulse length based on an assumed relationship between pulse length and position. This is convenient when you just want to move a servo around. You can also use the writeMicroseconds() method to specify the pulse length directly. That might make more sense in your case given that the spec sheet for the driver defines the pulse lengths exactly.

You can use the map() function to do the conversion from an arbitrary representation of speed such as a percentage figure, to the corresponding pulse length. (It's only a trivial bit of arithmetic, but using map() avoids you having to reinvent it.)

So what is the difference between the two methods? I'm new to this but they both look like they do the same thing. I am assuming the Talon controller is mimicking a servo. And the output of the servo(Talon Controller) controls the speed of the motor.

So what is the difference between the two methods?

Way I understand it, is that in the end the two ways are the same: the servo way just takes the drudge out of us having to convert the degrees we want into the pulse characteristics. The servo way does that under the hood, and sends a pulse of the correct characteristics, which we could of course do longhand.