Strumenti Utente

Strumenti Sito


encoder_arduino

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
encoder_arduino [2019/03/09 10:19] – creata adminencoder_arduino [2021/01/19 12:27] (versione attuale) – [Interrupt] admin
Linea 6: Linea 6:
  
   * progetto 2 (tachimetro digitale) del testo, pag 439   * progetto 2 (tachimetro digitale) del testo, pag 439
-  * fotoaccoppiatore a forcella Siemens SFH 910 ({{ :riservata:sfh900.pdf |datasheet}})+  * fotoaccoppiatore a forcella Siemens SFH 910 ({{ :sfh900.pdf |datasheet}})
   * [[https://www.arduino.cc/en/Reference/AttachInterrupt|interrupt]] in Arduino   * [[https://www.arduino.cc/en/Reference/AttachInterrupt|interrupt]] in Arduino
   * [[http://gammon.com.au/interrupts|guida dettagliata sugli interrupt]]   * [[http://gammon.com.au/interrupts|guida dettagliata sugli interrupt]]
Linea 18: Linea 18:
 int encoder = 2; int encoder = 2;
 // variabile globale che conta gli impulsi dell'encoder // variabile globale che conta gli impulsi dell'encoder
-volatile int contatore = 0;+volatile unsigned int contatore = 0;
 // velocità in giri al minuto // velocità in giri al minuto
 int vel; int vel;
Linea 30: Linea 30:
 void setup() { void setup() {
   // pin encoder impostato come input   // pin encoder impostato come input
-  pinMode(encoder, INPUT);+  pinMode(encoder, INPUT_PULLUP);
   // imposto l'interrupt sul pin dell'encoder e assegno la funzione da chiamare    // imposto l'interrupt sul pin dell'encoder e assegno la funzione da chiamare 
   // quando è presente un fronte di salita   // quando è presente un fronte di salita
Linea 45: Linea 45:
     tempoReset = tempoTrascorso;     tempoReset = tempoTrascorso;
     // calcolo la velocità     // calcolo la velocità
-    vel = (contatore / risoluzione) * 60; +    vel = (contatore * 60) / risoluzione
-    Serial.print("velocità: ");+    Serial.print("velocita': ");
     Serial.print(vel);     Serial.print(vel);
     Serial.println(" giri/min");        Serial.println(" giri/min");   
encoder_arduino.1552126746.txt.gz · Ultima modifica: 2020/07/03 15:58 (modifica esterna)