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
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.
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.
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
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
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.
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