Skip to content

Instantly share code, notes, and snippets.

@VincentK16
Created November 30, 2013 09:15
Show Gist options
  • Save VincentK16/7716910 to your computer and use it in GitHub Desktop.
Save VincentK16/7716910 to your computer and use it in GitHub Desktop.
Electric Car
[quote]
[color=#CC6600]int[/color] motorPin1 = 7;
[color=#CC6600]int[/color] motorPin2 = 8;
[color=#CC6600]int[/color] enablePin_1 = 6;
[color=#CC6600]int[/color] motorPin4 = 2;
[color=#CC6600]int[/color] motorPin3 = 4;
[color=#CC6600]int[/color] enablePin_2 =3 ;
[color=#CC6600]int[/color] buzzer = 11;
[color=#CC6600]int[/color] f_b_light = 12 ;
[color=#CC6600]int[/color] state;
[color=#CC6600]int[/color] flag=0; [color=#7E7E7E]//makes sure that the serial only prints once the state[/color]
[color=#CC6600]boolean[/color] buzzerstatus = 0;
[color=#CC6600]boolean[/color] LEDstatus = 0;
#include <[color=#CC6600]LiquidCrystal[/color].h>
[color=#CC6600]LiquidCrystal[/color] lcd(13, 10, 9, A0, A1, A2);
[color=#CC6600]void[/color] [color=#CC6600][b]setup[/b][/color]() {
[color=#7E7E7E]// sets the pins as outputs:[/color]
 lcd.[color=#CC6600]begin[/color](16, 2);
 [color=#CC6600]pinMode[/color](buzzer,[color=#006699]OUTPUT[/color]);
 [color=#CC6600]pinMode[/color](f_b_light,[color=#006699]OUTPUT[/color]);
  [color=#CC6600]pinMode[/color](motorPin1, [color=#006699]OUTPUT[/color]);
  [color=#CC6600]pinMode[/color](motorPin2, [color=#006699]OUTPUT[/color]);
  [color=#CC6600]pinMode[/color](enablePin_1, [color=#006699]OUTPUT[/color]);
  [color=#CC6600]pinMode[/color](motorPin3, [color=#006699]OUTPUT[/color]);
  [color=#CC6600]pinMode[/color](motorPin4, [color=#006699]OUTPUT[/color]);
  [color=#CC6600]pinMode[/color](enablePin_2, [color=#006699]OUTPUT[/color]);
[color=#7E7E7E]// sets enablePin high so that motor can turn on:[/color]
  [color=#CC6600]digitalWrite[/color](enablePin_1, [color=#006699]HIGH[/color]);
  [color=#CC6600]digitalWrite[/color](enablePin_2, [color=#006699]HIGH[/color]);
  [color=#CC6600]pinMode[/color](13,[color=#006699]OUTPUT[/color]);
[color=#7E7E7E]// initialize serial communication at 9600 bits per second:[/color]
  [color=#CC6600][b]Serial[/b][/color].[color=#CC6600]begin[/color](9600);
}
 
[color=#CC6600]void[/color] [color=#CC6600][b]loop[/b][/color]() {
[color=#7E7E7E]//if some date is sent, reads it and saves in state[/color]
        [color=#CC6600]if[/color]([color=#CC6600][b]Serial[/b][/color].[color=#CC6600]available[/color]() > 0){
          state = [color=#CC6600][b]Serial[/b][/color].[color=#CC6600]read[/color]();
          flag=0;
}
[color=#7E7E7E]// if the state is '0' the DC motor will turn off[/color]
        [color=#CC6600]if[/color] (state == [color=#006699]'0'[/color]) {
          [color=#CC6600]digitalWrite[/color](f_b_light,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](buzzer,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](motorPin1, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin2, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin3, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin4, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
              [color=#CC6600]if[/color](flag == 0){
                lcd.[color=#CC6600]clear[/color]();
                lcd.[color=#CC6600]setCursor[/color](0, 0);
               lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
               lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"STOP"[/color]);
                flag=1;
                }
          }
[color=#7E7E7E]// if the state is '1' the motor will forward[/color]
         [color=#CC6600]else[/color] [color=#CC6600]if[/color] (state == [color=#006699]'1'[/color]) {
            [color=#CC6600]digitalWrite[/color](f_b_light,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](buzzer,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](motorPin1, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin2, [color=#006699]HIGH[/color]); [color=#7E7E7E]// set pin 7 on L293D high[/color]
            [color=#CC6600]digitalWrite[/color](motorPin3, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin4, [color=#006699]HIGH[/color]); [color=#7E7E7E]// set pin 7 on L293D high[/color]
              [color=#CC6600]if[/color](flag == 0){
                lcd.[color=#CC6600]setCursor[/color](0, 0);
                lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
                lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"FORWARD"[/color]);
                flag=1;
                  }
          }
[color=#7E7E7E]// if the state is '2' the motor will backward[/color]
          [color=#CC6600]else[/color] [color=#CC6600]if[/color] (state == [color=#006699]'2'[/color]) {
            [color=#CC6600]digitalWrite[/color](f_b_light,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](buzzer,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](motorPin1, [color=#006699]HIGH[/color]); [color=#7E7E7E]// set pin 2 on L293D high[/color]
            [color=#CC6600]digitalWrite[/color](motorPin2, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin3, [color=#006699]HIGH[/color]); [color=#7E7E7E]// set pin 2 on L293D high[/color]
            [color=#CC6600]digitalWrite[/color](motorPin4, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
              [color=#CC6600]if[/color](flag == 0){
                lcd.[color=#CC6600]setCursor[/color](0, 0);
                lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
                lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"REVERSE"[/color]);
                flag=1;
                  }
          }
          
          [color=#CC6600]else[/color] [color=#CC6600]if[/color] (state == [color=#006699]'3'[/color]) {
             [color=#CC6600]digitalWrite[/color](f_b_light,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](buzzer,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](motorPin1, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D high[/color]
            [color=#CC6600]digitalWrite[/color](motorPin2, [color=#006699]HIGH[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
            [color=#CC6600]digitalWrite[/color](motorPin3, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D high[/color]
            [color=#CC6600]digitalWrite[/color](motorPin4, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
              [color=#CC6600]if[/color](flag == 0){
                 lcd.[color=#CC6600]setCursor[/color](0, 0);
                lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
                lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"RIGHT"[/color]);
                flag=1; [color=#7E7E7E]//Left wheel forward, Right wheel static[/color]
                flag=1;
                  }
          }
           [color=#CC6600]else[/color] [color=#CC6600]if[/color] (state == [color=#006699]'4'[/color]) {
              [color=#CC6600]digitalWrite[/color](f_b_light,[color=#006699]LOW[/color]);
            [color=#CC6600]digitalWrite[/color](buzzer,[color=#006699]LOW[/color]);
             [color=#CC6600]digitalWrite[/color](motorPin1, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D high[/color]
             [color=#CC6600]digitalWrite[/color](motorPin2, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
             [color=#CC6600]digitalWrite[/color](motorPin3, [color=#006699]LOW[/color]); [color=#7E7E7E]// set pin 2 on L293D high[/color]
             [color=#CC6600]digitalWrite[/color](motorPin4, [color=#006699]HIGH[/color]); [color=#7E7E7E]// set pin 7 on L293D low[/color]
                [color=#CC6600]if[/color](flag == 0){
                  lcd.[color=#CC6600]clear[/color]();
                   lcd.[color=#CC6600]setCursor[/color](0, 0);
                lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
                lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"LEFT"[/color]);
                flag=1;
                    }
          }
           [color=#CC6600]else[/color] [color=#CC6600]if[/color] (state == [color=#006699]'5'[/color]) {
             
             [color=#CC6600]digitalWrite[/color](buzzer,[color=#006699]HIGH[/color]);
                [color=#CC6600]if[/color](flag == 0){
                  lcd.[color=#CC6600]clear[/color]();
                   lcd.[color=#CC6600]setCursor[/color](0, 0);
                lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
                lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"Buzzer ON"[/color]);
                flag=1;
                    }
          }
           [color=#CC6600]else[/color] [color=#CC6600]if[/color] (state == [color=#006699]'6'[/color]) {
           
            [color=#CC6600]digitalWrite[/color](f_b_light,[color=#006699]HIGH[/color]);
                [color=#CC6600]if[/color](flag == 0){
                   lcd.[color=#CC6600]setCursor[/color](0, 0);
                lcd.[color=#CC6600]print[/color]([color=#006699]"Current State:"[/color]);
                lcd.[color=#CC6600]setCursor[/color](0, 1);
               lcd.[color=#CC6600]print[/color]([color=#006699]"LIGHT ON"[/color]);
                flag=1;
                    }
          }
}
[/quote]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment