Fusil Arduino

a marqué ce sujet comme résolu.

Bonjour a tous,

Je voudrais faire un pistolet avec un arduino UNO qui quand on appuie sur la gâchette le canon a une LED qui s’allume 40x ensuite s’éteint. (tout en gardant le doigt sur la gâchette) deux disques de LED s’allume en faisant une rotation. Et le programme recommence (si on a gardé le doigt appuyé). Mais si on lâche la gâchette pendant les 40 tire les disques tournes, et sa s’arrête.

Je ne sais pas si j’ai réussi a me faire comprendre ^^. Étant un débutant j’ai encore du mal avec le codage.(Pour ceux qui connaisse je voudrai faire le fusil de Tracer d’OverWatch). Voici le modèle utilisé Image utilisateur

Merci d’avance

tintin1312/Valentin Leclercq

Salut :)

Bonne idée de projet, j’approuve :p

Qu’est ce qui te pose problème exactement, l’électronique ou la programmation ?

Pourrais-tu également nous donner des informations supplémentaires ? Les moteurs utilisés, le pilotage des leds, le câblage sur l’arduino ?

Tu dois ? Donc tu cherches de l’aide pour tes devoirs, donc (et même si ce n’était pas le cas) si tu ne nous poses pas une question précise et différente de "vous pouvez faire ça pour moi ?" (ou équivalent) tu risques fortement de ne pas recevoir d’aide.
Par exemple dans le cas où tu n’arrives pas à compiler, une bonne question serait de nous dire ce que tu veux faire en nous montrant le bout de code, comment tu compiles, le message d’erreur et ce que tu as tenté pour régler le problème.

(Dans le code arduino je suis un débutant et je cherche de l’aide pour pouvoir faire se que je veux). Pour le moment j’essaye de faire que la lampe du canon s’allume 40x quand on appuie sur un bouton puis s’éteins. Mais voici mon code et le problème actuel est que quand j’essaye de faire clignoté la lampe qui dois OBLIGATOIREMENT s’éteindre quand on relâche le bouton et ça fonctionne pas elle reste 1x sur 2 allumée. Et je voudrai savoir comment faire pour demander a une lampe de s’allumé 40x aavnt de s’éteindre avec un delais de 55 ms. Voici mon code actuelle:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int pinBouton, pinLed;
boolean etatAllumage;
void setup()
{
  Serial.begin(9600);
  pinBouton = 2;
  pinLed = 4;
  etatAllumage=0;
  pinMode(pinBouton, INPUT_PULLUP);
  pinMode(pinLed, OUTPUT);
}
void loop()
{
  Serial.print(etatAllumage);

  if (etatAllumage) 
  {
    digitalWrite(pinLed, HIGH);
  }
  else //sinon
  {
    digitalWrite(pinLed, LOW); 
  }

  boolean etatPinBouton = digitalRead(pinBouton);
  Serial.println(etatPinBouton);

  if (!etatPinBouton)
  {
    if (etatAllumage) 
    {
      etatAllumage=0; 
    }
    else
    {
      etatAllumage=1; 

    }
  }
  delay(100);
}

C’est pas un devoir, c’est pour un les accessoires d’un cosplay et la date limite est début janvier. (Je ne veux pas me "servir" de vous ;))

+0 -0

Salut.

Et je voudrai savoir comment faire pour demander a une lampe de s’allumé 40x aavnt de s’éteindre avec un delais de 55 ms.

Je te conseille de regarder du côté de la fonction millis(). ;)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  // Exemple tiré du site d'Arduino
  // https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }

En gros, la variable currentMillis contient le temps depuis lequel le programme est lancé. En la mettant à jour avec la fonction millis(), tu peux donc exécuter un code à intervalle régulier sans interrompre le fonctionnement du programme. ;)

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte