Salve amici,
da qualche giorno sto iniziando i miei primi esperimenti con arduino, per quanto riguarda la parte Hardware non sto trovando molte difficoltà, ho un pò di problemi con la programmazione.
Sto cercando di creare un semplice codice che attivi un led sulla porta 13 quando il pin 1 è HIGH.
Cominciamo col dire che l'analogRead() richiede solo un paramentro e cioè la porta di cui vuoi leggere il valore. Avrai di ritorno un valore compreso tra 0 e 1023. Le porte a cui fare riferimento per la lettura analogica sono appunto le analogiche: A0, A1, A2, An..
Quindi non puoi usare il pin 1 a questo scopo, sia perchè non è analogico ed in secondo luogo perchè insieme allo 0 è utilizzato per il caricamento dei tuoi sketch.
Hai detto che vuoi attivare il pin 13 quando hai un valore alto su di un altro ingresso, quindi devi verificarne lo stato prima di agire:
se pin analogico è alto:
attiva pin 13
Che si traduce in:
if(analogRead(Ax)==1023){
digitalWrite(13,1);
}
Gira un po' nel reference tra le voci digitalRead(), digitalWrite(), analogWrite() ed analogRead()
int ledPin = 11;
int inPin = 10;
int val = 0;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(inPin, INPUT);
}
void loop(){
val = digitalRead(inPin);
if(digitalRead(inPin)!=0){
digitalWrite(ledPin, HIGH);
}else {
digitalWrite(ledPin,LOW);}
}
anche in questo modo non funziona, ho il dubbio che ci sia anche un problema hardware, infatti quando premo il pulsante i led su arduino si spengono!!!
vi posto lo schema sperando nell'aiuto di qualchuno...
Prova a leggere questo, dovrebbe chiarirti alcune cose. Il tipo è bravo nello spiegare.
Noterai che il led è collegato a GND sul corto, mentre sul lungo collega il pin 13.
Inoltre, almeno la mia, breadboard se collego GND/5+ nelle file sopra, non ho nulla su quelle due sotto
Nel codice, non un errore ma solo per dire che non serve a nulla la variabile var; la leggi e non ne fai nulla. Sarebbe meglio così (oppure la togli)