Bonjour tout le monde,
Voici mon problème : j'utilise un Arduino Uno, sur lequel est positionné un shield Akene de Snootlab (pour de la connectivité Sigfox). J'ai 2 boutons poussoirs permettant de déclencher 2 pins différentes, qui elles-mêmes déclenchent l'envoi de messages vers une appli web. 2 LED sont branchées en dérivation après les boutons pour créer un retour visuel.
Tout fonctionne très bien lorsque mon Arduino est branché en USB sur mon PC (l'appui sur les boutons envoi bien les messages) mais lorsque je le branche sur le secteur, via un adaptateur réglable positionné sur 6V, je ne peux envoyer qu'un seul message, autrement dit j'appuie une fois sur un bouton, un message part, mais après plus rien ne fonctionne. Je suis obligé de reset l'Arduino...
L'illustration de mon montage :
Et voici le code :
#include <avr/wdt.h>
#include <SoftwareSerial.h>
#include "Akene.h"
boolean sent;
volatile int addToSend = 0;
volatile int subToSend = 0;
struct SigfoxData {
int data;
};
struct SigfoxData newData;
void interrupt_Visitor()
{
noInterrupts();
if (digitalRead(2) == HIGH) {
++addToSend;
}
if (digitalRead(3) == HIGH) {
++subToSend;
}
delay(800);
interrupts();
}
void setup() {
wdt_disable();
pinMode(2, INPUT);
pinMode(3, INPUT);
Akene.begin();
// interrupt 0 => pin 2
attachInterrupt(0, interrupt_Visitor, RISING);
// interrupt 1 => pin 3
attachInterrupt(1, interrupt_Visitor, RISING);
}
void loop() {
if (addToSend > 0) {
--addToSend;
newData.data = 1;
sent = Akene.send(&newData, sizeof(newData));
}
if (subToSend > 0) {
--subToSend;
newData.data = -1;
sent = Akene.send(&newData, sizeof(newData));
}
}
Auriez-vous une idée d'où cela peut provenir?
Merci.