Attachinterrupt Arduino Uno

Unsere Idee ist es gewesen den Motor dauerhaft mit dem schnellsten Speed zu betreiben und dann den Speed zu verändern sobald der Sensor ein Signal abgibt. Da haben wir gedacht wenn Sensor 1 ein Signal abgibt wird der Speed zu Speed 1 verändert und beim zweiten Sensor dann zu Speed 2. Die Idee das mit einen Interrupt umzusetzen kam von unserem Professor, also wenn es einen einfacheren gibt wäre das auch gut.
Unser Problem beim ersten Sketch war nämlich, dass der Motor sofort in die Ausgansgeschwindigkeit zurückkam sobald der Sensor der Magneten passiert hat und das würden wir durch das Ändern vom Speed lösen.

Habe leider die genaue Nummer vom Sensor nicht parat, da ich gerade im Elternhaus bin, aber so einen in etwa ist es:
https://www.conrad.de/de/hallsensor-ah3041ua-45-24-vdc-messbereich-0006-0006-t-to-92-loeten-1424990.html?gclid=EAIaIQobChMIzsG59Ofc1wIVDhMbCh0tEghgEAQYAiABEgLjJvD_BwE&insert_kz=VQ&hk=SEM&WT.srch=1&WT.mc_id=google_pla&s_kwcid=AL!222!3!231682495412!!!g!!&ef_id=WhkznAAAALbxZCVM:20171126175602:s

der bisher verwendete Sketch nutze nur einen Sensor und 2 Geschwindigkeiten und den Interrupt nur, um die langsamere Geschwindigkeit zu halten. (was unser Professor als sehr unschön erachtet hat)

//Motor 1
const int motorPin1 = 9;
const int motorPin2 = 10;
//Hallsensor
const int hallPin = 11;
int hallState = 0;

void setup(){
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(hallPin, INPUT);
  attachInterrupt(0,hallPin,CHANGE);
}

void loop(){
  
  digitalWrite(motorPin1,LOW);
  analogWrite(motorPin2,HIGH);
  
  hallState = digitalRead(hallPin);
  if (hallState==LOW){
    digitalWrite (motorPin1, LOW);
    int speed = 150;
    analogWrite (motorPin2,speed);
    delay(3000);
}
}