Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| start:projet:arduino:formationgdr1 [2015/10/17 14:23] – [Programmation Arduino -- Justin CANO] jcano | start:projet:arduino:formationgdr1 [2015/10/19 14:28] (Version actuelle) – [Important] jcano | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ======Formation Quintessence ElectroLab 1====== | ||
| + | <note tip> | ||
| + | * Justin Cano, //Partie Electronique ~ Commande// [[mailto: | ||
| + | * Alexandre Guglielmi, //Partie Mécanique ~ Effecteurs// | ||
| + | </ | ||
| + | |||
| + | ====Important==== | ||
| + | |||
| + | <note important> | ||
| + | * Inscrivez-vous dans le sondage [[http:// | ||
| + | * Amenez votre PC portable | ||
| + | * Lisez (pas en entier LOL) ce wiki [[start: | ||
| + | </ | ||
| + | ====But de la formation==== | ||
| + | Déclencher un mécanisme au bout de 9 secondes de compte à rebours dans le but de commander un lance-confetti de classe **Delirium I** pour faire une vidéo trop stylée ! | ||
| + | |||
| + | ===== Partie Électronique -- Justin CANO ===== | ||
| + | <note warning> | ||
| + | |||
| + | Nous devrons créer le montage suivant pour réussir à lancer les confettis dans les délais, dans un premier temps nous modéliserons l' | ||
| + | ==== Quels objectifs, capitaine ?==== | ||
| + | Il faudrait modéliser le compte à rebours par trois diodes RGB (diodes 3 couleurs)) qui feront l' | ||
| + | {{ : | ||
| + | \\ | ||
| + | Puis une dernière diode classique s' | ||
| + | .... | ||
| + | \\ | ||
| + | === De la musique ??? === | ||
| + | Pour les plus avancés dans leur montage, nous génèrerons quelques notes de musique avec des buzzers piezzo éléctronique pour faire comme les compte à rebours dans les films d' | ||
| + | ==== Mais euh ! Quels sont mes besoins !???? ==== | ||
| + | Nomenclature du circuit : | ||
| + | * Une Arduino Nano | ||
| + | * Quatre transistors NPN BC547B ou équivalent en boitier TO 92 | ||
| + | * Trois diodes RGB | ||
| + | * Une diode classique rouge | ||
| + | * Quatre résistances 330 Ω | ||
| + | * Quatre résistances 15 kΩ | ||
| + | * Un bouton-poussoir | ||
| + | * Un buzzer pièzo-électrique | ||
| + | ===== Le circuit===== | ||
| + | {{ : | ||
| + | ==== Brochage des composants ==== | ||
| + | === Transistor NPN BC 547B === | ||
| + | {{ : | ||
| + | === Diode RGB === | ||
| + | {{ : | ||
| + | |||
| + | ===== Programmation Arduino -- Justin CANO ===== | ||
| + | |||
| + | === Information utile === | ||
| + | Codage RGB : [[http:// | ||
| + | \\ | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | int SortieRouge = 3; | ||
| + | int SortieBleue = 10; | ||
| + | int SortieVerte = 11; | ||
| + | int EntreeInter = A0; | ||
| + | int Diode1 = 4; | ||
| + | int Diode2 = 5; | ||
| + | int Diode3 = 6; | ||
| + | int SortieFeu = 7; | ||
| + | int SortieBuzzer = 8; | ||
| + | | ||
| + | unsigned long t ; | ||
| + | unsigned long tStart; | ||
| + | | ||
| + | void setup() { | ||
| + | // II - Déclaration des sortie et mise à Zéro | ||
| + | // NB : Par pure flemme je mets toutes les pins digitales de 2 à 11 en sortie et à l' | ||
| + | | ||
| + | for(int i = 2; i<12; i++) { | ||
| + | pinMode(i, | ||
| + | digitalWrite(i, | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | | ||
| + | // III - Définition de fonctions utiles pour le programme | ||
| + | // Sons et lumières | ||
| + | | ||
| + | void RGB(int R, int G, int B) { | ||
| + | analogWrite(SortieRouge, | ||
| + | analogWrite(SortieBleue, | ||
| + | analogWrite(SortieRouge, | ||
| + | t=millis(); | ||
| + | } | ||
| + | | ||
| + | void carre(int TempsHaut, int TempsBas) { | ||
| + | digitalWrite(SortieBuzzer, | ||
| + | delayMicroseconds(TempsHaut); | ||
| + | digitalWrite(SortieBuzzer, | ||
| + | delayMicroseconds(TempsBas); | ||
| + | } | ||
| + | | ||
| + | void rouge(){ | ||
| + | RGB(255, | ||
| + | carre(150, | ||
| + | } | ||
| + | | ||
| + | void vert() { | ||
| + | RGB(0, | ||
| + | carre(100, | ||
| + | } | ||
| + | | ||
| + | void bleu(){ | ||
| + | RGB(0, | ||
| + | carre(500, | ||
| + | } | ||
| + | | ||
| + | void jaune(){ | ||
| + | RGB(240, 195, 0); | ||
| + | carre(500, | ||
| + | } | ||
| + | | ||
| + | void orange(){ | ||
| + | RGB(223, 109, 20); | ||
| + | carre(150, | ||
| + | } | ||
| + | | ||
| + | void violet(){ | ||
| + | RGB(102, 0, 255); | ||
| + | carre(100, | ||
| + | } | ||
| + | | ||
| + | void adressage(boolean a, boolean b, boolean c){ | ||
| + | if(a) { | ||
| + | digitalWrite(Diode1, | ||
| + | } | ||
| + | else if(b){ | ||
| + | digitalWrite(Diode2, | ||
| + | } | ||
| + | else if(c){ | ||
| + | digitalWrite(Diode3, | ||
| + | } | ||
| + | else { | ||
| + | digitalWrite(Diode1, | ||
| + | digitalWrite(Diode2, | ||
| + | digitalWrite(Diode3, | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | // IV -- Fonction principale | ||
| + | | ||
| + | void loop() { | ||
| + | t=millis(); | ||
| + | boolean start = digitalRead(EntreeInter); | ||
| + | if(start) { | ||
| + | tStart=millis(); | ||
| + | | ||
| + | while(t-tStart< | ||
| + | bleu(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | bleu(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | bleu(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | vert(); | ||
| + | adressage(false, | ||
| + | } | ||
| + | | ||
| + | vert(); | ||
| + | adressage(false, | ||
| + | } | ||
| + | | ||
| + | vert(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | jaune(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | jaune(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | orange(); | ||
| + | adressage(false, | ||
| + | } | ||
| + | while(t-tStart< | ||
| + | orange(); | ||
| + | adressage(false, | ||
| + | } | ||
| + | while(t-tStart< | ||
| + | orange(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | | ||
| + | rouge(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | rouge(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | rouge(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | RGB(0,0,0); | ||
| + | adressage(false, | ||
| + | } | ||
| + | | ||
| + | rouge(); | ||
| + | adressage(true, | ||
| + | } | ||
| + | | ||
| + | adressage(true, | ||
| + | violet(); | ||
| + | rouge(); | ||
| + | vert(); | ||
| + | jaune(); | ||
| + | orange(); | ||
| + | if(t-tStart> | ||
| + | digitalWrite(SortieFeu, | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | delay(1); | ||
| + | } | ||
| + | |||
| + | ===== L' | ||