Leggere tensione su Analog

Salve a tutti…
quello che dovrei fare è questo.

Sapere se in A0 - A1 e A2 c’è corrente. Mio padre ha collegato un pulsante con due fili come il seguente schema http://imagebin.org/180189

È possibile leggere quanta tensione c’è o solamente se c’è tensione su A0? ovviamente a quanto pare dovrebbe darmi come valori 5 volt (come da schema)

Ringrazio tutti!

Inizia a leggere dal reference: http://arduino.cc/en/Reference/AnalogRead

Grazie ma ho letto quel link pero in quell esempio misura il led. Io devo misurare la tensione di 5v e leggerla su A0 non di un led

1 quello schema non vi è nessun pulsante ma è un trimmer (resistenza variabile).
2 è fatto male perchè così collegato non vai da 5V o 0V ma da 5V a un valore oscillante.

se poi devi leggere un pulsante non leggi in analogico ma in digitale.

io sono partito da qui, domande ne ho fatte ma visto che da quello che ho capito sia di programmazione che di elettronica sei molto a digiuno parti da li, inizi a capire qualche principio. poi studia le resistenze, un po sui condensatori, un po sui transistor e sulle resistenze in particolare impara la legge di ohm.
poi impara anche cos’è un diodo e vedrai che la vita ti verrà molto più semplice :wink:

non voglio criticare ma parti da ’ come tutti XD

Grazie per aver risposto Avrò sbagliato schema in poche parole al posto di una resistenza variabile ho un bottone. Che quando lo premo deve mandarmi la tensione su A0 in modo che poi Andro a leggerla Mio padre e elettricista e mi sta dando una mano nei collegamenti. In poche parole ho collegato un filo sul pin 5v al bottone e dal vittime ad A0 se non erro. E solo per testare una qualsiasi lettura di valori su A0.

Per primo le entrate analogiche leggono tensione e non corrente. Per poter leggere valori affidabili non puoi mai lasciare un entrata in aria senza collegamento ( nel Tuo caso col pulsante aperto) Devi mettere una resistenza abbastanza grande (intorno ai 10kOhm) tra entrata e il postivo ( o negativo ) e il pulsante tra entrata e l' altro polo.

Cosí hai una tensione anche col pulsante aperto.

Usa un entrata digitale.

http://arduino.cc/en/Tutorial/Button http://arduino.cc/en/Tutorial/DigitalReadSerial

Ciao Uwe

Quella porta è un input analogico-digitale, se gli mandi 5v leggerai 1023 se lo metti a GND leggerai uno 0, con un pulsante non hai vie di mezzo, secondo me stai sbagliando ingresso. Con un pulsante devi usare le input-output port che leggono valori 0/1 se settate come INPUT o inviano valori 0/1 se settate come OUTPUT. Se voui vedere valori di tensione cambiare dovrai usare resistenze di diverso valore, comunque il numero resituito non sarà in volt ma una conversione in digitale.

Non è molto chiaro quello che vuoi fare, se lo spieghi magari ti si può indirizzare meglio.

ciao

Ok appena arrivo a casa leggo i link. Sono con il cellulare. Non mi interessa sapere il valore preciso ma solo se arriva tensione. Ionio poche parole la logica e questa.

Se la tensione arriva su A0 stampa a monitor "tensione OK" altrimenti "Tensione OFF". Spero mi sia spiegato. Il tutto non verrà con un bottone ma con un finecorsa

Allora come di ha detto uwefed usa il button/tutorial, usare una A0..A1 ecc non ha senso.

ciao

Ok adesso sto guardando il button tutorial

Quindi devo collegare il finecorsa ad digitalPin?

ripeto.. quello che devo fare io è:

Apro il garage. Non appena la serranda si aprirà tutta, arduino mi dovrà comunicare che si è aperto! stessa cosa quando si chiude...

Quindi non devo collegare nulla al analog input?

