generatore ad onda quadra

Ciao ragazzi sono nuovo di questo forum, quindi è la prima volta che lo uso, passo subito al dunque.
Devo costruire un generatore di onde quadre che siano comprese fra una frequenza minima di 50 Hz e una massima di 300 Hz. Il tutto vorrei gestirlo con un potenziometro e visualizzare sul monitor seriale la frequenza in uscita. E qui arriva il dubbio io ho scritto un programma di questo tipo:

int frequenza=0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(A0, INPUT);
}

void loop()
{
frequenza=analogRead(0);
digitalWrite(13, HIGH);
delay(frequenza);
digitalWrite(13, LOW);
delay(frequenza);
}

Come faccio a comprendere la frequenza fra due valori?
e come faccio a visualizzare la frequenza in uscita sul monitor seriale?
Grazie mille a tutti!!!!

Usa tone() in questo modo:

int frequenza=map(analogRead(A0),0,1023,50,300);
Serial.println(frequenza);
tone(13,frequenza);

Grazie mille funziona alla perfezione

Se usi il delay in quel modo, confondi frequenza con periodo.

metallarox:
Ciao ragazzi sono nuovo di questo forum,

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

  • qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
  • qui le pinout delle varie schede by xxxPighi: Pinout
  • qui una serie di link generali utili: Link Utili
    Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare.
    Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.