Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Per usare gli ingressi dell'Arduino con il pull-up integrato nel chip devi definire tutti gli ingressi che usi in questo modo:
- */
- pinMode(TExDCO, INPUT_PULLUP);
- pinMode(it1primo, INPUT_PULLUP);
- /*
- etc etc fino all'ultimo ingresso utilizzato.
- Poi dovrai sostituire HIGH con LOW dove vai a testare lo stato degli ingressi.
- Ad esempio in queste istruzioni
- */
- if (TExDCO==HIGH);
- while(it2primo==HIGH);
- /*
- che però sono tutte e due sbagliate! Dopo la condizione testata nell'if o nel while non devi mettere il ;
- Le istruzioni condizionali come if o while eseguono tutto il codice contenuto nelle parentesi graffe che seguono la condizione. Se ometti le parentesi verrà eseguita la ria successiva e solo quella, nel tuo caso il ; ovvero un'istruzione che non fa nulla. Tutto il resto che hai messo tra parentesi viene eseguito SEMPRE.
- Passiamo al buzzer. Quello che hai aggiunto alla fine non è un'istruzione ma una funzione solo che questo codice non solo non farà quello che ti aspetti, ma non verrà nemmeno compilato. I nomi delle funzioni DEVONO essere univoci e tu invece hai definito due volte il
- */
- void loop(){...}
- /*
- Ora non sò cosa deve fare questo sketch, ma se le tue intenzioni sono quelle di far suonare ad intermittenza un buzzer questo accadrà solo se le condizioni tetate con gli if o con i while non sono vere per via dell'uso smodato di delay. Quando il micro esegue il delay, fa quello che il nome suggerisce... ritarda di un tempo x ogni cosa.
- Per avere il buzzer ad intermittenza sempre funzionante puoi riscrivere la funzione cosi e richiamarla con " buzzer(); " ogni volta che ti serve
- */
- // millis() restituisce il numero di millisecondi passati da quando Arduino è stato avviato
- unsigned long tempo = millis();
- const int intervallo = 200;
- int BuzState = LOW;
- // definiamo la funzione di nome buzzer che restituisce un tipo void in uscita, ovvero nulla: esegue le istruzione e basta ;)
- void buzzer()
- {
- if( millis() - tempo > intervallo)
- {
- // Aggiorno il tempo pronto per un nuovo ciclo
- tempo = millis();
- // Inverto lo stato della variabile e imposto il buzzer di conseguenza
- BuzState = !BuzState;
- if(BuzState)
- tone(suoneria,2500,700);
- else
- noTone(suoneria);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement