Tinkercad Interrupt pir

Tinkercad interrupt pir unisce un sensore pir ad un arduino per mostrarti come funziona un interrupt e come funziona sull’arduino uno.

La serie di articoli a cui questo tutoril si unisce è quella dedicata alle semplici lezioni per comprendere Arduino e basata sul simulatore tinkercad.

Trovi le precedenti lezioni catalogate qui.

Tinkercad interrupt pir

In questo tutorial dal titolo “tinkercad interrupt pir” ho deciso di unire un sensore pir, classico, ad un esperimento che probabilmente hai già letto: Tutorial: Arduino interrupt

L’obiettivo di entrambi i progetti è dimostrati, in modo pratico, come funziona l’interrupt in arduino ed in generale in elettronica.

Grazie al tutoril online ed al simulatore tinkercad potrai verificare il circuito e modificarlo per comprendere a pieno i concetti esposti.

Trovi questo mio esempio condiviso qui e puoi copiarlo nella tua area di lavoro e modificarlo come meglio preferisci.

Video tutorial: Tinkercad interrupt pir

Ecco il video tutorial dedicato alla simulazione con tinkercad dell’esperimento:

anche in questo, come nei precedenti, trovi sia la parte dedicata alla realizzazione dello schema elettronico sia quella della scrittura del codice.

Eseguendo la simulazione vedrai i due led rosso e verde lampeggiare in modo indipendente, controllati dal ciclo di loop() ed il led giallo che si accende solo se il sensore pir rileva qualche ostacolo.

Dopo 10 cicli di loop, dall’accensione del led giallo, quest’ultimo si spegnerà per effetto della variabile interruptCount che si incremneta di 1 ad ogni ciclo di loop.

Sketch e descrizione

Lo sketch che ho utilizzato, e che hai visto nel video, è il seguente:

#define ledR 8
#define ledG 7
#define ledY 12
int interrCount = 0;

void setup() 
{
  pinMode( ledR,OUTPUT );
  pinMode( ledG,OUTPUT );
  pinMode( ledY,OUTPUT );
  
  digitalWrite( ledR,0 );
  digitalWrite( ledG,0 );
  digitalWrite( ledY,0 );
  
  attachInterrupt(0, interruptChange, RISING );
}

void loop() {
  interrCount++;
  
  digitalWrite( ledR,1 );
  digitalWrite( ledG,0 );
  delay(300);
  digitalWrite( ledR,0 );
  digitalWrite( ledG,1 );
  delay(300);
  
  if ( interrCount == 10 ) 
  {
    interrCount = 0;
    digitalWrite( ledY,0 );
  }
  
}

void interruptChange() 
{
  digitalWrite( ledY,1 );
}

che è del tutto identico allo sketch spiegato nel Tutorial: Arduino interrupt e che eviterò di rispiegare in quanto pupo andare a leggere direttamente dal link indicato tale spiegazione.

Ho deciso di non riscrivere in modo differente lo sketch in quanto trovo interssante la continuità data da un articolo scritto qualche anno fa e oggi simulato online.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/tinkercad-interrupt-pir.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.