problème bombe factice paintball

bonjour

j'ai voulu faire une bombe factice pour le paintball mes je connait rien du tous sur l'arduino j'ai récupérer un code sur internet mes je n'utilise pas les même composant du coup j'ai du modifier le code mes au lancement sa s'affiche mal voici des photo

au début sa marche bien temps et code de lancement

mes au lancement

si vous pouvez m'aider merci d'avance

on ne voit pas vos photos. postez le code (ajoutez les code tags autour du code:
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement))

sa marche pas il marque The message exceeds the maximum allowed length (9000 characters)

permier parti

#include "LiquidCrystal.h"
#include "Keypad.h"
#include "Tone.h"
#define pound 14

Tone tone1;

int Scount = 0; // compteur secondes
int Mcount = 0; // compteur minutes
int Hcount = 0; // compteur heures
int DefuseTimer = 0;

long secMillis = 0;
long interval = 1000; // delais pour 1 seconde en ms

char password[6]; // nombre de chiffres dans le code
int currentLength = 0; //defini le nombre de caractere écrits par defaut
int i = 0;
int j = 0;
char entered[6];

int alarme = A1; // tempo alarme
int ledPin2 = A2; // led rouge
int ledPin3 = A3; // led verte
int etatangle = 0;
char Hcountset[2];
char Mcountset[2];
char Scountset[2];

LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // les pins utilisés par le LCD

const byte ROWS = 4; // 4 rows
const byte COLS = 3; // 3 columns
char keys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
byte rowPins[ROWS] = {13, 12, 11, 3}; // connecté aux pins de sorties des rows clavier
byte colPins[COLS] = {2, A4, A5}; // connecté aux pins de sorties des column clavier

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


void setup() {
  pinMode(alarme, OUTPUT); // defini le pin du tempo alarme comme sortie
  pinMode(ledPin2, OUTPUT); // defini le pin de la led 2 comme sortie
  pinMode(ledPin3, OUTPUT); // defini le pin de la led 3 comme sortie
  tone1.begin(6);
  lcd.begin(16, 2);
  Serial.begin(9600);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Definir temps:" );
  lcd.setCursor(4, 1);
  lcd.print("HH:MM:SS" );
  while (Hcount < 2)
  {
    lcd.setCursor(Hcount + 4, 1);
    lcd.cursor();
    char key = keypad.getKey();
    key == NO_KEY;
    if (key != NO_KEY)
    {
      if ((key != '*') && (key != '#'))
      {
        lcd.print(key);
        Hcountset[Hcount] = key;
        Hcount++;
        tone1.play(NOTE_C8, 200);
      }
    }
  }
  Hcount = (int) strtol(Hcountset, (char **)NULL, 10);
  while (Mcount < 2)
  {
    lcd.setCursor(Mcount + 7, 1);
    lcd.cursor();
    char key = keypad.getKey();
    key == NO_KEY;
    if (key != NO_KEY)
    {
      if ((key != '*') && (key != '#'))
      {
        if (((Mcount == 0) && atoi(&key) <= 5) || Mcount > 0) {
          lcd.print(key);
          Mcountset[Mcount] = key;
          Mcount++;
          tone1.play(NOTE_C8, 200);
        }
      }
    }
  }
  Mcount = (int) strtol(Mcountset, (char **)NULL, 10);
  while (Scount < 2)
  {
    lcd.setCursor(Scount + 10, 1);
    lcd.cursor();
    char key = keypad.getKey();
    key == NO_KEY;
    if (key != NO_KEY)
    {
      if ((key != '*') && (key != '#'))
      {
        if (((Scount == 0) && atoi(&key) <= 5) || Scount > 0)
        {
          lcd.print(key);
          Scountset[Scount] = key;
          Scount++;
          tone1.play(NOTE_C8, 200);
        }
      }
    }
  }
  Scount = (int) strtol(Scountset, (char **)NULL, 10);
  delay(1000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Entrer Code : " );
  while (currentLength < 6)
  {
    lcd.setCursor(currentLength + 5, 1);
    lcd.cursor();
    char key = keypad.getKey();
    if (key == '#')
    {
      currentLength = 0;
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Entrer Code: " );
    }
    else
      key == NO_KEY;
    if (key != NO_KEY)
    {
      if ((key != '*') && (key != '#'))
      {
        lcd.print(key);
        password[currentLength] = key;
        currentLength++;
        tone1.play(NOTE_C8, 200);
      }
    }
  }


  if (currentLength == 6)
  {
    delay(500);
    lcd.noCursor();
    lcd.clear();
    lcd.home();
    lcd.print("Code Saisi: " );
    lcd.setCursor(5, 1);
    lcd.print(password[0]);
    lcd.print(password[1]);
    lcd.print(password[2]);
    lcd.print(password[3]);
    lcd.print(password[4]);
    lcd.print(password[5]);

    tone1.play(NOTE_C8, 500);
    delay(3000);
    lcd.clear();
    currentLength = 0;
  }
}

void loop()
{
  timer();

  char key2 = keypad.getKey();
  if (etatangle == HIGH)
  {
    Hcount = Hcount - 99; // debite 99 heures
    Mcount = Mcount - 59;// debite 59 minutes
    Scount = Scount - 59; // debite 59 secondes
  }
  if (interval <= 1)  // si l'intervalle seconde est inferieure ou égale à 0
  {
    Hcount = Hcount - 99; // debite 99 heures
    Mcount = Mcount - 59; // debite 59 minutes
    Scount = Scount - 59; // debite 59 secondes
  }

  if (key2 == '*')
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Code: " );

    while (currentLength < 6)
    {

      timer();

      char key2 = keypad.getKey();
      if (key2 == '#')
      {
        currentLength = 0;
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Code: " );
      }
      else if (key2 != NO_KEY)
      {

        lcd.setCursor(currentLength + 7, 0);
        lcd.cursor();

        lcd.print(key2);
        entered[currentLength] = key2;
        currentLength++;
        tone1.play(NOTE_C8, 200);
        delay(100);
        lcd.noCursor();
        lcd.setCursor(currentLength + 6, 0);
        lcd.print("*");
        lcd.setCursor(currentLength + 7, 0);
        lcd.cursor();
      }
    }

deuxième partie

    if (currentLength == 6)
    {
      if (entered[0] == password[0] && entered[1] == password[1] && entered[2] == password[2] && entered[3] == password[3] && entered[4] == password[4] && entered[5] == password[5])
      {
        tone1.play(NOTE_C8, 250);
        delay(350);
        tone1.play(NOTE_C8, 250);
        delay(350);
        tone1.play(NOTE_C8, 250);
        delay(350);
        tone1.play(NOTE_C8, 500);
        lcd.noCursor();
        lcd.clear();
        lcd.home();
        lcd.print("Bombe DESAMORCEE" );
        currentLength = 0;
        digitalWrite(ledPin3, HIGH);
        delay(2500);
        lcd.setCursor(0, 1);
        lcd.print("Restart" );
        delay(1000000);
      }
      else
      {
        tone1.play(NOTE_C4, 800);
        lcd.noCursor();
        lcd.clear();
        lcd.home();
        lcd.print("Erreur Code!" );
        digitalWrite(ledPin2, HIGH);
        delay(125);
        digitalWrite(ledPin2, LOW);
        delay(125);
        digitalWrite(ledPin2, HIGH);
        delay(125);
        digitalWrite(ledPin2, LOW);
        delay(125);
        digitalWrite(ledPin2, HIGH);
        delay(125);
        digitalWrite(ledPin2, LOW);
        delay(125);
        digitalWrite(ledPin2, HIGH);
        interval = interval - 330; // debite l'intervale seconde de 33%

        if (Hcount > 0)
        {
          Hcount = Hcount - 99; // debite le compteur d'heures de 99 heures
        }

        if (Mcount > 0)
        {
          Mcount = Mcount - 3; // debite le compteur de minutes de 4 minutes
        }
        if (Scount > 0)
        {
          Scount = Scount - 59; // debite le compteur de secondes de 59 secondes
        }

        delay(1500);
        currentLength = 0;

      }
    }
  }
}

