Salut tout le monde,
Bon, le programme fonctionnait nickel avec l'écran i2c.
La je viens de passer à un écran tactile 4dsystem, et je n'arrive pas a faire la même chose.
Mon programme (surement très mal optimisé mais je débute) ``:
#include <genieArduino.h>
Genie genie;
#define RESETLINE 4
int userLedState = 0;
int userLedState1 = 0;
int userLedState2 = 0;
int resultat = 2;
const byte tabFils[] = {2, 3, 4, 5, 6, 7};
const byte NBFILS = sizeof tabFils;
int Thonon[18]={1, 3, 1, 3, 2, 4, 2, 4, 1, 3, 1, 3, 2, 4, 1, 3, 2, 4};
int Reyrieux[18]={5, 6, 2, 4, 1, 3, 0, 0, 0, 4, 2, 4, 1, 3, 0, 0, 1, 3};
int Lyon[18]={2, 5, 3, 6, 1, 4, 0, 0, 0, 0, 3, 6, 1, 4, 0, 0, 1, 4};
int Portugal[18]={1, 4, 3, 6, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4};
int Hongrie[18]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int Thevenin[18]={5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 1, 3, 0, 0, 0, 0};
String client = "0";
String contacteur = "0";
String essai = "0";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // Serial0 @ 9600 Baud
genie.Begin(Serial);
genie.AttachEventHandler(myGenieEventHandler);
pinMode(RESETLINE, OUTPUT);
digitalWrite(RESETLINE, 1);
delay(100);
digitalWrite(RESETLINE, 0);
delay (5000);
}
void loop() {
genie.DoEvents();
int valeurx = 0;
int valeury = 0;
if (client == "Thonon"){
if (contacteur == "Batterie") {
valeurx = Thonon[0];
valeury = Thonon[1];
}
else if (contacteur == "Levier cas 1 AV") {
valeurx = Thonon[2];
valeury = Thonon[3];
}
else if (contacteur == "Levier cas 1 AR") {
valeurx = Thonon[4];
valeury = Thonon[5];
}
else if (contacteur == "Levier cas 2 AV") {
valeurx = Thonon[6];
valeury = Thonon[7];
}
else if (contacteur == "Levier cas 2 AR") {
valeurx = Thonon[8];
valeury = Thonon[9];
}
else if (contacteur == "Poussoire AV") {
valeurx = Thonon[10];
valeury = Thonon[11];
}
else if (contacteur == "Poussoir AR") {
valeurx = Thonon[12];
valeury = Thonon[13];
}
else if (contacteur == "Squeeze AV") {
valeurx = Thonon[14];
valeury = Thonon[15];
}
else if (contacteur == "Squeeze AR") {
valeurx = Thonon[16];
valeury = Thonon[17];
}
}
if (client == "Reyrieux"){
if (contacteur == "Batterie") {
valeurx = Reyrieux[0];
valeury = Reyrieux[1];
}
else if (contacteur == "Levier cas 1 AV") {
valeurx = Reyrieux[2];
valeury = Reyrieux[3];
}
else if (contacteur == "Levier cas 1 AR") {
valeurx = Reyrieux[4];
valeury = Reyrieux[5];
}
else if (contacteur == "Levier cas 2 AV") {
valeurx = Reyrieux[6];
valeury = Reyrieux[7];
}
else if (contacteur == "Levier cas 2 AR") {
valeurx = Reyrieux[8];
valeury = Reyrieux[9];
}
else if (contacteur == "Poussoire AV") {
valeurx = Reyrieux[10];
valeury = Reyrieux[11];
}
else if (contacteur == "Poussoir AR") {
valeurx = Reyrieux[12];
valeury = Reyrieux[13];
}
else if (contacteur == "Squeeze AV") {
valeurx = Reyrieux[14];
valeury = Reyrieux[15];
}
else if (contacteur == "Squeeze AR") {
valeurx = Reyrieux[16];
valeury = Reyrieux[17];
}
}
if (client == "Lyon"){
if (contacteur == "Batterie") {
valeurx = Lyon[0];
valeury = Lyon[1];
}
else if (contacteur == "Levier cas 1 AV") {
valeurx = Lyon[2];
valeury = Lyon[3];
}
else if (contacteur == "Levier cas 1 AR") {
valeurx = Lyon[4];
valeury = Lyon[5];
}
else if (contacteur == "Levier cas 2 AV") {
valeurx = Lyon[6];
valeury = Lyon[7];
}
else if (contacteur == "Levier cas 2 AR") {
valeurx = Lyon[8];
valeury = Lyon[9];
}
else if (contacteur == "Poussoire AV") {
valeurx = Lyon[10];
valeury = Lyon[11];
}
else if (contacteur == "Poussoir AR") {
valeurx = Lyon[12];
valeury = Lyon[13];
}
else if (contacteur == "Squeeze AV") {
valeurx = Lyon[14];
valeury = Lyon[15];
}
else if (contacteur == "Squeeze AR") {
valeurx = Lyon[16];
valeury = Lyon[17];
}
}
if (client == "Portugal"){
if (contacteur == "Batterie") {
valeurx = Portugal[0];
valeury = Portugal[1];
}
else if (contacteur == "Levier cas 1 AV") {
valeurx = Portugal[2];
valeury = Portugal[3];
}
else if (contacteur == "Levier cas 1 AR") {
valeurx = Portugal[4];
valeury = Portugal[5];
}
else if (contacteur == "Levier cas 2 AV") {
valeurx = Portugal[6];
valeury = Portugal[7];
}
else if (contacteur == "Levier cas 2 AR") {
valeurx = Portugal[8];
valeury = Portugal[9];
}
else if (contacteur == "Poussoire AV") {
valeurx = Portugal[10];
valeury = Portugal[11];
}
else if (contacteur == "Poussoir AR") {
valeurx = Portugal[12];
valeury = Portugal[13];
}
else if (contacteur == "Squeeze AV") {
valeurx = Portugal[14];
valeury = Portugal[15];
}
else if (contacteur == "Squeeze AR") {
valeurx = Portugal[16];
valeury = Portugal[17];
}
}
if (client == "Hongrie"){
if (contacteur == "Batterie") {
valeurx = Hongrie[0];
valeury = Hongrie[1];
}
else if (contacteur == "Levier cas 1 AV") {
valeurx = Hongrie[2];
valeury = Hongrie[3];
}
else if (contacteur == "Levier cas 1 AR") {
valeurx = Hongrie[4];
valeury = Hongrie[5];
}
else if (contacteur == "Levier cas 2 AV") {
valeurx = Hongrie[6];
valeury = Hongrie[7];
}
else if (contacteur == "Levier cas 2 AR") {
valeurx = Hongrie[8];
valeury = Hongrie[9];
}
else if (contacteur == "Poussoire AV") {
valeurx = Hongrie[10];
valeury = Hongrie[11];
}
else if (contacteur == "Poussoir AR") {
valeurx = Hongrie[12];
valeury = Hongrie[13];
}
else if (contacteur == "Squeeze AV") {
valeurx = Hongrie[14];
valeury = Hongrie[15];
}
else if (contacteur == "Squeeze AR") {
valeurx = Hongrie[16];
valeury = Hongrie[17];
}
}
if (client == "Thevenin"){
if (contacteur == "Batterie") {
valeurx = Thevenin[0];
valeury = Thevenin[1];
}
else if (contacteur == "Levier cas 1 AV") {
valeurx = Thevenin[2];
valeury = Thevenin[3];
}
else if (contacteur == "Levier cas 1 AR") {
valeurx = Thevenin[4];
valeury = Thevenin[5];
}
else if (contacteur == "Levier cas 2 AV") {
valeurx = Thevenin[6];
valeury = Thevenin[7];
}
else if (contacteur == "Levier cas 2 AR") {
valeurx = Thevenin[8];
valeury = Thevenin[9];
}
else if (contacteur == "Poussoire AV") {
valeurx = Thevenin[10];
valeury = Thevenin[11];
}
else if (contacteur == "Poussoir AR") {
valeurx = Thevenin[12];
valeury = Thevenin[13];
}
else if (contacteur == "Squeeze AV") {
valeurx = Thevenin[14];
valeury = Thevenin[15];
}
else if (contacteur == "Squeeze AR") {
valeurx = Thevenin[16];
valeury = Thevenin[17];
}
}
for (byte i = 0; i < NBFILS-1; i++)
{
pinMode(tabFils[i], OUTPUT);
digitalWrite(tabFils[i], LOW);
for (byte j = i + 1; j < NBFILS; j++)
{
if (digitalRead(tabFils[j]) == LOW)
{
if ((i + 1 == valeurx) and (j + 1 == valeury))
{
resultat = 1;
}
}
else
{
resultat = 0;
}
}
}
}
void myGenieEventHandler(void) {
genieFrame Event;
genie.DequeueEvent(&Event);
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 0)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
client = "Thonon";
}
else {
client = "Thonon";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 1)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
client = "Reyrieux";
}
else {
client = "Reyrieux";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 2)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
client = "Lyon";
}
else {
client = "Lyon";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 3)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
client = "Portugal";
}
else {
client = "Portugal";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 4)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
client = "Hongrie";
}
else {
client = "Hongrie";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 5)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
client = "Portugal";
}
else {
client = "Portugal";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 6)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Batterie";
}
else {
contacteur = "Batterie";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 7)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Levier cas 1 AV";
}
else {
contacteur = "Levier cas 1 AV";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 8)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Levier cas 1 AR";
}
else {
contacteur = "Levier cas 1 AR";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 9)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Levier cas 2 AV";
}
else {
contacteur = "Levier cas 2 AV";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 10)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Levier cas 2 AR";
}
else {
contacteur = "Levier cas 2 AR";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 11)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Poussoir AV";
}
else {
contacteur = "Poussoir AV";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 12)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Poussoir AR";
}
else {
contacteur = "Poussoir AR";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 13)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Squeeze AV";
}
else {
contacteur = "Squeeze AV";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_IBUTTONE, 14)) { //If the button is pressed then unpressed
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
contacteur = "Squeeze AR";
}
else {
contacteur = "Squeeze AR";
}
}
if (genie.EventIs(&Event, GENIE_REPORT_EVENT, GENIE_OBJ_4DBUTTON, 17)) { //If the button is pressed then unpressed
if (resultat == 1) {
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
genie.WriteStr(0, "OK");
genie.WriteStr(1, client);
genie.WriteStr(2, contacteur);
genie.WriteStr(3, "Connecter ");
genie.WriteStr(4, resultat);
//genie.WriteStr(6, valeury);
}
else {
genie.WriteStr(0, "OK");
genie.WriteStr(1, client);
genie.WriteStr(2, contacteur);
genie.WriteStr(3, "Connecter ");
genie.WriteStr(4, resultat);
//genie.WriteStr(6, valeury);
}
}
else {
userLedState = !userLedState; //Toggle userLed state
genie.WriteObject(GENIE_OBJ_USER_LED, 0, userLedState); //Write the value to the userLed object
//Print the userLed status on the Strings object
if (userLedState) {
genie.WriteStr(0, "NOT OK");
genie.WriteStr(1, client);
genie.WriteStr(2, contacteur);
genie.WriteStr(3, "Connecter ");
genie.WriteStr(4, resultat);
//genie.WriteStr(6, valeury);
}
else {
genie.WriteStr(0, "NOT OK");
genie.WriteStr(1, client);
genie.WriteStr(2, contacteur);
genie.WriteStr(3, "Connecter ");
genie.WriteStr(4, resultat);
//genie.WriteStr(6, valeury);
}
}
}
}
Le résultat ne fonctionne pas, quand j'appuie sur mon bouton17, soit aucun fil n'est connecté et il me dit "not ok" soit 2 fils sont connectés et il me dit "OK", mais la vérification que ce soit bien les 2 bons fils ne se fait plus.
Voyez vous ce qui va de travers ? Merci.