I timer interni di Arduino -

Поделиться
HTML-код
  • Опубликовано: 8 июл 2024
  • In questo video affronto il tema dei timer interni di Arduino, che possono essere collegati a un'interrupt che risveglia una funzione definita dall'utente o setta un flag. I timer sono utili per svolgere periodicamente delle operazioni di controllo o verifica e agiscono in una modalità simile a un background.
    Sorgenti, schemi e slide:
    github.com/zmaker/arduino_coo...
    Indice dei video:
    www.zeppelinmaker.it/arduino100/
    Puoi scaricare gratuitamente i miei libri:
    "Il manuale di Arduino - gumroad.com/l/arduino
    "Il cookbook di Arduino": gumroad.com/l/arduinocookbook
    Altre informazioni e libri sul mio sito: www.zeppelinmaker.it
    I sorgenti su github:
    github.com/zmaker/arduino_coo...

Комментарии • 39

  • @marcotribia7285
    @marcotribia7285 5 лет назад +3

    questa è una signora lezione......sono incazzato nero con le scuole superiori di questi ultimi anni.......dove al massimo insegnano ad usare arduino ma senza neanche troppa insistenza......mio nipote dopo 5 anni non sa nemmeno cosa è un micropic e sono io che solo grazie a persone come te che ho imparato qualcosa....devo spiegargli le cose...bravissimo

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +4

      Grazie a te. Le scuole sono in grosse difficoltà, non solo economiche. Sono pochi i professori che sanno guardare oltre "al programma". A mio figlio insegnano "coding"... dovresti vedere come! Una pena. La scuola sta cercando di inseguire un mondo che è troppo veloce per lei... il problema è che è difficile anche aiutarli. Ho provato ad offrire gratuitamente delle giornate con la stampante 3D e non mi hanno neppure risposto.

  • @iginoticconi7751
    @iginoticconi7751 3 года назад

    Sei un grande! Hai la capacità di spiegare cose difficilissime in maniera elementare. Complimenti

  • @Groucho92
    @Groucho92 2 года назад

    Grazie, adesso vado a vedermi i diversi modi operativi, mi ricorda i corsi di microcontrollori e l'arduino prende tutta una nuova dimensione!

  • @ifaber68
    @ifaber68 5 лет назад

    Molto interessante ...Programmazione avanzata, mi piace! :-)

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +4

      ehh il mio pubblico diventa sempre più esigente! ;-)

  • @MarcoRizzinelli
    @MarcoRizzinelli 4 года назад

    Grazie

  • @TonyYtb
    @TonyYtb 3 года назад

    Grande Paolo, argomento molto interessante, insegnaci a programmare in assembly.

    • @taraabt1866
      @taraabt1866 3 года назад

      fidati e difficile ma una volta imparate le basi inizia ad essere piu facile

  • @luigi_com
    @luigi_com 5 лет назад

    Non potresti ma devi approfondire :)
    Grande video Paolo.

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +2

      ho qualche altro approfondimento... tipo i watchdog... arrivano!

  • @ADVICESTECHNO
    @ADVICESTECHNO 3 года назад

    Grazie per i tuoi video e per il tuo metodo di insegnamento , come posso fare a fare dei blink su porte es pinMode(12, OUTPUT);
    pinMode(13, OUTPUT); in sincronia con un buzzer di modo che si accendano e si spengono allo stesso tempo ? ho scritto tutto a 1000 ms ma non va

  • @ziobit5177
    @ziobit5177 5 лет назад

    Ciao Paolo, quindi se ho capito bene posso settare il prescaler ad esempio 1/1 per velocizzare l'esecuzionianche di tutti i miei progetti in generale? grazie

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +3

      Ciao. No, non è proprio così. I timer sono indipendenti dall'esecuzione del codice. Per sveltire le cose dovresti sostituire il quarzo. Il max valore utilizzabile è di 20 Mhz. Vanno poi impostati anche i fuses del micro (www.engbedded.com/fusecalc/)

  • @elettronicaemotori
    @elettronicaemotori 5 лет назад

    Ciao e grazie della lezione specifica sui timer. Una cosa mi preme capire e cioè se uno o piu di uno dei timer si possono azzerare a mia discrezione tramite lo sketch da un evento ben preciso.

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад

      Credo di si ma devo andare a verificare. Credo si possa impostare il valore a piacere. So che si può fare anche per modificare il numero di millis rilevato da arduino...

  • @simonemerlino9076
    @simonemerlino9076 5 лет назад +1

    Ciao Paolo, molto interessante questo video, avevo anche letto qualcosa sul tuo libro, non mi è chiaro solo il &2, modulo 2, c’entra qualcosa coi puntatori ?
    Ciao grazie e complimenti !

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +1

      Ciao. No, il tick%2 calcola il modulo 2 di tick, dividendo tick per 2. Il resto (il modulo 2) varrà sempre e solo 0 o 1. = se pari e 1 se dispari e quindi si usa questo metodo per fare il cambio di stato.

    • @simonemerlino9076
      @simonemerlino9076 5 лет назад

      Ah ok..... capito scusami mi ero perso un passaggio
      Grazie mille

  • @83sascio
    @83sascio 5 лет назад

    Posso far partire il timer quando serve a me tipo dopo aver schiacciato un pulsante e dopo aver fatto qualcosa per n-tempo interrompere il timer? va settato per forza nel void setup{ }?
    grazie

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад

      Ciao, si chiama timer, ma in realtà continua a scattare... è più un clock. Per fare come dici tu servono un po' di variabili di stato e forse questo non è il sistema più adatto

    • @claudiopizzi3901
      @claudiopizzi3901 3 года назад

      @@zeppelinmaker Per "spegnere" il timer si potrebbe impostare il prescaler su 0

  • @jacksparrow794
    @jacksparrow794 4 года назад

    Ciao innanzitutto complimenti per la lezione. Non ho compreso ha cosa serve l istruzione TCNT1=0

  • @davidenessi87
    @davidenessi87 3 года назад

    Secondo lei sarebbe necessario usare questi timer per creare un orologio per gli scacchi oppure è sufficiente sfruttare la funzione millis()?

    • @zeppelinmaker
      @zeppelinmaker  3 года назад +1

      dovresti misurare il tempo... basta usare millis().

  • @user-si6zu6wp7n
    @user-si6zu6wp7n 5 лет назад

    un piccolo dubbio, magari ho un po' di confusione e mi piacerebbe un chiarimento:i timer, dipendendo direttamente dal clock imposto dal quarzo , presumo che blocchino tutte le operazioni finché non si verifica l'evento che azzera il counter e questo potrebbe spiegare perché ad esempio la funzione delay blocca il loop e non vengono eseguite altre operazioni finché non termina il conteggio, ma allora come fa ad esempio la funzione millis() ad evitare questo blocco?

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +2

      I timer e il watchdog (ne parlo in un prox video) girano in modo indipendente dal codice. Delay() è bloccante per come è stata implementata. La trovi nel file \hardware\arduino\avr\cores\arduino\wiring.c del "core" di arduino e se vai a vedere realizza la "pausa" con un ciclo while... ecco perché blocca tutto!

    • @user-si6zu6wp7n
      @user-si6zu6wp7n 5 лет назад

      @@zeppelinmaker grazie per il chiarimento, aspetto il prossimo video, darò un'occhiata al file appena mi sarà possibile

  • @Mikyzo86
    @Mikyzo86 4 года назад +1

    Ciao! Grazie del video Paolo, davvero chiaro! Cerco di riassumere per vedere se ho capito però, perché non mi torna una cosa. Il clock "originale" viaggia a 16 Mhz, cioè cambia stato 16 milioni di volte al secondo. Grazie al prescaler, la variabile 'tick' aumenta di 1 ogni 256 cambi di clock, vale a dire 16000000/256 = 62500 volte al secondo. Il led si accende/spegne ad ogni aumento del tick... quindi dovrebbe farlo 62500 volte al secondo! Però dalla schermata del Serial alla fine non è così... dove sbaglio? Grazie mille a chiunque voglia rispondere! :-)

    • @jimiandrix9748
      @jimiandrix9748 3 года назад +3

      Ciao Mikael, il timer 1 usato da Paolo è a 16 bit, quindi va in overflow ogni 2^16 = 65536 incrementi di "tick". Per questo vedi il cambio di stato dopo poco più di un secondo (che corrisponde, come hai detto tu, a 62500 incrementi di "tick"). Da neofita di Arduino, aveva stupito anche me:)

    • @Mikyzo86
      @Mikyzo86 3 года назад

      @@jimiandrix9748 grazie!

  • @drw0if
    @drw0if 5 лет назад +2

    Sì pliz approfondisci! Quale sarebbe il link per saperne di più, che questo argomento mi interessa particolarmente!

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад +5

      Il link è questo: sites.google.com/site/qeewiki/books/avr-guide/timers-on-the-atmega328

    • @drw0if
      @drw0if 5 лет назад

      @@zeppelinmaker Grazie mille!!

  • @giuseppesaffioti3651
    @giuseppesaffioti3651 5 лет назад

    Ciao mi aiuteresti a creare uno sketch che abbia la funzione di un timer azionato da un pulsante che parte un relè che rimanga acceso 15 poi stacca apre un altro relè che rimanga acceso 5 minuti è poi termina il ciclo che xó abbia un pulsante di reser che si può stoppare quando si vuole grazie mille

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад

      Ciao. Ti consiglio di cercare nella playlist i video che parlano delle macchine a stati...

    • @giuseppesaffioti3651
      @giuseppesaffioti3651 5 лет назад

      Grazie mille se mi aiuteresti a scriverlo mi faresti un grande favore 🙏

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад

      @@giuseppesaffioti3651 in fondo alla homepage di zeppelinmaker.it trovi le modalità