Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Police Car
- B.J. H.
- Bryan H.
- 01-19-2014
- Code for B.J.s Pinewood Derby
- */
- const int SPEAKER = P1_2;
- /* Frnt,Frnt,Rear,Rear,TopR,TopR,TopB,TopB */
- const int LEDS[8] = {P2_0,P2_1,P2_2,P2_3,P2_4,P2_5,P1_4,P1_5};
- const int SWITCHES[2] = {P1_0,P1_1};
- const int Light_Pattern[16][8] = {
- { 1, 0, 1, 0, 1, 0, 0, 1},
- { 0, 0, 1, 0, 1, 0, 0, 1},
- { 1, 0, 1, 0, 1, 0, 0, 1},
- { 0, 0, 1, 0, 1, 0, 0, 1},
- { 0, 1, 1, 0, 0, 1, 1, 0},
- { 0, 0, 1, 0, 0, 1, 1, 0},
- { 0, 1, 1, 0, 0, 1, 1, 0},
- { 0, 0, 1, 0, 0, 1, 1, 0},
- { 1, 0, 0, 1, 1, 0, 0, 1},
- { 0, 0, 0, 1, 1, 0, 0, 1},
- { 1, 0, 0, 1, 1, 0, 0, 1},
- { 0, 0, 0, 1, 1, 0, 0, 1},
- { 0, 1, 0, 1, 0, 1, 1, 0},
- { 0, 0, 0, 1, 0, 1, 1, 0},
- { 0, 1, 0, 1, 0, 1, 1, 0},
- { 0, 0, 0, 1, 0, 1, 1, 0}
- };
- const int Normal[8] = {1,1,1,1,0,0,0,0};
- /* flags */
- int button1State;
- int button2State;
- int loaded = 0;
- int racing = 0;
- void setup() {
- int i;
- for (i=0;i<8;i++){
- pinMode(LEDS[i],OUTPUT);
- digitalWrite(LEDS[i],LOW);
- }
- for (i=0;i<2;i++){
- pinMode(SWITCHES[i], INPUT_PULLUP);
- }
- }
- void loop() {
- int i;
- if ((digitalRead(SWITCHES[1]) == LOW) && (loaded == 0))
- {
- ready_state();
- }
- if (digitalRead(SWITCHES[1]) == HIGH)
- {
- loaded = 0;
- racing = 0;
- }
- if (loaded && digitalRead(SWITCHES[0]) == LOW){
- racing = 1;
- }
- if (racing && loaded && digitalRead(SWITCHES[0]) == HIGH){
- siren();
- }
- else
- {
- noTone(SPEAKER);
- for(i=0;i<8;i++){
- digitalWrite(LEDS[i],Normal[i]);
- }
- }
- }
- void waiting_to_go(){
- }
- void ready_state(){
- tone(SPEAKER,900);
- digitalWrite(LEDS[2],LOW);
- digitalWrite(LEDS[3],LOW);
- delay(50);
- noTone(SPEAKER);
- digitalWrite(LEDS[2],HIGH);
- digitalWrite(LEDS[3],HIGH);
- delay(50);
- tone(SPEAKER,900);
- digitalWrite(LEDS[2],LOW);
- digitalWrite(LEDS[3],LOW);
- delay(50);
- noTone(SPEAKER);
- digitalWrite(LEDS[2],HIGH);
- digitalWrite(LEDS[3],HIGH);
- loaded = 1;
- }
- void siren(){
- int i;
- int k;
- int l;
- while ((digitalRead(SWITCHES[0]) == HIGH) && (digitalRead(SWITCHES[1]) == LOW)) {
- for (k=0;k<8;k++){
- for (l=0;l<8;l++){
- digitalWrite(LEDS[l],Light_Pattern[k*2][l]);
- }
- for (i=650;i<900;i=i+2){
- tone(SPEAKER,i);
- delay(1);
- }
- for (l=0;l<8;l++){
- digitalWrite(LEDS[l],Light_Pattern[(k*2)+1][l]);
- }
- for (i=900;i>650;i=i-2){
- tone(SPEAKER,i);
- delay(1);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement