salve a tutti sto ancora alle prese con il mio progetto.....
ma stasera la scheda è impazzita non mi da piu lo stato basso!!!
nel caso piu semplice quando voglio accendere e poi spegnere il led mi rimane sempre acceso!!!!
questo anche con il buzzer e altri componenti...
cosa è successo alla mia scheda??? si è danneggiata???
ecco il codice non penso che stia sbagliando qualcosa impossibile è banalissimo!!
Ciao,
la scheda funziona benissimo
Il problema è che dopo lo spegnimento del led, non hai nessun delay.
Arduino arrivato a quella riga, che è l'ultima del loop, riparte dalla prima del loop stesso, dove accendi il led.
L'esecuzione è talmente veloce che il tuo occhio non se ne accorge, e ti sembra che il led rimanga sempre acceso.
niente da fare anche aggiungendo il delay..... ora mi lampeggia ad intermittenza
è quello che gli stai dicendo di fare.... accendi il led, attendi un secondo, spegni il led, attendi un secondo, etc etc etc
noto ke le luci tx e rx sono spente morte e insieme al lampeggiare del led lampeggia anche il led giallo incorporato sulla skeda!!!!
non stai trasmettendo e/o ricevendo dati, pertanto i led RX e TX stanno spenti.
Sulla scheda c'è un led, che è collegato al piedino 13, proprio quello che stai usando, che quindi farà la stessa cosa (si accende, attende un secondo, si spegne, etc etc etc).
dedicarci un poco di tempo, che ti aiuteranno a fare più chiarezza sul codice, a partire dalle cose base:
Poi, in merito alla tua richiesta: come avrai modo di leggere sui link sopra, arduino esegue continuativamente il codice che è inserito nel loop.
Quindi, per fare accendere e spegnere il led una sola volta, ci sono più metodi.
Il primo è quello di mettere le istruzioni (che vuoi vengano eseguite solo 1 volta) nel setup (che è la funzione chiamata appena accesa o resettata la board) .
Altrimenti, se vuoi tenere le tue istruzioni nel loop, puoi usare una variabile di controllo che dopo il primo spegnimento del led fai variare.
Ci son poi altri modi ma credo che con uno di questi due dovresti risolvere le tue esigenze.
const int led = LED_BUILTIN; // se da errore sostituisci con 13 ;-)
void setup() {
pinMode (led, OUTPUT);
digitalWrite (led,HIGH);
delay(1000);
digitalWrite (led,LOW);
}
void loop () {
// il resto del codice...
}
Non è un problema strano. E che come dice Guglielmo, c'è da studiare.
ragazzi ecco il mio codie con questo antifurto sto impazzendo.. cmq grazie mille siete grandi mi state dando una gran mano!!
ho risolto ho messo il codice nel loop riprovando ed è andato
cmq ora che mi trovo vorrei esporvi 2 intoppi
il come avete potuto ben capire sto cercando di realizzare un antifurto per un modellino di casa domotica,
materiali un modulo infrarosso un led rgb , buzzer, ricevitore tsop con telecomando.
io lo vorrei realizzare attivando e disattivando la barriera ir composta dal modulo e fin qui ci sono poi quando è attiva il buzzer mi emette 2 suoni e il led rosso lampeggia lasciando acceso il rosso quando la barriera è disattivata mi fissa il rosso con un suono lungo e lasciando il verde fisso fin qui ci siamo.... quando è attivo e la barriera s' interrompe lrg con il buzzr mi simula la sirena della polizia ... ma il problema è un altro .. quando predispongo il modulo è come se va in conflitto tutto .... forse dovrei optare qualcosa di piu semplice .. poi ho notato ke mettendo solo il buzzer con il modulo senza i led e come se il modulo non mi va poi togliendo il buzzer mi funziona forse problema di masse??? posto il codice
int blu=9;
int verde=10;
int rosso=11;
int buzzer=8;
#include <IRremote.h> // use the library
int receiver = 12; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;
void setup(){
pinMode (blu,OUTPUT);
pinMode (verde,OUTPUT);
pinMode (rosso,OUTPUT);
Serial.begin(9600); // for serial monitor output
irrecv.enableIRIn(); // Start the receiver
pinMode (buzzer,OUTPUT);
}
void loop (){
if (irrecv.decode(&results)) // have we received an IR signal?
{
Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
irrecv.resume();// receive the next value
}
if ( results.value == 0xFFA25D){ //tasto 4 sul telecomando
digitalWrite (rosso,LOW);
digitalWrite(rosso, HIGH);
delay(200);
digitalWrite (buzzer,HIGH);
delay (300);
digitalWrite (rosso,LOW);
delay(200);
digitalWrite (buzzer,LOW);
delay (300);
digitalWrite(rosso,HIGH);
delay (200);
digitalWrite (buzzer,HIGH);
delay(300);
digitalWrite (rosso,LOW);
delay (200);
digitalWrite (buzzer,LOW);
delay (300);
digitalWrite (verde,HIGH);
}
if ( results.value == 0xFFE21D){
digitalWrite (verde,LOW);
digitalWrite (rosso,HIGH);
digitalWrite (buzzer,HIGH);
delay(1000);
digitalWrite (rosso,LOW);
digitalWrite (buzzer,LOW);
delay(1000);
digitalWrite (rosso,HIGH);
}
}
poi il monitor seriale dei valori della barriera mi va in conflitto con i valori del telecomando e come se quelli del telecomando non riescono a comparire anche se aumento il delay del monitor seriale... premetto che per questo progetto metto piu' sensori anche gas e temperatura il monitor impazzisce come mi consigliate di ridistribuire la cosa grazie mille!!