Paso 5: Código de Arduino
LiquidCrystal lcd(8,7,6,5,4,2); modo de 4 bits de configuración LCD
pulso de int = 1; longitud del tamaño del pulso en microsegundos
int opción; Seleccione tipo de modelo de pistola láser
int lastchoice = 0; recordar la última opción de selección
int de fuego; botón de disparo de Trigger
void setup() {}
LCD.Begin(16,2); 16 x 2 LCD
analogWrite(10,90); primer plano LCD
analogWrite(9,150); voltios de ~3.3 fondo LCD
LCD.Clear();
pinMode (13, salida); salida de 940nM LED (diodo de láser 904nM mímica)
pinMode (11, entrada); botón de disparo de la instalación como entrada
}
void loop() {}
Choice=analogRead(0); leer selección de modelo de pistola láser de pote de 10K
Choice=(int)(Choice/85.25); sólo 12 opciones válidas, 11 armas + modo silencioso
Si (opción! = lastchoice) / / borrar pantalla sólo si es diferente
LCD.Clear();
lastchoice = opción;
Switch (elección) {}
caso 0:
lcd.setCursor (0, 0);
LCD.Print ("Ultralyte no-LR"); 100 pulsos por segundo
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(9999); 10 ms
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 1:
lcd.setCursor (0, 0);
LCD.Print ("Ultralyte Rev.1"); 100pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(9999); 10 ms
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 2:
lcd.setCursor (0, 0);
LCD.Print ("Jenoptik LaserPL"); 100pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(9999); 10 ms
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 3:
lcd.setCursor (0, 0);
LCD.Print ("Kustom Prolaser3"); 200 pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(4999); 5 ms
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 4:
lcd.setCursor (0, 0);
LCD.Print ("Jenoptik Laveg"); 600pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(1666);
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 5:
lcd.setCursor (0, 0);
LCD.Print ("Kustom Prolaser1"); 380pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(2631);
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 6:
lcd.setCursor (0, 0);
LCD.Print ("Ultralyte Rev.2"); 125 pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(8000);
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 7:
lcd.setCursor (0, 0);
LCD.Print ("Stalker LZ-1"); 130pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(7691);
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 8:
lcd.setCursor (0, 0);
LCD.Print ("Kustom Prolaser2"); 238pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(4201);
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 9:
lcd.setCursor (0, 0);
LCD.Print ("Laser Atlanta"); 238pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(4201);
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
caso 10:
lcd.setCursor (0, 0);
LCD.Print ("Laser Atlanta"); modo silencioso 238pps
lcd.setCursor(0,1);
LCD.Print ("Stealth Mode"); fuego de 2 pulsos seguido por 5 pulsos faltantes
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor(12,1);
LCD.Print("Fire");
para (int a = 1; a < = 2; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(4201);
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(12603); necesitan 6 unidades de retrasos (4201 * 3)
delayMicroseconds(12603); (4201 * 3)
}
lcd.setCursor(12,1);
LCD.Print("");
}
rotura;
caso 11:
lcd.setCursor (0, 0);
LCD.Print ("Kustom ProLite"); 200 pps
Fire=digitalRead(11);
Si (fuego == 0) {}
lcd.setCursor (0, 1);
LCD.Print("Fire");
para (int a = 1; a < = 3; a ++) {}
digitalWrite (13, HIGH);
delayMicroseconds(pulse);
digitalWrite (13, bajo);
delayMicroseconds(4999); 5 ms
}
lcd.setCursor (0, 1);
LCD.Print("");
}
rotura;
}
}