LTX ne clignotte pas il s'allume quand j'actionne la manette;
voici le programme:
#include <Wire.h>
#define adress1 0x20
#define adress2 0x39
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
typedef struct { uint8_t Msg0; uint8_t Msg1; uint8_t Msg2; uint8_t Msg3;
uint8_t Msg4; uint8_t Msg5; uint8_t Msg6; uint8_t Msg7; uint8_t MsgTOR; }MsgSt_t;
MsgSt_t MonMessage;
#define NB_ELTS_DANS_TABLE(Table) (sizeof(Table) / sizeof(Table[0]))
int potpin_0 = A0; int potpin_1 = A1; int potpin_2 = A2; int potpin_3 = A3; int potpin_4 = A4; int potpin_5 = A5; int potpin_6 = A6; int potpin_7 = A7;
#define poussoir 0
int val_0; int val_1; int val_2; int val_3; int val_4; int val_5; int val_6; int val_7;
int i;
int m; // Message
// int nbi =8; // Nombre de boutons (ici 8)
int b_t[] = {1,2,3,4,5,6,7}; // tableau des Boutons
int b[] = {1,2,3,4,5,6,7}; // Tableau bite de message
int val_1x; int val_2x; int diff;
int neutre = 90;
int posmin = 45;
int posmax = 135; // Ligne à valider pour une rotation de 90° des servos ou Ligne à supprimer pour 180°
//int posmin = 0; int posmax = 180; // Ligne à valider pour une rotation de 180° des servos ou Ligne à supprimer pour 90°
//----------------------------------------------------------------
void setup(void)
{
Serial.begin(9600);
for (i = 0; i < NB_ELTS_DANS_TABLE(b_t); i ++)
{ pinMode(b_t, INPUT); digitalWrite(b_t, HIGH);}
pinMode(poussoir,INPUT);
Wire.begin(); radio.begin(); radio.openWritingPipe(pipe);
}
//----------------------------------------------------------------
void loop()
{
for (i = 0; i < NB_ELTS_DANS_TABLE(b_t); i ++) {
if (digitalRead(b_t)) { b = bitClear(m,i); }
else { b = b = bitSet(m,i); }
}
val_0 = (analogRead(potpin_0)); val_0 = map(val_0, 335, 665, posmin, posmax); val_0 = constrain(val_0, posmin, posmax);
val_1 = (analogRead(potpin_1)); val_1 = map(val_1, 335, 665, posmin, posmax); val_1 = constrain(val_1, posmin, posmax);
val_2 = (analogRead(potpin_2)); val_2 = map(val_2, 335, 665, posmin, posmax); val_2 = constrain(val_2, posmin, posmax);
val_3 = (analogRead(potpin_3)); val_3 = map(val_3, 335, 665, posmin, posmax); val_3 = constrain(val_3, posmin, posmax);
val_4 = (analogRead(potpin_4)); val_4 = map(val_4, 335, 665, posmin, posmax); val_4 = constrain(val_4, posmin, posmax);
val_5 = (analogRead(potpin_5)); val_5 = map(val_5, 335, 665, posmin, posmax); val_5 = constrain(val_5, posmin, posmax);
val_6 = (analogRead(potpin_6)); val_6 = map(val_6, 335, 665, posmin, posmax); val_6 = constrain(val_6, posmin, posmax);
val_7 = (analogRead(potpin_7)); val_7 = map(val_7, 335, 665, posmin, posmax); val_7 = constrain(val_7, posmin, posmax);
//----------------------------------------------------------------------------
if (digitalRead(poussoir)== LOW ) {
Serial.println(val_0);
val_1x = val_1; // Donne à la variable (val_1x) la valeur de (signal) lue sur le pin2
val_2x = val_2; // Donne à la variable (val_2x) la valeur de (signal) lue sur le pin2
diff = (val_2x - neutre); // Calcule l'ecart entre les deux servos
val_1 = val_1x - diff;
val_2 = val_1x + diff; // Calcule la position des servos
val_1=constrain(val_1, posmin, posmax); // Calibre les valeurs pour le servo1 dans la plage acceptée
val_2=constrain(val_2, posmin, posmax);
}
MonMessage.MsgTOR = m;
MonMessage.Msg0 = val_0; MonMessage.Msg1 = val_1; MonMessage.Msg2 = val_2; MonMessage.Msg3 = val_3; MonMessage.Msg4 = val_4;
MonMessage.Msg5 = val_5; MonMessage.Msg6 = val_6; MonMessage.Msg7 = val_7; radio.write(&MonMessage, sizeof(MonMessage));
}
bonne soirée