tone() e Arduino DUE

Ho la necessità di far emettere un beep di allarme con Arduino DUE ma ahimè la nuova scheda non accetta la funzione tone().

La scuola ha acquistato svariate schede Arduino DUE e io già avevo poca esperienza con la UNO …

Come posso risolvere il problema?
Grazie per i vostri consigli

Qui degli utenti forniscono un codice, non sò se funziona: http://forum.arduino.cc/index.php?topic=363557.0

Sulla DUE hai sicuramente diverse possibilità ... ... le prime due che mi vengono in mente :

1, potresti scrivere una piccola routine che simula quello che fa una tone() ... in pratica fai un ciclo di digitalWrite() una volta LOW ed una volta HIGH con frequeza pari a quella che vuoi ottenere.

  1. sulla DUE hai un vero DAC e quindi, volendo, potresti generare una sinusoide e, collegando un amplificatorino all'uscita analogica, generare un vero suono.

Guglielmo

gpb01: Sulla DUE hai sicuramente diverse possibilità ... ... le prime due che mi vengono in mente :

1, potresti scrivere una piccola routine che simula quello che fa una tone() ... in pratica fai un ciclo di digitalWrite() una volta LOW ed una volta HIGH con frequeza pari a quella che vuoi ottenere.

  1. sulla DUE hai un vero DAC e quindi, volendo, potresti generare una sinusoide e, collegando un amplificatorino all'uscita analogica, generare un vero suono.

Guglielmo

Sarebbe molto bello se ci riuscissi. Non so cosa sia il DAC. Forse se mi dai qualche dritta: documenti su cui studiare, esempi o altro te ne sarei molto grato. Ciao

ADC sono i pin analogici di Arduino (anche la Uno) dove converti un segnale elettrico da analogico a digitale. Utile per leggere ad esempio il valore di un fotoresistore, variabile in analogico a seconda della luce, ma converti quel valore in digitale con un valore tra 0 e 1023 (10 bit) il DAC (no c'e' sulla Uno) fa l'inverso, dato un valore digitale ottieni un valore analogico (una tensione penso sulla due tra 0 e 3,3V partendo da valori tra 0 e 4095 ovvero 12 bit) A questo link sezione "12 Bit Analog Output" un esempio per una MCU a 32 bit tipo la Due, ma secondo me meglio supportata (per la due ci sono poche librerie)

nid69ita: il DAC fa l'inverso, dato un valore digitale ottieni un valore analogico (una tensione penso sulla due tra 0 e 3,3V)

Esatto Nid ;)

>crc57: DAC = Digital to Analog Converter ... se prendi il datasheet del SAM3X8E ARM Cortex-M3 che è montato sulla DUE vedi che esso dispone di "2-channel 12-bit 1 msps DAC".

Il funzionamneto è descritto, nel suddetto datasheet, dal capitolo 43 di pagina 1317 e seguenti.

Per l'uso con le funzioni di Arduino guarda, nel reference, la analogWriteResolution() e le note correlate.

Guglielmo