Tensioni massime con Arduino Due

Ciao a tutti, sono finalmente entrato in possesso di Arduino Due e ho subito una domanda per quanto riguarda le tensioni di lavoro. Ho letto che le vecchie shield non sono spesso compatibili con questa nuova scheda perchè accetta massimo 3,3V dai vari pin di cui è dotata. In casa ho trovato un sensore di prossimità che vorrei utilizzare con Arduino ma, a prove fatte, fa uscire come segnale una tensione che è uguale a quella a cui lavora il sensore (che può variare da un minimo di 6V ad un massimo di 36V). Mi confermate quindi che tale sensore non può essere collegato ad Arduino Due? In tal caso avrei anche un altro sensore, che fornisce un segnale da circa 1V. Questo andrebbe bene, giusto?

Vi faccio queste domande perchè le varie voci sulle tensioni operative di Arduino mi hanno creato un po' di confusione nella mente e vorrei evitare di creare danni sin da subito :)

Grazie in anticipo, Michele

il primo sensore che hai parlato (quello da 6V a 36V) non puoi collegarlo a meno che non vuoi friggere l'arduino devi usare un partitore di tensione qualcosa di simile per diminuire la tensione mentre per l'altro sensore (quello da 1V) dovrebbe funzionare ma non ne sono sicuro

Ok, grazie per la conferma… ne ero praticamente certo ma ho preferito comunque chiedere per evitare di scartare strade che magari andavano bene. Qualcuno sa per qualcosa per il sensore da 1V?

Per il sensore da 1V va bene , comunque per sicurezza meti una resistenza da 2k2 inserie tra l'uscita del sensore e l'ingresso analogico

Smicuz96: Vi faccio queste domande perchè le varie voci sulle tensioni operative di Arduino mi hanno creato un po' di confusione nella mente e vorrei evitare di creare danni sin da subito :)

Le tensioni massime sono specificate molto bene ed in grassetto nella pagina della DUE: http://arduino.cc/en/Main/ArduinoBoardDue

Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Providing higher voltages, like 5V to an I/O pin could damage the board.

Grazie a tutti. Alla fine ho collegato il sensore di prossimità da 1V e riesco a leggere correttamente i valori di ingresso tramite analogRead. Tuttavia, se provo a usare la funzione pulseIn (il sensore mi servirà come una sorta di contechilometri), la funzione ritorna sempre 0 e sembra non rilevare gli sbalzi di tensione... Sapreste dirmi dove sbaglio? Non so più dove sbattere la testa... Il sensore è collegato all'ingresso analogico A0 e la tensione scende a 0 quando un metallo è presente nel suo raggio di rilevamento, quindi ho impostato la funzione pulseIn su HIGH in quanto, per terminare il conteggio dell'intervallo, dovrebbe aspettare che il segnale scenda a LOW... Ho provato anche il contrario (anche se so che non ha senso), ma non cambia niente.

int pin=A0;
unsigned long duration;
int val;

void setup() {
  pinMode(pin, INPUT);
  Serial.begin(9600);
}

void loop() {
  duration=pulseIn(pin, HIGH);
  val=analogRead(pin);
  
  Serial.println(val);
  Serial.println(duration);
  Serial.println("");
}

Michele

EDIT: mi rispondo da solo xD Ho scoperto che la funzione pulseIn funziona solo con gli input digitali (e, adesso che ci penso, è una cosa più che sensata) e ho risolto tutto affidandomi alla funzione millis per calcolare gli intervalli di tempo tra un rilevamento e l'altro. Grazie ancora a tutti, se ci saranno altri problemi non esiterò a contattarvi :)