problema en codigo

buenas tardes compañeros como están soy nuevo en el tema de programación y quisiera saber si me pueden ayudar quiero realizar una señal como la que adjunto

los datos son los siguientes

  1. que cuando el potenciometro este en el mínimo me de una frecuencia de 254.79Hz y el periodo sea de 3.92ms

  2. cuando el potenciometro este en su punto máximo me de una frecuencia de 684.81Hz y el periodo sea de 1.46ms

ya logre realizar la señal pero tengo dos problemas.

  1. quisiera saber si con el mapeo que tengo para la frecuencia puedo variar el tiempo de salida del pin 12

  2. invertir la señal ya que me da el pulso largo negativo y lo necesito positivo

de antemano agradezco su valiosa colaboración
adjunto imagen de las conexiones así como esta debe funcionar

const int ledPin =  12;      // salida para el pulso alto 
int pinPot = A0;               // entrada del potenciometro
int pinLed = 9;                // salida del pwm
int valorPot;
int parpadeo;
int ledState = LOW;             
long previousMillis = 0;        

long intervalOn = 4;           
long intervalOff = 1000;         
void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(pinLed, OUTPUT);     
}

void loop()
{
     valorPot = analogRead(pinPot);
   parpadeo = map(valorPot, 0, 1023, 647, 1870); 
   digitalWrite(pinLed, HIGH);
   delayMicroseconds(parpadeo);
   digitalWrite(pinLed, LOW);
   delayMicroseconds(parpadeo);
  unsigned long currentMillis = millis();
  if (ledState == LOW) {
    if(currentMillis - previousMillis > intervalOff) {
            previousMillis = currentMillis;   
            ledState = HIGH;
    }
} else {
    if(currentMillis - previousMillis > intervalOn) {
           previousMillis = currentMillis;   
          ledState = LOW;
    }
}
digitalWrite(ledPin, ledState);
}
[
/code]

Hola diegocorrea, bienvenido. En primer lugar debes editar tu mensaje y poner todo tu código dentro de las etiquetas code.

Luego decirte que para leer el valor de un potenciometro debes conectar los extremos entre +5V y GND y el centro a un pin analógico que van marcados como A0 a A5. Obtendrás valores entre 0 y 1023 dependiendo de la posición del cursor del potenciometro.

Luego podrías usar la función map() que podrias usar la libreria Tone.h para generar frecuencias entre 31 y 4978 Hz pero nunca podrás hacer esas frecuencias tan raras.