Advertisement
TolentinoCotesta

Daniele

Jun 5th, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. /*
  2. Per usare gli ingressi dell'Arduino con il pull-up integrato nel chip devi definire tutti gli ingressi che usi in questo modo:
  3. */
  4. pinMode(TExDCO, INPUT_PULLUP);
  5. pinMode(it1primo, INPUT_PULLUP);  
  6. /*
  7. etc etc fino all'ultimo ingresso utilizzato.
  8.  
  9. Poi dovrai sostituire HIGH con LOW dove vai a testare lo stato degli ingressi.
  10. Ad esempio in queste istruzioni
  11. */
  12. if (TExDCO==HIGH); 
  13. while(it2primo==HIGH);
  14.  
  15. /*
  16. che però sono tutte e due sbagliate! Dopo la condizione testata nell'if o nel while non devi mettere il ;
  17. 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.
  18.  
  19. 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
  20. */
  21.  
  22. void loop(){...}
  23. /*
  24. 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.
  25.  
  26. Per avere il buzzer ad intermittenza sempre funzionante puoi riscrivere la funzione cosi e richiamarla con " buzzer(); " ogni volta che ti serve
  27. */
  28.  
  29. // millis() restituisce il numero di millisecondi passati da quando Arduino è stato avviato
  30. unsigned long tempo = millis();
  31. const int intervallo = 200;    
  32. int BuzState = LOW;    
  33.  
  34. // definiamo la funzione di nome buzzer che restituisce un tipo void in uscita, ovvero nulla: esegue le istruzione e basta ;)
  35. void buzzer()
  36. {
  37.   if( millis() - tempo > intervallo)
  38.   {
  39.     // Aggiorno il tempo pronto per un nuovo ciclo
  40.     tempo = millis();      
  41.     // Inverto lo stato della variabile e imposto il buzzer di conseguenza
  42.     BuzState = !BuzState;  
  43.     if(BuzState)
  44.       tone(suoneria,2500,700);
  45.     else
  46.       noTone(suoneria);  
  47.   }    
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement