alarme voiture

Bonjour je suis débutant , j'essaye de finir mon alarme, j'ai 3 problèmes, le premier est que je dois faire un reset manuellement sur le bouton de l'arduino pour que cela fonctionne, le deuxième est que j'ai besoin d'un délais avant que le programme démarre pour que je puisse sortir de la voiture.
sinon le programme fonctionne, je pense que les trois problèmes sont lié, le troisième problème est donc que je voudrais que l’interrupteur commande le marche/arrêt du système sans faire reset et me laisse le temps de sortir, j’espère avoir bien expliqué ci dessous le code et le plan, merci

int ledRouge = 12;        //  Led rouge sur Pin 12
int ledBleu = 6;          // Led bleu sur pin 6
int bipAlerte1 = 7;       //  sirène sur pin 7
int pirPin = 2;           //     Pir sur pin 2 
int pirState = LOW;       // etat de PIR
int val = 0;            
int pinSpeaker = 10;      // module voix sur pin 10

void setup()
{
  pinMode(ledRouge, OUTPUT);    // declare LED rouge en sortie
  pinMode(ledBleu, OUTPUT);     // declare led bleu en sortie
  pinMode(pirPin, INPUT);       // declare pir en entrée
  pinMode(pinSpeaker, OUTPUT);  // declare module voix en sortie
  pinMode(bipAlerte1, OUTPUT);  // declare sirène en sortie

  digitalWrite(ledBleu, HIGH);  // allumer la led bleu
}
void loop() 
{
   val = digitalRead(pirPin);            // action sur la valeur du PIR
       if (val == HIGH)                  // si la valeur PIR est activé
       {
        digitalWrite(ledBleu, LOW);      // arret de la led bleu
        delay(7000);                     // apres 5 secondes
        digitalWrite(pinSpeaker, HIGH);  // démarrer module voix
        delay(11000);                    // apres 11 secondes (a voir le temps du message)
        digitalWrite(pinSpeaker, LOW);   // arreter module voix
        digitalWrite(bipAlerte1, HIGH);  // demarrer sirène
        delay(45000);                    // apres 45 secondes
        digitalWrite(bipAlerte1, LOW);   // arret sirène
        }
     val = digitalRead(ledBleu);         // action sur la valeur de la led bleu
       if (val == LOW)                   // si la led bleu est éteind
        {
          digitalWrite(ledRouge, HIGH);    // allumer la led rouge
          delay(500);                    // apres 0.5 secondes
          digitalWrite(ledRouge, LOW);     // eteindre la led rouge
          delay(300);                    // apres 0.3 secondes (retour à allumer la led rouge) 
        }  
}

Salut,

Je te conseille de rajouter un bouton poussoir pour mettre le systeme en route après un délai. Il ne me semble pas possible de mettre en route l'Arduino sans qu'il exécute quelque chose.

bonjour,
pas trop parcouru le code.
1- tu ne mets l'alarme en route que lorsque tu veux sortir de la voiture, donc tu le mets en marche car il n'est pas allumé en permanence.
solution un interrupteur bien placé pour démarrer/couper l'alarme niveau électrique
donc un delay de 10s dans le setup te donne le temps de sortir lorsque tu allume l'alarme.

void setup()
{
delay(10000); //10s de délais pour sortir

2- pense aussi a mettre une tempo lors de la détection du PIR pour te laisser le temps d'ouvrir la porte et désactiver l'alarme.

infobarquee:
bonjour,
pas trop parcouru le code.
1- tu ne mets l'alarme en route que lorsque tu veux sortir de la voiture, donc tu le mets en marche car il n'est pas allumé en permanence.
solution un interrupteur bien placé pour démarrer/couper l'alarme niveau électrique
donc un delay de 10s dans le setup te donne le temps de sortir lorsque tu allume l'alarme.

void setup()

{
delay(10000); //10s de délais pour sortir




2- pense aussi a mettre une tempo lors de la détection du PIR pour te laisser le temps d'ouvrir la porte et désactiver l'alarme.

Merci je vais essayer j'avais pensé à cette solution pas dans le setup mais dans le loop

en ce qui concerne l’interrupteur est ce que je ne devrais pas le brancher sur l'alimentation du PIR?

gegeh501:
en ce qui concerne l’interrupteur est ce que je ne devrais pas le brancher sur l'alimentation du PIR?

non, car le PIR si tu veux qu'il fonctionne comme il faut doit se "calibrer" dans l'espace.
mieux vaut démarrer la carte, de plus ca évite de pomper sur la batteirie, même si faiblement et évite les surtensions et cramer la carte.