Bonjour à tous, je suis actuellement sur un projet RC de bateau. J'ai globalement terminé l'ensemble de mon projet et j'ai souhaité ajouter un accéléromètre via MPU6050. Ce dernier est installé sur le bateau et envoi ses données vers ma télécommande sur laquelle sont raccordé notamment deux écrans oled. L'un affiche les angle de barre, le mode du moteur, et l'autre affiche la gite et l'accélération. Problème ces deux modules oled 128*64 utilisent la même adresse i2c, et j'avoue ne pas tres bien m'y connaître en i2c. J'ai chercher et entendu parler de pontage sur les pins A0 A1 et A2 mais je ne comprends pas ce que je dois faire physiquement, je raccorde quel fil où je fais quoi... la plupart des forums utilisent soit des librairies soit d'autres modules mais je préfère éviter de surcharger mon programme et d'attendre 2 mois pour un problème qui je pense, peut être réglé rapidement.
En espérant une réponse à mon problème.
Bonjour,
Pourrais-tu poster une photo ou un lien vers le site d'achat avec une photo de l'arrière de l'afficheur?
Bonjour, ce n'est pas exactement le lien où je l'ai acheté mais c'est le même produit.
Il faut dessouder la résistance indiquée et la déplacer sur la droite.
la nouvelle adresse sera 0x7A au lieu de 0x78
Je vais essayer ça, je vous tiens au courant !
Effectivement j'ai réussi à dissocié les deux écrans, je vous remercie. Mais j'ai maintenant un autre problème, dans mon programme, je définis les deux écran avant mon setup, le problème c'est que je ne peux définir leur adresse que dans le setup justement, mais comme je déclare deux objets sur i2c et que je ne donne leur adresse respectives que dans le setup, il ne fonctionnent pas. Je ne comprend pas bien pourquoi, et je ne peux définir leur adresse avant le setup. Du moins si c'est possible je ne sais pas comment faire.
Je vous envois le bout de code impacté, pour information j'utilise la bibliothèque adafruit ssd1306.
'''
#include <Adafruit_SSD1306.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <SPI.h>
#define pinJy A1 // Broche pour l'axe Y du joystick.
#define joystick A0
#define pinCE 8
#define pinCSN 10
#define tunnel "PIPE1"
unsigned short X, Y; // Variables pour les valeurs du joystick.
struct DonneesAenvoyer {
int motor_control;
int servo_control;
};
DonneesAenvoyer donnees;
struct DonneesArecevoir {
int adataX;
int adataY;
int adataZ;
int gdataX;
int gdataY;
int gdataZ;
};
DonneesArecevoir sensor;
RF24 radio(pinCE, pinCSN);
const byte adresse[6] = tunnel;
Adafruit_SSD1306 oled = Adafruit_SSD1306(128, 64, &Wire, -1);
Adafruit_SSD1306 sensordata = Adafruit_SSD1306(128, 64, &Wire, -1);
void setup()
{
Serial.begin(9600);
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
sensordata.begin(SSD1306_SWITCHCAPVCC, 0x3D);
Serial.println(F("Démmarage"));
Serial.println(F("========="));
if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("SSD1306 principal : NO"));
while(1);
}
else { Serial.println(F("SSD1306 principal : OK."));
}
Adafruit_SSD1306 sensordata = Adafruit_SSD1306(128, 64, &Wire, -1);
if(!sensordata.begin(SSD1306_SWITCHCAPVCC, 0x3D))
{
Serial.println(F("SSD1306 secondaire : NO"));
while(1);
}
else { Serial.println(F("SSD1306 secondaire : OK."));
}
Serial.println(F("Chargement de la mémoire tampon OLED..."));
oled.clearDisplay();
sensordata.clearDisplay();
for(byte numeroLigne=0 ; numeroLigne < 64 ; numeroLigne++)
{
for(byte numeroColonne=0 ; numeroColonne < 128 ; numeroColonne++)
{
oled.drawPixel(numeroColonne, numeroLigne, WHITE);
sensordata.drawPixel(numeroColonne, numeroLigne, WHITE);
}
}
Serial.println(F("OLED : OK"));
oled.display();
sensordata.display();
Serial.println(F("Séquence : OK"));
'''
il y a juste cette ligne avant le IF qui ne devraient pas y être, j'ai oublié de la supprimer après mes essais:
Adafruit_SSD1306 sensordata = Adafruit_SSD1306(128, 64, &Wire, -1);
Pour résoudre ce genre de problème, il y a le TCA9548, on peut mettre jusqu'à 8 périf avec la même adresse.
Cordialement
jpbbricole
je sais qu'en passant par des modules ça facilite les choses mais je vouais me débrouiller avec ce que j'ai là, je pense que c'est faisable. J'aimerais juste savoir comment et aussi étrange que cela puisse paraître, il n'y a pas de tuto ou autre qui parle de brancher deux écrans oled sur une même carte, en utilisant la bibliothèque adafruit. c'est ce que j'aimerais éclaircir.
Il y a un petit problème dans ton code :
Ensuite tu répètes la déclaration de sensordata dans la fonction setup().
Et tu appelles la méthode begin() de l'instance créée dans la fonction setup().
L'instance créée dans la fonction setup() est détruite en fin de fonction.
Adafruit_SSD1306 oled = Adafruit_SSD1306(128, 64, &Wire, -1);
Adafruit_SSD1306 sensordata = Adafruit_SSD1306(128, 64, &Wire, -1);
void setup()
{
Serial.begin(9600);
Serial.println(F("Démmarage"));
Serial.println(F("========="));
if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("SSD1306 principal : NO"));
while(1);
}
else { Serial.println(F("SSD1306 principal : OK."));
}
if(!sensordata.begin(SSD1306_SWITCHCAPVCC, 0x3D))
{
Serial.println(F("SSD1306 secondaire : NO"));
while(1);
}
else { Serial.println(F("SSD1306 secondaire : OK."));
}
c'est plutôt comme ça que je devrais faire ?
j'ai retirer les lignes de trop, mais encore une fois les écrans ne démarrent pas ...
As-tu utilisé i2C-scanner pour vérifier tes adresses I2C ?
Oui et il m'a bien détecté les deux écrans au deux adresses utilisées dans le programme.
en utilisant le scanner:
"Recherche en cours...
Equiment I2C trouve a l'addresse 0x3C !
Equiment I2C trouve a l'addresse 0x3D !
Fini"
Je précise que je n'ai que les deux écrans connectés au SCL/SDA.
Quelle est la plateforme utilisée ?
Une NANO.
La quantité de mémoire RAM nécessaire est de 1136 bytes par écran, donc 2272 octets au total, ce qui dépasse la quantité de mémoire disponible.
L'appel au deuxième begin() devrait provoquer l'affichage de "SSD1306 secondaire : NO".
Je te conseillerais la librairie Greiman
je regarde ça, je reviens vers vous, merci !
Si ça peut aider, j'ai écrit ceci :
https://riton-duino.blogspot.com/2019/11/afficheur-oled-ssd1306-comparons.html
c'est super j'ai finalement réussi en utilisant votre méthode, je vous remercie. je laisse la partie "télécommande" de mon projet au cas où mon code puisse en aider d'autre.
#include "SSD1306Ascii.h"
#include "SSD1306AsciiAvrI2c.h"
#include <nRF24L01.h>
#include <RF24.h>
#include <SPI.h>
#define pinJy A1 // Broche pour l'axe Y du joystick.
#define joystick A0
#define pinCE 8
#define pinCSN 10
#define tunnel1 "PIPE1"
#define tunnel2 "PIPE2"
unsigned short X, Y; // Variables pour les valeurs du joystick.
struct DonneesAenvoyer {
int motor_control;
int servo_control;
};
DonneesAenvoyer donnees;
struct DonneesArecevoir {
int adataX;
int adataY;
int adataZ;
int gdataX;
int gdataY;
int gdataZ;
};
DonneesArecevoir sensor;
RF24 radio(pinCE, pinCSN);
const byte adresses[][6] = {tunnel1, tunnel2};
SSD1306AsciiAvrI2c oled;
SSD1306AsciiAvrI2c sensordata;
void setup()
{
Serial.begin(9600);
Serial.println(F("Démmarage"));
Serial.println(F("========="));
oled.begin(&Adafruit128x64, 0x3C);
oled.setFont(System5x7);
sensordata.begin(&Adafruit128x64, 0x3D);
sensordata.setFont(System5x7);
radio.begin();
Serial.println("Radio connected: ");
Serial.println(radio.isChipConnected() ? "OK" : "NO");
}
void loop()
{
radio.openWritingPipe(adresses[0]);
radio.openReadingPipe(1, adresses[1]);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
{
donnees.motor_control = analogRead(joystick);
donnees.motor_control >>= 1;
radio.write(&donnees, sizeof(donnees));
}
donnees.servo_control = analogRead(pinJy);
donnees.servo_control >>= 1;
radio.write(&donnees, sizeof(donnees));
Serial.println(donnees.servo_control);
Serial.println(donnees.motor_control);
oled.setCursor(0, 1);
oled.clearToEOL();
oled.print("EMETTEUR : ");
oled.print(radio.isChipConnected() ? "OK" : "NO");
oled.setCursor(0, 2);
oled.clearToEOL();
oled.print("MOTEUR : ");
if (donnees.motor_control >= 250 && donnees.motor_control <= 260)
oled.print("0");
else if (donnees.motor_control >= 260 && donnees.motor_control <= 338)
oled.print("1");
else if (donnees.motor_control >= 339 && donnees.motor_control <= 423)
oled.print("2");
else if (donnees.motor_control >= 424 && donnees.motor_control <= 515)
oled.print("3");
else if (donnees.motor_control <= 250 && donnees.motor_control >= 171)
oled.print("-1");
else if (donnees.motor_control <= 171 && donnees.motor_control >= 86)
oled.print("-2");
else if (donnees.motor_control <= 86 && donnees.motor_control >= 0)
oled.print("-3");
oled.setCursor(0, 3);
oled.clearToEOL();
oled.print("BARRE : ");
int calc_servo = donnees.servo_control / 2.8339;
if (calc_servo == 90)
oled.print("0");
else if (calc_servo == 91)
{
oled.print("0");
}
else if (calc_servo == 92)
{
oled.print("2");
oled.print(" TD");
}
else if (calc_servo == 93)
{
oled.print("3");
oled.print(" TD");
}
else if (calc_servo == 94)
{
oled.print("4");
oled.print(" TD");
}
else if (calc_servo == 95)
{
oled.print("5");
oled.print(" TD");
}
else if (calc_servo == 96)
{
oled.print("6");
oled.print(" TD");
}
else if (calc_servo == 97)
{
oled.print("7");
oled.print(" TD");
}
else if (calc_servo == 98)
{
oled.print("8");
oled.print(" TD");
}
else if (calc_servo == 99)
{
oled.print("9");
oled.print(" TD");
}
else if (calc_servo == 100)
{
oled.print("10");
oled.print(" TD");
}
else if (calc_servo == 101)
{
oled.print("11");
oled.print(" TD");
}
else if (calc_servo == 102)
{
oled.print("12");
oled.print(" TD");
}
else if (calc_servo == 103)
{
oled.print("13");
oled.print(" TD");
}
else if (calc_servo == 104)
{
oled.print("14");
oled.print(" TD");
}
else if (calc_servo == 105)
{
oled.print("15");
oled.print(" TD");
}
else if (calc_servo == 106)
{
oled.print("16");
oled.print(" TD");
}
else if (calc_servo == 107)
{
oled.print("17");
oled.print(" TD");
}
else if (calc_servo == 108)
{
oled.print("18");
oled.print(" TD");
}
else if (calc_servo == 109)
{
oled.print("19");
oled.print(" TD");
}
else if (calc_servo == 110)
{
oled.print("20");
oled.print(" TD");
}
else if (calc_servo == 111)
{
oled.print("21");
oled.print(" TD");
}
else if (calc_servo == 112)
{
oled.print("22");
oled.print(" TD");
}
else if (calc_servo == 113)
{
oled.print("23");
oled.print(" TD");
}
else if (calc_servo == 114)
{
oled.print("24");
oled.print(" TD");
}
else if (calc_servo == 115)
{
oled.print("25");
oled.print(" TD");
}
else if (calc_servo == 116)
{
oled.print("26");
oled.print(" TD");
}
else if (calc_servo == 117)
{
oled.print("27");
oled.print(" TD");
}
else if (calc_servo == 118)
{
oled.print("28");
oled.print(" TD");
}
else if (calc_servo == 119)
{
oled.print("29");
oled.print(" TD");
}
else if (calc_servo == 120)
{
oled.print("30");
oled.print(" TD");
}
else if (calc_servo == 121)
{
oled.print("31");
oled.print(" TD");
}
else if (calc_servo == 122)
{
oled.print("32");
oled.print(" TD");
}
else if (calc_servo == 123)
{
oled.print("33");
oled.print(" TD");
}
else if (calc_servo == 124)
{
oled.print("34");
oled.print(" TD");
}
else if (calc_servo == 125)
{
oled.print("35");
oled.print(" TD");
}
else if (calc_servo == 126)
{
oled.print("36");
oled.print(" TD");
}
else if (calc_servo == 127)
{
oled.print("37");
oled.print(" TD");
}
else if (calc_servo == 128)
{
oled.print("38");
oled.print(" TD");
}
else if (calc_servo == 129)
{
oled.print("39");
oled.print(" TD");
}
else if (calc_servo == 130)
{
oled.print("40");
oled.print(" TD");
}
else if (calc_servo == 131)
{
oled.print("41");
oled.print(" TD");
}
else if (calc_servo == 132)
{
oled.print("42");
oled.print(" TD");
}
else if (calc_servo == 133)
{
oled.print("43");
oled.print(" TD");
}
else if (calc_servo == 134)
{
oled.print("44");
oled.print(" TD");
}
else if (calc_servo == 135)
{
oled.print("45");
oled.print(" TD");
}
else if (calc_servo == 136)
{
oled.print("46");
oled.print(" TD");
}
else if (calc_servo == 137)
{
oled.print("47");
oled.print(" TD");
}
else if (calc_servo == 138)
{
oled.print("48");
oled.print(" TD");
}
else if (calc_servo == 139)
{
oled.print("49");
oled.print(" TD");
}
else if (calc_servo == 140)
{
oled.print("50");
oled.print(" TD");
}
else if (calc_servo == 141)
{
oled.print("51");
oled.print(" TD");
}
else if (calc_servo == 142)
{
oled.print("52");
oled.print(" TD");
}
else if (calc_servo == 143)
{
oled.print("53");
oled.print(" TD");
}
else if (calc_servo == 144)
{
oled.print("54");
oled.print(" TD");
}
else if (calc_servo == 145)
{
oled.print("55");
oled.print(" TD");
}
else if (calc_servo == 146)
{
oled.print("56");
oled.print(" TD");
}
else if (calc_servo == 147)
{
oled.print("57");
oled.print(" TD");
}
else if (calc_servo == 148)
{
oled.print("58");
oled.print(" TD");
}
else if (calc_servo == 149)
{
oled.print("59");
oled.print(" TD");
}
else if (calc_servo == 150)
{
oled.print("60");
oled.print(" TD");
}
else if (calc_servo == 151)
{
oled.print("61");
oled.print(" TD");
}
else if (calc_servo == 152)
{
oled.print("62");
oled.print(" TD");
}
else if (calc_servo == 153)
{
oled.print("63");
oled.print(" TD");
}
else if (calc_servo == 154)
{
oled.print("64");
oled.print(" TD");
}
else if (calc_servo == 155)
{
oled.print("65");
oled.print(" TD");
}
else if (calc_servo == 156)
{
oled.print("66");
oled.print(" TD");
}
else if (calc_servo == 157)
{
oled.print("67");
oled.print(" TD");
}
else if (calc_servo == 158)
{
oled.print("68");
oled.print(" TD");
}
else if (calc_servo == 159)
{
oled.print("69");
oled.print(" TD");
}
else if (calc_servo == 160)
{
oled.print("70");
oled.print(" TD");
}
else if (calc_servo == 161)
{
oled.print("71");
oled.print(" TD");
}
else if (calc_servo == 162)
{
oled.print("72");
oled.print(" TD");
}
else if (calc_servo == 163)
{
oled.print("73");
oled.print(" TD");
}
else if (calc_servo == 164)
{
oled.print("74");
oled.print(" TD");
}
else if (calc_servo == 165)
{
oled.print("75");
oled.print(" TD");
}
else if (calc_servo == 166)
{
oled.print("76");
oled.print(" TD");
}
else if (calc_servo == 167)
{
oled.print("77");
oled.print(" TD");
}
else if (calc_servo == 168)
{
oled.print("78");
oled.print(" TD");
}
else if (calc_servo == 169)
{
oled.print("79");
oled.print(" TD");
}
else if (calc_servo == 170)
{
oled.print("80");
oled.print(" TD");
}
else if (calc_servo == 171)
{
oled.print("81");
oled.print(" TD");
}
else if (calc_servo == 172)
{
oled.print("82");
oled.print(" TD");
}
else if (calc_servo == 173)
{
oled.print("83");
oled.print(" TD");
}
else if (calc_servo == 174)
{
oled.print("84");
oled.print(" TD");
}
else if (calc_servo == 175)
{
oled.print("85");
oled.print(" TD");
}
else if (calc_servo == 176)
{
oled.print("86");
oled.print(" TD");
}
else if (calc_servo == 177)
{
oled.print("87");
oled.print(" TD");
}
else if (calc_servo == 178)
{
oled.print("88");
oled.print(" TD");
}
else if (calc_servo == 179)
{
oled.print("89");
oled.print(" TD");
}
else if (calc_servo == 180)
{
oled.print("90");
oled.print(" TD");
}
else if (calc_servo == 89)
{
oled.print("0");
}
else if (calc_servo == 88)
{
oled.print("2");
oled.print(" BD");
}
else if (calc_servo == 87)
{
oled.print("3");
oled.print(" BD");
}
else if (calc_servo == 86)
{
oled.print("4");
oled.print(" BD");
}
else if (calc_servo == 85)
{
oled.print("5");
oled.print(" BD");
}
else if (calc_servo == 84)
{
oled.print("6");
oled.print(" BD");
}
else if (calc_servo == 83)
{
oled.print("7");
oled.print(" BD");
}
else if (calc_servo == 82)
{
oled.print("8");
oled.print(" BD");
}
else if (calc_servo == 81)
{
oled.print("9");
oled.print(" BD");
}
else if (calc_servo == 80)
{
oled.print("10");
oled.print(" BD");
}
else if (calc_servo == 79)
{
oled.print("11");
oled.print(" BD");
}
else if (calc_servo == 78)
{
oled.print("12");
oled.print(" BD");
}
else if (calc_servo == 77)
{
oled.print("13");
oled.print(" BD");
}
else if (calc_servo == 76)
{
oled.print("14");
oled.print(" BD");
}
else if (calc_servo == 75)
{
oled.print("15");
oled.print(" BD");
}
else if (calc_servo == 74)
{
oled.print("16");
oled.print(" BD");
}
else if (calc_servo == 73)
{
oled.print("17");
oled.print(" BD");
}
else if (calc_servo == 72)
{
oled.print("18");
oled.print(" BD");
}
else if (calc_servo == 71)
{
oled.print("19");
oled.print(" BD");
}
else if (calc_servo == 70)
{
oled.print("20");
oled.print(" BD");
}
else if (calc_servo == 69)
{
oled.print("21");
oled.print(" BD");
}
else if (calc_servo == 68)
{
oled.print("22");
oled.print(" BD");
}
else if (calc_servo == 67)
{
oled.print("23");
oled.print(" BD");
}
else if (calc_servo == 66)
{
oled.print("24");
oled.print(" BD");
}
else if (calc_servo == 65)
{
oled.print("25");
oled.print(" BD");
}
else if (calc_servo == 64)
{
oled.print("26");
oled.print(" BD");
}
else if (calc_servo == 63)
{
oled.print("27");
oled.print(" BD");
}
else if (calc_servo == 62)
{
oled.print("28");
oled.print(" BD");
}
else if (calc_servo == 61)
{
oled.print("29");
oled.print(" BD");
}
else if (calc_servo == 60)
{
oled.print("30");
oled.print(" BD");
}
else if (calc_servo == 59)
{
oled.print("31");
oled.print(" BD");
}
else if (calc_servo == 58)
{
oled.print("32");
oled.print(" BD");
}
else if (calc_servo == 57)
{
oled.print("33");
oled.print(" BD");
}
else if (calc_servo == 56)
{
oled.print("34");
oled.print(" BD");
}
else if (calc_servo == 55)
{
oled.print("35");
oled.print(" BD");
}
else if (calc_servo == 54)
{
oled.print("36");
oled.print(" BD");
}
else if (calc_servo == 53)
{
oled.print("37");
oled.print(" BD");
}
else if (calc_servo == 52)
{
oled.print("38");
oled.print(" BD");
}
else if (calc_servo == 51)
{
oled.print("39");
oled.print(" BD");
}
else if (calc_servo == 50)
{
oled.print("40");
oled.print(" BD");
}
else if (calc_servo == 49)
{
oled.print("41");
oled.print(" BD");
}
else if (calc_servo == 48)
{
oled.print("42");
oled.print(" BD");
}
else if (calc_servo == 47)
{
oled.print("43");
oled.print(" BD");
}
else if (calc_servo == 46)
{
oled.print("44");
oled.print(" BD");
}
else if (calc_servo == 45)
{
oled.print("45");
oled.print(" BD");
}
else if (calc_servo == 44)
{
oled.print("46");
oled.print(" BD");
}
else if (calc_servo == 43)
{
oled.print("47");
oled.print(" BD");
}
else if (calc_servo == 42)
{
oled.print("48");
oled.print(" BD");
}
else if (calc_servo == 41)
{
oled.print("49");
oled.print(" BD");
}
else if (calc_servo == 40)
{
oled.print("50");
oled.print(" BD");
}
else if (calc_servo == 39)
{
oled.print("51");
oled.print(" BD");
}
else if (calc_servo == 38)
{
oled.print("52");
oled.print(" BD");
}
else if (calc_servo == 37)
{
oled.print("53");
oled.print(" BD");
}
else if (calc_servo == 36)
{
oled.print("54");
oled.print(" BD");
}
else if (calc_servo == 35)
{
oled.print("55");
oled.print(" BD");
}
else if (calc_servo == 34)
{
oled.print("56");
oled.print(" BD");
}
else if (calc_servo == 33)
{
oled.print("57");
oled.print(" BD");
}
else if (calc_servo == 32)
{
oled.print("58");
oled.print(" BD");
}
else if (calc_servo == 31)
{
oled.print("59");
oled.print(" BD");
}
else if (calc_servo == 30)
{
oled.print("60");
oled.print(" BD");
}
else if (calc_servo == 29)
{
oled.print("61");
oled.print(" BD");
}
else if (calc_servo == 28)
{
oled.print("62");
oled.print(" BD");
}
else if (calc_servo == 27)
{
oled.print("63");
oled.print(" BD");
}
else if (calc_servo == 26)
{
oled.print("64");
oled.print(" BD");
}
else if (calc_servo == 25)
{
oled.print("65");
oled.print(" BD");
}
else if (calc_servo == 24)
{
oled.print("66");
oled.print(" BD");
}
else if (calc_servo == 23)
{
oled.print("67");
oled.print(" BD");
}
else if (calc_servo == 22)
{
oled.print("68");
oled.print(" BD");
}
else if (calc_servo == 21)
{
oled.print("69");
oled.print(" BD");
}
else if (calc_servo == 20)
{
oled.print("70");
oled.print(" BD");
}
else if (calc_servo == 19)
{
oled.print("71");
oled.print(" BD");
}
else if (calc_servo == 18)
{
oled.print("72");
oled.print(" BD");
}
else if (calc_servo == 17)
{
oled.print("73");
oled.print(" BD");
}
else if (calc_servo == 16)
{
oled.print("74");
oled.print(" BD");
}
else if (calc_servo == 15)
{
oled.print("75");
oled.print(" BD");
}
else if (calc_servo == 14)
{
oled.print("76");
oled.print(" BD");
}
else if (calc_servo == 13)
{
oled.print("77");
oled.print(" BD");
}
else if (calc_servo == 12)
{
oled.print("78");
oled.print(" BD");
}
else if (calc_servo == 11)
{
oled.print("79");
oled.print(" BD");
}
else if (calc_servo == 10)
{
oled.print("80");
oled.print(" BD");
}
else if (calc_servo == 9)
{
oled.print("81");
oled.print(" BD");
}
else if (calc_servo == 8)
{
oled.print("82");
oled.print(" BD");
}
else if (calc_servo == 7)
{
oled.print("83");
oled.print(" BD");
}
else if (calc_servo == 6)
{
oled.print("84");
oled.print(" BD");
}
else if (calc_servo == 5)
{
oled.print("85");
oled.print(" BD");
}
else if (calc_servo == 4)
{
oled.print("86");
oled.print(" BD");
}
else if (calc_servo == 3)
{
oled.print("87");
oled.print(" BD");
}
else if (calc_servo == 2)
{
oled.print("88");
oled.print(" BD");
}
else if (calc_servo == 1)
{
oled.print("89");
oled.print(" BD");
}
else if (calc_servo == 0)
{
oled.print("90");
oled.print(" BD");
} delay(5);
radio.startListening();
if (radio.available())
{
radio.read(&sensor, sizeof(sensor));
Serial.print("Accelerometer ");
Serial.print("X: ");
Serial.print(sensor.adataX);
Serial.print(" m/s^2, ");
Serial.print("Y: ");
Serial.print(sensor.adataY);
Serial.print(" m/s^2, ");
Serial.print("Z: ");
Serial.print(sensor.adataZ);
Serial.print(" m/s^2");
Serial.print("Gyroscope ");
Serial.print("X: ");
Serial.print(sensor.gdataX);
Serial.print(" rps, ");
Serial.print("Y: ");
Serial.print(sensor.gdataY);
Serial.print(" rps, ");
Serial.print("Z: ");
Serial.print(sensor.gdataZ);
Serial.print(" rps");
sensordata.setCursor(0, 1);
sensordata.clearToEOL();
sensordata.print("Accelerometer - m/s^2");
sensordata.setCursor(0, 2);
sensordata.clearToEOL();
sensordata.print(sensor.adataX);
sensordata.print(", ");
sensordata.print(sensor.adataY);
sensordata.print(", ");
sensordata.print(sensor.adataZ);
sensordata.print("");
sensordata.setCursor(0, 3);
sensordata.clearToEOL();
sensordata.print("Gyroscope - rps");
sensordata.setCursor(0, 4);
sensordata.clearToEOL();
sensordata.print(sensor.gdataX);
sensordata.print(", ");
sensordata.print(sensor.gdataY);
sensordata.print(", ");
sensordata.print(sensor.gdataZ);
sensordata.print("");
delay(5);
}delay(5);
}
byte joyToServo(unsigned short n) // Fonction de correspondance.
{
return (byte)(-0.175953 * n + 180); // f(x) calculée précédemment.
}
oui ça fait beaucoup de 'if else' je sais, je ne connais pas encore de méthode pour réduire tout ça, mais au moins j'espère que ça pourra être utile à d'autre.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.