Controlador de giro y velocidad de Arduino

Implemente el control de un motor DC conectado al puerto de I/O digitales que constara de 4
pulsadores y un potenciómetro, que funcionara de la siguiente manera:

  • Si presiona P1, establece que el motor debe girar a la derecha.
  • Si presiona P2, establece que el motor debe girar a la izquierda
  • Si presiona P3 una vez, se activa la lectura del potenciómetro que servirá para establecer la
    velocidad de giro del motor (debe considerar que el motor debe estar conectado a los pines PWM)
    en la terminal de Arduino debe mostrarse el valor de la velocidad del motor establecida por medio
    del potenciómetro si está a la mitad de su velocidad debe mostrar 50%, si está a su velocidad
    máxima debe mostrar 100% y así sucesivamente, después de establecer el valor necesario por
    medio del potenciómetro debe presionar una vez más P3 para confirmar la velocidad de operación
    del motor.
  • Después de establecer el sentido de giro del motor y la velocidad al presionar P4, se pondrá en
    marcha el motor y en la terminal del IDE se mostrara el sentido de giro del motor y la velocidad.
    Debe considerar que los pulsadores solamente deben presionarse una vez; no deben mantenerse
    presionados para que realicen su función; también debe de tener claro que solamente cuando se
    presione P3 se pondrá en marcha o se detendrá el motor.

Necesito ayuda con este ejercicio