su una uscita del pin arduino il led collegato che si accende e si spegne ogni 500ms con funzione millis la sua intensità luminosa è molto bassa qual'è il motivo? non ho messo nemmeno la resistenza di protezione altrimenti non si accendeva proprio arduino è collegato alla porta USB
Grazie........
La resistenza và messa sempre, il tuo deve essere un led vecchio o rotto, i vecchi led rossi si accendevano decentemente solo con 20mA, mentre i nuovi led ad alta luminosità si devo vedere benissimo anche con 2mA
Hai dimenticato di definire il pin come uscita?
Ciao Uwe
Sottoscrivo quel che dice Uwe, se non hai definito il tuo pin come OUTPUT tramite la funzione pinMode , il pin non erogherà abbastanza corrente per far accendere il led completamente.
Oppure hai semplicemente usato una resistenza terribilmente grande
pas600 ha scritto che il led lampeggia e non ha messo nessuna resistenza
icio:
pas600 ha scritto che il led lampeggia e non ha messo nessuna resistenza
Pardon, me l'ero perso, allora a maggior ragione dovrebbe essere un problema di pinMode
Sketch please
La sfera di cristallo mi ha fatto vedere che nel tuo sketch manca il pinMode.
Questo trucco mi ha aiutato molte volte:
connetti il led al 5v di arduino fisso, poi connetti un potenziometro da 10k al catodo del led e al GND. Poi scorrendo con il potenziometro da 0 a 10k ohm provi a vedere se c'è un punto dove il led è abbastanza luminoso. Poi prova a misurare la resistenza a cui sei arrivato
Forse è meglio riferirsi al datasheet del LED o ai valori standard.
I valori sulla carta non sempre corrispondono a quelli effettivi
ok, ma ti ci voglio con un potenziometro da 10K trovare il valore giusto
Quando l'ho fatto io avevo usato il multimetro per trovare il valore
si, non ne dubito, altrimenti come avresti potuto misurare la resistenza
Quello che volevo dire e' che in un potenziomentro da 10K, l'escursione tra , ad esempio, 150 Ohm e 330 Ohm e' minima
Su quello hai ragione. Non so se mi è andata solo di fortuna durante il mio esperimento, allora.
unsigned long time;
int livello_acqua = 5;
int resistenza = 2;
int elettrovalvola = 3;
int spia = 9;
int in_funzione = 0;
int count = 0;
void setup(){
time = millis();
pinMode (livello_acqua,INPUT);
pinMode (resistenza,OUTPUT);
pinMode (elettrovalvola,OUTPUT);
pinMode (spia,OUTPUT);
}
void loop(){
in_funzione = digitalRead(livello_acqua);
if (in_funzione==LOW){
if(count==0){
digitalWrite (elettrovalvola,LOW);
digitalWrite (resistenza,HIGH);
}
if(count==1){
delay(5000);
digitalWrite (elettrovalvola,LOW);
digitalWrite (resistenza,HIGH);
count=0;
}
}
if (in_funzione==HIGH){
count=1;
digitalWrite (resistenza,LOW);
digitalWrite (elettrovalvola,HIGH);
if(millis()>=time+500){
digitalWrite(spia,HIGH);
if(millis()>=time+500){
digitalWrite(spia,LOW);
time=millis();
}
}
}
}
Il led in questione è chiamato spia e sta sul Pin 9, preciso che il led è nuovo ma ho gia provato a sostituirlo con altri ed ho provato pure con l'alimentazione di arduino e funziona regolarmente
Grazie........
:%
ciao.
Se leggo bene tu il led non lo fai lampeggiare ma lo accendi e lo spegni subito
if (in_funzione==HIGH){
count=1;
digitalWrite (resistenza,LOW);
digitalWrite (elettrovalvola,HIGH);
if(millis()>=time+500){
digitalWrite(spia,HIGH); // QUI LO ACCENDI
if(millis()>=time+500){
digitalWrite(spia,LOW); // E QUI LO SPEGNI SUBITO
time=millis();
tra il primo if(millis... ) e il secondo non c'è nessuna differenza. se è vero il primo è vero anche il secondo.
p.s. metti la resistenza
ciao
pippo72
Basta un Blink without Delay che hai negli esempi per far lampeggiare il led.
Ti consiglio di cambiare quella variabile che si chiama "time" in un altro modo, è già usata dal core arduino in molte librerie e mi ha creato a oggi non pochi problemi.
Ok Grazie facendoli cambiare stato tutto si risolve ho cambiato anche la variabile "time"
Grazie..............
e metti una resistenza prima di rompere il LED o Arduino.
Ciao Uwe