Utilizzo fotoresistori

Ciao tutti..ho un problema e non so se è possibile o meno..io vorrei fare in modo che se il valore della fotoresistenza cresce da 500 a 1023 ad esempio mi si accende una luce mentre se va da 1023 a 500 ad esempio si . Si può?se si come?

Grazie a tutti

ripeti la domanda che non mi è chiara dal punto di vista grammaticale...
se va da 1023 a 500 si spegne la luce?

SteColle:
Ciao tutti..ho un problema e non so se è possibile o meno..io vorrei fare in modo che se il valore della fotoresistenza cresce da 500 a 1023 ad esempio mi si accende una luce mentre se va da 1023 a 500 ad esempio si . Si può?se si come?

Grazie a tutti

Non vi si chede molto, ma almeno le domande formulatele bene è a tutto vantaggio vostro :sweat_smile:

Prima che arrivino i grandi Capi è meglio presentarsi nell'apposita sezione del Forum, in seconda battuta leggere e comprendere il relativo regolamento. :wink:

Tornando ontopic, da 0 a 500 cosa deve fare la luce? Mantenere lo stato precedente?
Bisogna partire sapendo che la fotoresistenza è un componente lineare, quindi può tornare valori che si discostino l'uno dall'altro anche solo di un paio di punti.

Se il valore passa da 500 a 512, cosa deve fare? E se passa da 1023 a 1018?
Vuoi che arduino faccia da interruttore automatico, tipo il crepuscolare?
La fotoresistenza è influenzata dalla luce che abbiamo acceso, oppure è protetta?

Forse è meglio che specifichi in modo più approffondito cosa vuoi ottenere, in modo che possiamo darti un aiuto più puntuale possibile. :wink:

Credo che questo link possa esserti di aiuto, soprattutto il primo link al suo interno ti spiega per filo e per segno ciò che ti serve, poi basta inserire solo due if per accendere/spegnere la tua luce.

SteColle:
Ciao tutti..ho un problema e non so se è possibile o meno..io vorrei fare in modo che se il valore della fotoresistenza cresce da 500 a 1023 ad esempio mi si accende una luce mentre se va da 1023 a 500 ad esempio si . Si può?se si come?

Grazie a tutti

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Come già detto sopra, dalla domanda non si capisce nulla. "da 500 a 1023 mi si accende luce... da 1023 a 500 si.."
"Si" che? In un caso cresce e nell'altro decresce? e nei due casi, uno accende luce e nell'altro che fa?

Si scusate mi si è cancellato per errore..Spiego meglio..Quando i valori del sensore vanno da 1023 a 500 decrescendo voglio che la luce del mio LED diminuisca di intensità..mentre quando vanno da 500 a 1023,crescendo quindi, la luce del mio LED aumenti di intensità.

I valori di incremento o decremento non devono dipendere dal valore del sensore ma sono già stati stabiliti (quindi non devo utilizzare il remap sul valore del sensore).

Spero di essere stato chiaro adesso..
grazie a tutti

In questo Topic trovi un semplice schema per collegare una foto resistenza ad un pin analogico di arduino.

ora i valori restituiti dal pin dipendono dalle caratteristiche tecniche della fotoresistenza e dalla quantità di luce che la colpisce.

con un semplice programma come questo, puoi leggere sulla seriale i valori restituiti

int Pin = A0;
int Valore = 0;
 
void setup() {
  Serial.begin(9600); // configurazione seriale
  pinMode( Pin, INPUT); // configurazione pin
}
 
void loop() {
  Valore = analogRead(Pin); // lettura valore            
 
  Serial.print("Valore = " );
  Serial.println(Valore);   // Invio valore     
 
  delay(1000);
}

cosi puoi rilevare i valori e fare un programmino tipo :

int Pin = A0;
int Valore = 0;
 
void setup() {
  Serial.begin(9600);
  pinMode( Pin, INPUT);
}
 
void loop() {
  Valore = analogRead(Pin);            
 if(Valore <= ???){
// inserisce quello che vuoi
} else if(Valore > ??? || Valore <=&&&&){
// metti quello che voui 
} else {
// Altrimenti attivi quello che vuoi
}
  delay(1000);  // tempi di attesa tra una lettura e la successiva a piacere
}

Mi sembra di essere stato chiaro.
:wink:
P.s. se su Google scrivi arduino fotoresistenza ottieni molte più informazioni di quelle che hai ottenuto qui.

SteColle:
Si scusate mi si è cancellato per errore..Spiego meglio..Quando i valori del sensore vanno da 1023 a 500 decrescendo voglio che la luce del mio LED diminuisca di intensità..mentre quando vanno da 500 a 1023,crescendo quindi, la luce del mio LED aumenti di intensità.

I valori di incremento o decremento non devono dipendere dal valore del sensore ma sono già stati stabiliti (quindi non devo utilizzare il remap sul valore del sensore).

Spero di essere stato chiaro adesso..
grazie a tutti

forse è meglio se spieghi quel che devi realizzare. Da quello che dici nella seconda frase, a me pare che ci sia proporzionalità tra valore sensore e luce del led.
Non capisco perchè dici di non poter usare un remap del valore del sensore.

Per sapere se cresce e decresce devi memorizzare il valore del sensore e confrontarlo con il vecchio valore (logicamente la prima volta non puoi avere un "vecchio" valore, a meno di leggerlo nel setup)

Se i valori di 500 e 1023 sono reali, e non due numeri buttati a caso io farei così.

#define LED 9;
#define Pin A0;
 
void setup() {
  pinMode(Pin, INPUT);
  pinMode(LED, OUTPUT);
}
 
void loop() {
  Valore = analogRead(Pin);             // Leggo il valore della fotoresistenza
  Brightness = Valore-513;              // Imposto il valore massimo di Brightness a 510 (1023-513)
  Brightness = Brightness/2;            // Imposto il valore massimo di Brightness a 255 (510/2)
  if (Brightness < 0) Brightness = 0;  // Imposto il valore minimo di Brightness a 0
  analogWrite(LED, Brightness);       //  Passo il tutto all'output
  delay(100);
}

Come ti diceva nid, in altro modo devi creare una variabile OldValore, con la quale confronti Valore e poi agisci di conseguenza.

Brado:
Come ti diceva nid, in altro modo devi creare una variabile OldValore, con la quale confronti Valore e poi agisci di conseguenza.

Ottima idea..penso sia quello che mi serva..devo solo capire come si fa..=) grazie mille..

valore = analogRead(Pin);
se valore > xxx

    se valore > oldvalore
        aumenta luminosità
        oldvalore = valore

    se valore < oldvalore
        diminuisci luminosità
        oldvalore = valore

altrimenti spegni led