Tachymètre et écran LCD

Bonjour je voudrais réaliser un tachimètre avec un écran LCD sur arduino. Je débute donc je regarde des tutos sur youtube.

Le schéma est en pièce jointe est le code est le suivant:

#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,6,5,4,3);
float value=0;
float rev=0;
int rpm;
int oldtime=0;
int time;

void isr() //interrupt service routine
{
rev++;
}

void setup()
{
lcd.begin(16,2);                //initialize LCD
attachInterrupt(0,isr,RISING);  //attaching the interrupt
}

void loop()
{
delay(1000);
detachInterrupt(0);           //detaches the interrupt
time=millis()-oldtime;        //finds the time 
rpm=(rev/time)*60000;         //calculates rpm
oldtime=millis();             //saves the current time
rev=0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("___TACHOMETER___");
lcd.setCursor(0,1);
lcd.print(     rpm);
lcd.print(" RPM");
lcd.print("   ");
attachInterrupt(0,isr,RISING);

}

Selon le schéma mon tachymètre est branché en D2 mais ce dernier n'est pas définie dans mon programme. La compilation est cependant correcte.

J'attends de recevoir le matériel pour mettre en oeuvre ma maquette et j'aimerai avoir plus d'explication sur ce code est notamment sur D2.

Bonjour
Merci de rééditer le message ci dessus pour mettre le code entre balises 'code' (icône </>) comme demandé dans les messages épinglés et au passage indenter correctement le code.

D2 est référencé de manière indirecte dans la fonction attachInterript(0,.....)
Voir içi le lien entre numéro d'interruption et broche

Bonjour loomis12

al1fch:
D2 est référencé de manière indirecte dans la fonction attachInterript(0,.....)

C'est pourquoi il est préférable d'utiliser la syntaxe

attachInterrupt(digitalPinToInterrupt(pin), fonctionAlancer, RISING)
detachInterrupt(digitalPinToInterrupt(pin))
Comme préconisé sur Arduino Reference.

Pour toi:

#define tachoPin 2                                   // Broche du TACHOMETRE

attachInterrupt(digitalPinToInterrupt(tachoPin), isr, RISING);
detachInterrupt(digitalPinToInterrupt(tachoPin));

Ca évite d'utiliser des ports sans le savoir.

Cordialement
jpbbricole

Super merci de l'info je vais reprendre mon code