Fusil Arduino

a marqué ce sujet comme résolu.
Auteur du sujet

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

+1 -0

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 ?

+1 -0
Auteur du sujet

Salut a toi ;) Pour le moment mon gros problème est le codage pour le reste je suis dans un petit groupe qui sera m’aider mais la personne ne savais m’aider. Et je voudrai que se sois le plus compact possible (la structure est une boite de 20cmx5cmx2cm.

+0 -0

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.

+3 -0
Auteur du sujet

(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 ;))

Édité par tintin1312

+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. ;)

"Les accidents dans un système doivent se produire, mais il n’est pas obligatoire qu’ils produisent pour vous et moi." Laurence Gonzales - Deep Survival

+1 -0
Auteur du sujet

Je viens e mettre la fonction Millis et ca ne règle pas mon problème :/ voici une image de mon montage: Image utilisateur (Ou alors c’est moi qui ai rien compris ^^’ )

Édité par tintin1312

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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