Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<SoftwareSerial.h>
- SoftwareSerial mySerial(10, 11);
- char data = 0;
- #define IN1 2
- #define IN2 4
- #define IN3 6
- #define IN4 7
- #define EN1 5
- #define EN2 3
- // constants won't change. Used here to set a pin number:
- const int ledPin = LED_BUILTIN;// the number of the LED pin
- // Variables will change:
- int ledState = LOW; // ledState used to set the LED
- // Generally, you should use "unsigned long" for variables that hold time
- // The value will quickly become too large for an int to store
- unsigned long previousMillis = 0; // will store last time LED was updated
- // constants won't change:
- const long interval = 1000; // interval at which to blink (milliseconds)
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- mySerial.begin(9600);
- pinMode(IN1, OUTPUT);
- pinMode(IN2, OUTPUT);
- pinMode(IN3, OUTPUT);
- pinMode(IN4, OUTPUT);
- pinMode(EN1, OUTPUT);
- pinMode(EN2, OUTPUT);
- // set the digital pin as output:
- pinMode(ledPin, OUTPUT);
- }
- void loop()
- {
- unsigned long currentMillis = millis();
- if (currentMillis - previousMillis >= interval) {
- // save the last time you blinked the LED
- previousMillis = currentMillis;
- // if the LED is off turn it on and vice-versa:
- if (ledState == LOW) {
- ledState = HIGH;
- } else {
- ledState = LOW;
- }
- // set the LED with the ledState of the variable:
- digitalWrite(ledPin, ledState);
- }
- if (mySerial.available() )
- {
- data = mySerial.read();
- Serial.println(data);
- if (data == 'F')
- {
- Forward();
- }
- else if (data == 'B')
- {
- Back();
- }
- else if (data == 'L')
- {
- Left();
- }
- else if (data == 'R')
- {
- Right();
- }
- else if (data == 'G')
- {
- ForwardLeft();
- }
- else if (data == 'I')
- {
- ForwardRight();
- }
- else if (data == 'H')
- {
- BackLeft();
- }
- else if (data == 'J')
- {
- BackRight();
- }
- else {
- Stop();
- }
- }
- }
- void Forward() {
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, HIGH);
- digitalWrite(IN4, LOW);
- digitalWrite(EN1, HIGH);
- digitalWrite(EN2, HIGH);
- }
- void Back() {
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, HIGH);
- digitalWrite(EN1, HIGH);
- digitalWrite(EN2, HIGH);
- }
- void Left() {
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, HIGH);
- digitalWrite(EN1, HIGH);
- digitalWrite(EN2, HIGH);
- }
- void Right() {
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- digitalWrite(IN3, HIGH);
- digitalWrite(IN4, LOW);
- digitalWrite(EN1, HIGH);
- digitalWrite(EN2, HIGH);
- }
- void Stop() {
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, LOW);
- digitalWrite(EN1, LOW);
- digitalWrite(EN2, LOW);
- }
- void ForwardLeft() {
- analogWrite(EN1, 255); //speed 0 - 255
- analogWrite(EN2, 50); //speed 0 - 255
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, HIGH);
- digitalWrite(IN4, LOW);
- }
- void ForwardRight() {
- analogWrite(EN1, 50); //speed 0 - 255
- analogWrite(EN2, 255); //speed 0 - 255
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, HIGH);
- digitalWrite(IN4, LOW);
- }
- void BackLeft() {
- analogWrite(EN1, 50); //speed 0 - 255
- analogWrite(EN2, 255); //speed 0 - 255
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, HIGH);
- }
- void BackRight() {
- analogWrite(EN1, 255); //speed 0 - 255
- analogWrite(EN2, 50); //speed 0 - 255
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement