sketch

salve. Sapreste dirmi se possibile come mai quando carico questo sketch non succede nulla? lo sketch senza le funzioni per l interruttore e senza le funzioni && funziona. Grazie.

const int pin = 0; // analog pin
float millivolts; //dichiarazione di variabile tensione
int sensor;
const int G_LED = 7;
const int Y_LED = 8;
const int X_LED = 13;
const int buttonPin = 12;
int buttonState = 0;

void setup() {
Serial.begin(9600); // inizializza la comunicazione seriale

pinMode(G_LED, OUTPUT);
pinMode(Y_LED, OUTPUT);
pinMode(X_LED, OUTPUT);
pinMode(2, OUTPUT); //relè1
pinMode(4, OUTPUT); //relè2
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
sensor = analogRead(pin); //lettura valore del sensore messo sull'ingresso analogico A0
millivolts = ( sensor/1023.0)*5000; //formula per ottenere la tensione di uscita dal sensore in millivolts
Serial.println(sensor); //stampa su serial monitor del valore restituito dal conv. A/D a 10 bit di Arduino(da 0 a 1024)
Serial.print(millivolts); //stampa su serial monitor del valore di tensione in millivolts
Serial.println(" millivolts");
// accendi il led
if (analogRead(pin)==0 && digitalRead(buttonState),LOW) {
digitalWrite(G_LED,HIGH);
digitalWrite(Y_LED,HIGH);
digitalWrite(X_LED,LOW);
digitalWrite(2,HIGH);
digitalWrite(4,HIGH);
}
else if (analogRead(pin)==0 && digitalRead(buttonState),HIGH) {
digitalWrite(G_LED,HIGH);
digitalWrite(Y_LED,LOW);
digitalWrite(X_LED,HIGH);
digitalWrite(2,LOW);
digitalWrite(4,LOW);
}
else if (analogRead(pin)==600 && digitalRead(buttonState),HIGH) {
digitalWrite(G_LED,LOW);
digitalWrite(Y_LED,HIGH);
digitalWrite(X_LED,HIGH);
digitalWrite(2,HIGH);
digitalWrite(4,HIGH);
}
delay(1000);
}

Per favore, il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare.
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Spiega anche cosa c'e' di collegato e cosa dovrebbe fare.

errori vari sulle istruzioni

&& digitalRead(buttonState),HIGH) >>>> errore
&& digitalRead(buttonState),HIGH) >>>> errore{
==600 && digitalRead(buttonState),HIGH) >>>>errore

Potresti dirmi come scrivere quelle istruzioni per favore (&& digitalRead.....). Grazie.

ilrogia:
Potresti dirmi come scrivere quelle istruzioni per favore (&& digitalRead.....). Grazie.

Nello stesso modo che hai scritto la prima condizione del if.

if (analogRead(pin)==600 && digitalRead(buttonState),HIGH) {

Ciao Uwe

Scusami Uwe, potresti essere più chiaro per favore

if (analogRead(pin)==600 && digitalRead(buttonState)==HIGH) {

Guarda la differenza tra questa riga e quella che hai scritto te che uwefed ti ha riportato nel post più su...

if (analogRead(pin)==600

poi mi accorgo adesso che praticamente é impossibile che un valore analogico letto é proprio 600.
Devi usare un range.

Ciao Uwe

Grazie, appena posso modifico lo sketch, comunque si il valore per adesso è indicativo e basta.

Scusami @ilrogia, io non ti ho scritto la soluzione, perchè pensavo fosse evidente che sapessi che un confronto puro con una variabile si fa con un == e a mio parere @marinaio67 ha sbagliato a darti la riga completa (senza rancori marinaio non lo hai aiutato...)

Questo mostra che arduino è sempre più usato tramite copia e incolla, non è lo scopo di questo forum, non è lo scopo di questa piattaforma ... dal mio punto di vista molto ma molto razionale e istintivo bisognerebbe lasciare perdere ciò che non è alla nostra portata o almeno studiare le basi.

pablos:
Scusami @ilrogia, io non ti ho scritto la soluzione, perchè pensavo fosse evidente che sapessi che un confronto puro con una variabile si fa con un == e a mio parere @marinaio67 ha sbagliato a darti la riga completa (senza rancori marinaio non lo hai aiutato...)

La cosa è molto opinabile... Specificare ad un utente che un confronto si fa con == è un'informazione che avrò visto comunemente dare un'infinità di volte da chiunque qui sul forum... Ora spiegami cosa ho fatto io di diverso facendogli confrontare le due linee, visto che gli era già stato detto, prima da te e poi da uwe, quali istruzioni stava sbagliando.

Quando mai non si apre una polemica ... fai conto che non abbia detto niente .. fai un reset :slight_smile:

pablos:
Quando mai non si apre una polemica ...

@Pablos ... divertiti QUI :smiley:

Guglielmo

gpb01:
@Pablos ... divertiti QUI :smiley:

C'è poco da divertirsi, discussione chiusa (meno male) e utente bannato per tre giorni :smiley:

:slight_smile: :slight_smile: si l'ho seguita dall'inizio alla fine :slight_smile: Ma era una discussione vostra già abbastanza accesa, c'è stato molto fraintendimento tra le parti e infine una punizione eccessiva secondo me, però come spesso capita quando il cervello è collegato direttamente alle mani senza filtri si può risultare più aggressivi di quello che si è davvero, se poi non si scende a compromessi :slight_smile: ...purtroppo capita

vedi qui sopra seguendo il tuo esempio Guglielmo ... poco ci scappa un'altra lite ... ahahahhaahaha
Ma infondo chi ce lo fa fare :slight_smile:

Esagerati.... litigare per queste min... ehm... per queste minuzie.

Però! Quanti spunti ha dato una sola precisazione! :slight_smile:
Ci tengo a precisare che i post di pablos mi ispirano sempre simpatia... Ciò non vuol dire che non si possa ogni tanto fare un'amabile polemica... Se si resta nei limiti del rispetto è spesso anche divertente :slight_smile:

p.s. @pablos - il pulsante del reset sono anni che lo cerco senza esiti positivi... fortunatamente vado in overflow più spesso che millis e mi azzero da solo :slight_smile:

pablos:
Ma infondo chi ce lo fa fare :slight_smile:

... difatti è quello che, ogni volta che vedo certe cose, mi chiedo ! ::slight_smile: ::slight_smile: ::slight_smile:

Guglielmo

ciao @pablos, capisco e condivido pienamente la tua opinione. Tengo a precisare che ho risolto il problema con le mie umili competenze, soluzione diversa da quella qui sopra suggerita. Sono un futuro perito meccanico (con scarsissime competenze di elettronica e elettrotecnica). Ho realizzato un progetto per l'esame e avrei voluto aggiungere un "pizzico" di automazione. Comunque sono riuscito a terminare lo sketch ed il cablaggio dei componenti quindi credo che non disturberò più almeno per adesso con domande per molti banali.
Capisco che per voi esperti è uno strazio leggere queste cose, capita anche a me.

ilrogia:
Capisco che per voi esperti è uno strazio leggere queste cose, capita anche a me.

Sbagliato ilrogia,
se fosse uno strazio non saremmo qui ...

Quello che pablos intendeva dire e che stava suggerendo hai più navigati, era di NON postare codice già bello che fatto, poiché poi, la tentazione, da parte di chi fa domande di fare copia/incolla, è sicuramente forte ma il risultato è di aver imparato poco.

E' bene invece cercare di spiegare la teoria, ma senza dare la soluzione, così che, chi pone le domande, si sforza, capisce/studia e riesce a realizzare da solo quello che vuole ... con il risultato che IMPARA :slight_smile:

E' anche il mio punto di vista, per il quale mi batto sempre .. del resto ritengo che lo scopo del forum e della comunità, sia "far crescere" le persone, non fornirgli la "pappa fatta" con cui, alla prossima difficoltà ... sono da capo a dodici. ::slight_smile:

Spero tu capisca e sia concorde con noi :wink:

Guglielmo