Compatibilité entre un code fonctionnant dans un Arduino Nano et un ATtiny85

Bonjour, j’ai réalisé un code pour:

  • allumer 2 Leds Flash avec une entrée qui change d’état;
  • Monter un relais lorsqu’un capteur a effet hall envoi une fréquence supérieure à un consigne.
    Le code fonctionne très bien dans le NANO mais pas dans l’ATtiny85.

JE suis convaincu que c’est un problème de déclaration des E/S de l’ATtiny.

Je ne trouve pas de syntaxe des spécifs de ce µP

Voici le code “NANO”

/*************************************
*  Flash et controle de débit        *
*  pour CNC6040 avec un ATtiny85     *
*  flash-et-debit-Nano  Juil 17  *
**************************************/
/****************************
* Définition des constantes *
*****************************/
int laps1 = 20; // temps d'allumage LEDS
int laps2 = 100; //temps d'extinction des LEDS
int consigne = 0;
int consigne2 = 0;
int Etatcommand = 0;  
unsigned long duree,dureeH,dureeL,duree2;


// Entrée
int CommandeFlash =A5;  //
int entreemesure = 4; // 
int analogconsigne =A2; //

//Sortie
#define LED_SORTIE  2 // pin 4 patte 3 LED flash
#define SortieDebitCorrect 3  // pin 3 patte 2 Débit correct
 
void setup()
{
  pinMode(entreemesure, INPUT);
  pinMode(entreemesure, INPUT_PULLUP);
  pinMode(CommandeFlash , INPUT);  // on déclare le "CommandeFlash" en entrée (2) 
  pinMode(analogconsigne, INPUT);
  digitalWrite(CommandeFlash, LOW); //on active la résistance de pull-up en mettant la broche à l'état bas (mais cela reste toujours une entrée)

 /**************************
 * Declaration des sorties *
 **************************/
  pinMode(LED_SORTIE, OUTPUT ); //on declare LedAensortie en sortie 
  digitalWrite(LED_SORTIE, LOW);//On force la sortie au repos.
  pinMode(SortieDebitCorrect, OUTPUT ); //on declare LedCensortie en sortie (entreemesure 13)
  digitalWrite(SortieDebitCorrect, LOW );//On force LedCensortie au repos.
 Serial.begin(9600);
  
}
  
void loop()
{
consigne = analogRead(analogconsigne);

dureeH = pulseIn(entreemesure, HIGH);
dureeL = pulseIn(entreemesure, LOW);
duree = dureeH+dureeL;
duree2 = (duree/150);
if (duree2 >=(consigne) || duree2 <10)
//      238.40 = 41Hz = 45L/h
//duree2 = 993 = 10Hz = 10L/h
//duree2 = 198 = 50Hz = 55L/h
//duree2 = 99 = 100Hz = 110L/h
{
digitalWrite(SortieDebitCorrect,LOW);
}
else
{
  digitalWrite(SortieDebitCorrect,HIGH);
}

Etatcommand    = analogRead(CommandeFlash);

if (Etatcommand >= 800)
{
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);

} 
delay(500);
Serial.print("duree2  :"); 
Serial.print(duree2); 
  Serial.print("\n\r");

Serial.print("consigne  :"); 
Serial.print(consigne); 
  Serial.print("\n\r");
    
 Serial.print("Etatcommand  :"); 
Serial.print(Etatcommand); 
  Serial.print("\n\r");  
}

Voici le code "ATtiny85

/*************************************
*  Flash et controle de débit        *
*  pour CNC6040 avec un ATtiny85     *
*  flash-et-debit-Attiny85  Juil 17  *
**************************************/
/****************************
* Définition des constantes *
*****************************/
int laps1 = 20; // temps d'allumage LEDS
int laps2 = 100; //temps d'extinction des LEDS
int consigne = 0;
int consigne2 = 0;
int Etatcommand = 0;  
unsigned long duree,dureeH,dureeL,duree2;




// Entrée
 int CommandeFlash = 1;  // pin 1 patte 6 "la broche est en route". 
 int entreemesure = 0; //  pin 0 patte 5   capteur à effet Hall
 int analogconsigne = A2; // pin 2 patte 7 Potentiomètre de consigne

//Sortie
#define LED_SORTIE  4         // pin 4 patte 3 LED flash
#define SortieDebitCorrect 3  // pin 3 patte 2 Débit correct
 
void setup()
{
  pinMode(entreemesure, INPUT);
  pinMode(analogconsigne, INPUT);
  pinMode(CommandeFlash , INPUT);   
  

 /**************************
 * Declaration des sorties *
 **************************/
  pinMode(LED_SORTIE, OUTPUT ); //on declare Led en sortie 
  digitalWrite(LED_SORTIE, LOW);//On force la sortie au repos.
  pinMode(SortieDebitCorrect, OUTPUT ); //on declare Relais en sortie 
  digitalWrite(SortieDebitCorrect, LOW );//On force à 0 Relais en sortie 
                       +----+
  
}
  
void loop()
{
consigne = analogRead(analogconsigne);

dureeH = pulseIn(entreemesure, HIGH);
dureeL = pulseIn(entreemesure, LOW);
duree = dureeH+dureeL;
duree2 = (duree/150);
if (duree2 >=(consigne) || duree2 <10)
//      238.40 = 41Hz = 45L/h
//duree2 = 993 = 10Hz = 10L/h
//duree2 = 198 = 50Hz = 55L/h
//duree2 = 99 = 100Hz = 110L/h
{
digitalWrite(SortieDebitCorrect,LOW);
}
else
{
digitalWrite(SortieDebitCorrect,HIGH);
}

Etatcommand    = digitalRead(CommandeFlash);

if (Etatcommand == HIGH)
{
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
digitalWrite(LED_SORTIE,HIGH);
delay (laps1);
digitalWrite(LED_SORTIE,LOW);
delay (laps2);
} 
delay(500);
}

"
Dans celui-i les Leds s’allument bien en fonction de l’état de “Etatcommand” mais pas la comparaison de la durée.
Si quelqu’un peut m’aider…Merci d’avance

la patte 7 de l attiny85 est A1

remplacer

int analogconsigne = A2; // pin 2 patte 7 Potentiomètre de consigne

par

int analogconsigne = A1; // pin 2 patte 7 Potentiomètre de consigne

merci c est bon maintenant.
Pour la Patte 7 j'ai confondu Pin 2 avec (analog input 1)
C'est merdique ces problèmes de définition de patte pin A0 PD5 et autres je ne m'y fais pas.
Bonne soirée.