roxdragon: Quindi devo collegare il finecorsa ad digitalPin?

ripeto.. quello che devo fare io è: Apro il garage. Non appena la serranda si aprirà tutta, arduino mi dovrà comunicare che si è aperto! stessa cosa quando si chiude... Quindi non devo collegare nulla al analog input?

Sí i finecorsa sul pin digitale. Non devi collegare nulle sui input analogico (eccetto che fai delle altre cose che non hai ancora detto). Sappi che le entrate analogiche puoi usare anche come pin digitale gestendole nello stesso modo come quelli digitali (pinMode(), digitalWrite(), digitalRead() ). A0 a A5 diventano 14 a 19. Se hai un arduino con A6 e A7 (come l' arduino Nano) quelli NON possono essere pin digitali! La differenza fondamentale é a livello programmazione. I pin digitali sono oiú semplice gestirli sul sketch. ciao Uwe

Bene... Grazie! mentre guardavo i tutorial, ho trovato questo:

/*
  Analog input

 reads an analog input on analog in 0, prints the value out.

 created 24 March 2006
 by Tom Igoe
 */

int analogValue = 0;    // variable to hold the analog value

void setup() {
  // open the serial port at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog input on pin 0:
  analogValue = analogRead(0);

  // print it out in many formats:
  Serial.println(analogValue);       // print as an ASCII-encoded decimal
  Serial.println(analogValue, DEC);  // print as an ASCII-encoded decimal
  Serial.println(analogValue, HEX);  // print as an ASCII-encoded hexadecimal
  Serial.println(analogValue, OCT);  // print as an ASCII-encoded octal
  Serial.println(analogValue, BIN);  // print as an ASCII-encoded binary
  Serial.println(analogValue, BYTE); // print as a raw byte value

  // delay 10 milliseconds before the next reading:
  delay(1000);
}

l'ho provato... e mi stampa questi valori: Quando il bottone è ON dovrebbe mandare la tensione della scheda su A0

Bottone OFF 440 440 1B8 670 110111000

Bottone ON ¸ 1023 1023 3FF 1777 1111111111

Bottone OFF ÿ 401 401 191 621 110010001 ? Vi sembra corretto?

No direi che non va bene, sai qual'è il problema? Fai domande perchè non conosci e devi imparare come me e molti altri, pero' non ascolti e non segui i consigli di persone che ti hanno risposto con certezza di come va fatto, tu continui a seguire la strada dell' A0 e poi non ottieni quello che vuoi, chiedendo ancora aiuto. Rileggi da capo tutto il trhead la soluzione funzionante al 100% ce l'hai qui sopra, ripetere sarebbe inutile

ciao

uwefed: Per primo le entrate analogiche leggono tensione e non corrente. Per poter leggere valori affidabili non puoi mai lasciare un entrata in aria senza collegamento ( nel Tuo caso col pulsante aperto) Devi mettere una resistenza abbastanza grande (intorno ai 10kOhm) tra entrata e il postivo ( o negativo ) e il pulsante tra entrata e l' altro polo.

Cosí hai una tensione anche col pulsante aperto.

Usa un entrata digitale.

http://arduino.cc/en/Tutorial/Button http://arduino.cc/en/Tutorial/DigitalReadSerial

Ciao Uwe

Intendevi questo??? Ok scusatemi... allora ricapitolando tutto.

Da adesso userò un digitalpin... e poi con la funzione digitalread() leggo il valore???

Grazie per la vostra immensa pazienza!

si

Ok allora il mio collegamento è fatto così:

*ho un bottone ON/OFF

Ho collegato il bottone ai 5v della scheda ethernet e dal bottone ho fatto uscire un filo che va sul pin 13. Adesso lui dovra leggermi il valore, non appena setto a ON il bottone.

Il collegamento è ok? sto facendo tutto pian piano! non vorrei sbagliarmi e fare qualche danno. GRazie