void timer()
{
  Serial.print(Scount);
  Serial.println();

  if (Hcount <= 0) //
  {
    if ( Mcount < 0)
    {
      lcd.noCursor();
      lcd.clear();
      lcd.home();
      lcd.setCursor (3, 0);
      lcd.print("BOOOOOOOOM");
      lcd.setCursor (5, 1);
      lcd.print("PERDU!" );
      digitalWrite(alarme, HIGH); // active le tempo de l'alarme

      while (Mcount < 0)
      {
        digitalWrite(ledPin2, HIGH);
        tone1.play(NOTE_A2, 90);
        delay(50);
        digitalWrite(ledPin2, LOW);
        tone1.play(NOTE_A3, 90);
        delay(50);
        digitalWrite(ledPin3, HIGH);
        tone1.play(NOTE_A2, 90);
        delay(50);
        digitalWrite(ledPin3, LOW);
        tone1.play(NOTE_A3, 90);
        delay(50);
      }
    }
  }

  lcd.setCursor (1, 1);
  lcd.print ("Temps:" );

  if (Hcount >= 10)
  {
    lcd.setCursor (8, 1);
    lcd.print (Hcount);
  }
  if (Hcount < 10)
  {
    lcd.setCursor (8, 1);
    lcd.print ("0" );
    lcd.setCursor (9, 1);
    lcd.print (Hcount);
  }
  lcd.print (":" );

  if (Mcount >= 10)
  {
    lcd.setCursor (11, 1);
    lcd.print (Mcount);
  }
  if (Mcount < 10)
  {
    lcd.setCursor (11, 1);
    lcd.print ("0" );
    lcd.setCursor (12, 1);
    lcd.print (Mcount);
  }

  lcd.print (":" );

  if (Scount >= 10)
  {
    lcd.setCursor (14, 1);
    lcd.print (Scount);
  }
  if (Scount < 10)
  {
    lcd.setCursor (14, 1);
    lcd.print ("0" );
    lcd.setCursor (15, 1);
    lcd.print (Scount);
  }

  if (Hcount < 0)
  {
    Hcount = 0;
  }

  if (Mcount < 0)
  {
    Hcount --;
    Mcount = 59;
  }

  if (Scount < 1)
  {
    Mcount --;
    Scount = 59;
  }

  if (Scount > 0)
  {
    unsigned long currentMillis = millis();

    if (currentMillis - secMillis > interval)
    {
      tone1.play(NOTE_G6, 200);
      secMillis = currentMillis;
      Scount --;
      digitalWrite(ledPin2, HIGH);
      delay(10);
      digitalWrite(ledPin2, LOW);
      delay(10);
    }
  }
}

voila merci

et vous avez câble quoi comment? et qu'avez vous modifié dans le code? et qu'est-ce qui ne fonctionne pas comme vous voulez?

dans le code j'ai changer les branchement de place pour l’écran et clavier
j'ai suprimer les ligne de code pour le capteur angle

j'ai mi une vidéo sur youtube

hello
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // les pins utilisés par le LCD

tone1.begin(6);

super merci sa fonction mes nouveau problème

c'est quoi le problème?

tu demandes un décompte à partir de 1 mn 59 s
et il commence à 10027

c'est ça?

oui et si je mes 50s sa dure même pas 1s

secMillis Devrait être un unsigned long

C'est censé faire quoi key == NO_KEY;?

atoi(&key) ce n'est pas bon. atoi() nécessite une chaîne de caractère terminée par un caractère nul '\0'

strtol(Mcountset, (char **)NULL, 10); ça ne va pas non plus. Le premier param n'est pas une chaîne bien formée, il faut absolument qu'elle soit terminée par un caractère nul. (Donc besoin de 3 éléments dans le tableau). idem pour les autres. (Le pointeur null en 2nd param ce n'est pas top)

ça time à quoi de soustraire 59 secondes ou 99 Heures ?

bonsoir dsl mes je ne comprend pas
mes comme je les dit au début se n'est pas moi qui a fait se code j'ai juste modifier les pin et retirer le capteur d'angle
je ne c pas a quoi correspond key == NO_KEY
je les et supprimer pour voir le logiciel me dit une erreur sur la ligne
: Hcount = (int) strtol(Hcountset, (char **)NULL, 10);

peut être le code et trop vieux je c pas

merci pour le coup de main

Non Le code n'est pas vieux, il est juste très mauvais...

ok y a beaucoup de modification a faire ?

bonjour pouvez vous me guider pour refaire le code svp
je ne c pas comment faire

j'ai passer du temps pour voir se qui ne va pas et y a qu'un seul problème c le compte a rebours qui
fonctionne mal

définir le temps sa fonctionne
le code sa fonctionne
le buzzer sa fonctionne (quand le compte a rebours et en route le buzzer bip toute les seconde )
le désamorçage fonctionne
et si on fait des erreur de code le temps s'accélère

j'ai mi une vidéo

:cry: :cry: :cry: y a personne qui peut m'aider ? :cry: :cry: :cry:

C'est pas vous aider, c'est ré-écrire Le code... ici on n'écrit pas du code comme cela, on aide ceux,qui codent et veulent-ils apprendre à finaliser leur travail...

je demande pas qu'on me donne le produit fini je demande de l'aide pour m expliquer se qui ne va pas dans le code après si vraiment sa vau pas le temps de le refaire vous me guider sur des tuto pour apprendre les code qui me permet de réaliser ma bombe factice.

je ne compte pas m’arrêter sur sa j'ai plein idée et de projet si je peut apprendre merci

me dite pas de regarder sur internet les seul tuto que j'ai trouver c'est des montages Electronique et il donne les codes et il explique rien

merci de me répondre même si c négatif

Si vous lisez les messages épinglés en haut du forum ils pointent vers les tutos d'eskimon

C'est un bon endroit où commencer
Ensuite n'importe quel opencourse sur le C et C++ vous aidera aussi