搞不懂怎么用pwm对直流电机调速

搞了一天了,电机可以转,但是我不能通过按键来控制pwm信号从而实现直流电机的调速,帮看看哪里出问题了,走投无路了已经
arduino,以下是我的代码
int ena = 11;
int in1 = 9;
int in2 = 10;
int button1 = 3;
int button2 = 5;
int button3 = 6;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;

void setup() {
pinMode(button1,INPUT);
pinMode(button2,INPUT);
pinMode(button3,INPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);

}
void loop (){
digitalWrite(in2,HIGH);
digitalWrite(in1,LOW);//电机开始转
analogWrite(ena,151);
buttonState1 = digitalRead(button1);
buttonState2 = digitalRead(button2);
buttonState3 = digitalRead(button3);

if (buttonState1==HIGH){
analogWrite(ena,250);
delay(1000);
}
if(buttonState2 == HIGH){
analogWrite(ena,50);
delay(1000);
}
if(buttonState3 == HIGH){ //
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
//

先断开负载,看看PWM输出引脚有没有按照程序逻辑变化占空比,没有的话就检查代码驱动和逻辑,有的话就检查电机驱动器的好坏