Étape 5: Arduino Code
Innovente lcd(8,7,6,5,4,2) ; mode de réglage LCD 4 bits
int impulsion = 1 ; durée (en microsecondes) taille
int choix ; Sélectionnez le type de modèle de pistolet laser
int lastchoice = 0 ; rappeler le dernier choix de sélection
int feu ; bouton de déclenchement incendie
void setup() {}
LCD.Begin(16,2) ; 16 x 2 LCD
analogWrite(10,90) ; premier plan LCD
analogWrite(9,150) ; volts de fond LCD ~3.3
LCD.Clear() ;
pinMode (13, sortie) ; sortie à 940nM LED (diode de laser 904nM mimique)
pinMode (11, entrée) ; bouton déclencheur Setup comme entrée
}
void loop() {}
Choice=analogRead(0) ; lire la sélection de modèles de pistolet laser du pot 10K
Choice=(int)(Choice/85.25) ; seulement 12 choix valides, 11 fusils + mode furtif
Si (choix! = lastchoice) / / clear affichage uniquement si elle est différente
LCD.Clear() ;
lastchoice = choix ;
Switch (choix) {}
case 0 :
lcd.setCursor (0, 0) ;
LCD.Print ("Ultralyte Non-LR ») ; 100 impulsions par seconde
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(9999) ; 10ms
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 1 :
lcd.setCursor (0, 0) ;
LCD.Print ("Ultralyte Rev.1") ; 100PPS
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(9999) ; 10ms
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 2 :
lcd.setCursor (0, 0) ;
LCD.Print ("Jenoptik LaserPL") ; 100PPS
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(9999) ; 10ms
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 3 :
lcd.setCursor (0, 0) ;
LCD.Print ("Kustom Prolaser3") ; 200 pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(4999) ; 5ms
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 4 :
lcd.setCursor (0, 0) ;
LCD.Print ("Jenoptik Laveg") ; 600pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(1666) ;
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas no 5 :
lcd.setCursor (0, 0) ;
LCD.Print ("Kustom Prolaser1") ; 380pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(2631) ;
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 6 :
lcd.setCursor (0, 0) ;
LCD.Print ("Ultralyte Rev.2") ; 125 pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(8000) ;
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 7 :
lcd.setCursor (0, 0) ;
LCD.Print ("Stalker LZ-1") ; 130pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(7691) ;
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 8 :
lcd.setCursor (0, 0) ;
LCD.Print ("Kustom Prolaser2") ; 238pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(4201) ;
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas 9 :
lcd.setCursor (0, 0) ;
LCD.Print ("Laser Atlanta") ; 238pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(4201) ;
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
cas no 10 :
lcd.setCursor (0, 0) ;
LCD.Print ("Laser Atlanta") ; mode furtif 238pps
lcd.setCursor(0,1) ;
LCD.Print ("Stealth Mode") ; incendie de 2 impulsions suivi de 5 impulsions manquantes
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor(12,1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 2; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(4201) ;
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(12603) ; besoin de 6 unités de retards (4201 * 3)
delayMicroseconds(12603) ; (4201 * 3)
}
lcd.setCursor(12,1) ;
LCD.Print("") ;
}
rupture ;
cas no 11 :
lcd.setCursor (0, 0) ;
LCD.Print ("Kustom ProLite") ; 200 pps
Fire=digitalRead(11) ;
Si (feu == 0) {}
lcd.setCursor (0, 1) ;
LCD.Print("Fire") ;
pour (int a = 1; a < = 3; un ++) {}
digitalWrite (13, HIGH) ;
delayMicroseconds(pulse) ;
digitalWrite (13, faible) ;
delayMicroseconds(4999) ; 5ms
}
lcd.setCursor (0, 1) ;
LCD.Print("") ;
}
rupture ;
}
}