Bonjour à tous,

Je teste actuellement un couple émetteur (UNO+LoRa RA01 ) récepteur(Nano+LoRa RA01)
l'ensemble fonctionne correctement mais si je remplace l'UNO par unNANO pour l'émetteur
celui-ci se bloque et je ne parviens pas à en connaître la raison

Voici le croquis de l'émetteur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
 
#include <LoRa.h> 
 
const int SW1 = 3;
const int SW2 = 4;
 
int SyncWord = 0x22;
 
void setup() {
  Serial.begin(115200);
  pinMode(SW1,INPUT_PULLUP);
  pinMode(SW2,INPUT_PULLUP);
 
  cli();                                    //stop interrupts
                                            //set timer1 interrupt at 1Hz = 1sec
  TCCR1A = 0;                               // set entire TCCR1A register to 0
  TCCR1B = 0;                               // same for TCCR1B
  TCNT1  = 0;                               // initialize counter value to 0
                                            // set compare match register for 1hz increments
  OCR1A = 15624;                            // = (16*10^6) / (1*1024) - 1 (must be <65536)
 
  TCCR1B |= (1 << WGM12);                   // turn on CTC mode                                      
  TCCR1B |= (1 << CS12) | (1 << CS10);      // Set CS10 and CS12 bits for 1024 prescaler                                          
  TIMSK1 |= (1 << OCIE1A);                  // enable timer compare interrupt
 
  sei();                                    //allow interrupts
 
  while (!Serial);  
  Serial.println("LoRa Sender");
  if (!LoRa.begin(433E6)) { // or 915E6, the MHz speed of yout module
    Serial.println("Starting LoRa failed!");
    while (1);
  }
  LoRa.setSpreadingFactor(12);           // ranges from 6-12,default 7 see API docs
  LoRa.setSignalBandwidth(62.5E3 );           // for -139dB (page - 112)
  LoRa.setCodingRate4(8);                   // for -139dB (page - 112)
  LoRa.setSyncWord(SyncWord);
  /*
  Serial.print("current spreading factor : ");
  Serial.println(LoRa.getSpreadingFactor());
  Serial.print("current bandwidth : ");
  Serial.println(LoRa.getSignalBandwidth());
  Serial.println("LoRa init succeeded.");
  */
}
 
int priviousSwitchValue1 = 1;
int priviousSwitchValue2 = 1;
int liveSwitchValue1 = 0;
int liveSwitchValue2 = 0;
bool switchPressFlag1 = false;
bool switchPressFlag2 = false;
bool gLedPin = 0;
 
int data = 1;
 
void loop() {
  //static int data = 1;
 
  liveSwitchValue1 = digitalRead(SW1);
  if( (liveSwitchValue1 == 0) and (switchPressFlag1 == false) )
  {
    delay(50);
    data = 11;
    Serial.println("11");
    switchPressFlag1 = true;
    priviousSwitchValue1 = !priviousSwitchValue1;
 
    LoRa.beginPacket();  
    LoRa.print(data);
    LoRa.endPacket();
  }
  if( (liveSwitchValue1 == 1) and (switchPressFlag1 == true) )
  {
    delay(50);
    data = 22;
    Serial.println("22");
    switchPressFlag1 = false;
    LoRa.beginPacket();  
    LoRa.print(data);
    LoRa.endPacket();
  }
 
  liveSwitchValue2 = digitalRead(SW2);
  if( (liveSwitchValue2 == 0) and (switchPressFlag2 == false))
  {
    delay(50);
    data = 33;
    Serial.println("33");
    switchPressFlag2 = true;
    priviousSwitchValue2 = !priviousSwitchValue2;
    LoRa.beginPacket();  
    LoRa.print(data);
    LoRa.endPacket();
  }
  if( (liveSwitchValue2 == 1) and (switchPressFlag2 == true) )
  {
    delay(50);
    data = 44;
    Serial.println("44");
    switchPressFlag2 = false;
    LoRa.beginPacket();  
    LoRa.print(data);
    LoRa.endPacket();
  }
 
 
  if(gLedPin == 1)
  {
    data = 55;
    Serial.println("55");
    gLedPin = 0;
    LoRa.beginPacket();  
    LoRa.print(data);
    LoRa.endPacket();
  }
 
  // LoRa.beginPacket();  
  // LoRa.print(data);
  // LoRa.endPacket();
}
 
ISR(TIMER1_COMPA_vect){//timer1 interrupt 1Hz toggles pin 13 (LED)
//generates pulse wave of frequency 1Hz/2 = 0.5kHz (takes two cycles for full wave- toggle high then toggle low)
  static volatile int ledFlag = 0;
  if(++ledFlag >= 1)
  {
    gLedPin = 1;
    ledFlag = 0;
  }
}
Je précise que j'ai fait l'essai plusieurs fois avec 2 Nano différents où j'ai constaté le même problème
le traitement des timers est différent sur NANO et UNO ?