Friday, November 3, 2017

Lab 18 - Bluetooth Wireless Communication

CLASSWORK:
char data = 0; //Variable for storing received data
int sig1;
int sig2;
void setup()
{
 Serial.begin(9600); //Sets the baud for serial data transmission
 pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
 if(Serial.available() > 0) // Send data only when you receive data:
 {
 data = Serial.read(); //Read the incoming data & store into data
 Serial.print(data); //Print Value inside data in Serial monitor
 Serial.print("\n");
 if(data == '1') // Checks whether value of data is equal to 1
 {
 Serial.println("Matthew's On Signal");
 digitalWrite(13, HIGH); //If value is 1 then LED turns ON
 }
 else if(data == '0') // Checks whether value of data is equal to 0
 {
 Serial.println("Matthew's Off Signal");
 digitalWrite(13, LOW); //If value is 0 then LED turns OFF
 }
 }
}

HOMEWORK:
Motor Control with Serial IO using Bluetooth
//Motor Control w/ Serial IO

int velocity = 255;
char data; //Holds incoming character
int M1_Left = 12; //Motor Input 1
int M1_Right = 11; //Motor Input 2
int M2_Left = 10; //Motor Input 1
int M2_Right = 9; //Motor Input 2
void setup()
{
 Serial.begin(9600); //Serial Port at 9600 baud

 Serial.println("Begin Motor Control:");
 Serial.println("");
 Serial.println("Enter number for control options:");
 Serial.println("1. Stop");
 Serial.println("2. Forward");
 Serial.println("3. Reverse");
 Serial.println("4. Read Current Speed");
 Serial.println("5. Increase Speed");
 Serial.println("6. Decrease Speed");
 Serial.println("7. Reset Speed");
}
void loop()
{
  
 //Only act when data is available in the buffer
 if (Serial.available() > 0)
 {
 data = Serial.read(); //Read byte of data
 //Turn LED on
 if (data == '1')
 {
 stop();
 Serial.println("Stop");
// Serial.println("LED ON");
 }
 //Turn LED off
  if (data == '2')
 {
 forward(velocity);
 Serial.println("Forward");
 boolean inputState = HIGH;
 }

 else if (data == '3')
 {
 reverse(velocity);
 Serial.println("Reverse");
 boolean inputState = LOW;
 }

 else if  (data == '4')
 {
 Serial.println("Velocity=");
 Serial.println(velocity);
 }

else if  (data == '5')
 {
 if(velocity<0)
 {
  velocity=1;
 }
 if(velocity>255)
 {
  velocity=255;
 }
 else {
  velocity++;
 }
 }
 else if  (data == '6')
 {
 if(velocity<0)
 {
  velocity=1;
 }
 if(velocity>255)
 {
  velocity=255;
 }
 else {
  velocity--;
 }
 }
 else if(data=='7')
{
  Serial.println("Velocity Reset");
  velocity=255;
}
 else 
 {
 stop();
 }
 }
}

void forward (int rate)
{
 //val_left=map(val,0,512,255,0);
// boolean inPin1 = LOW;
// boolean inPin2 = rate;

 int inPin1 = LOW;
 int inPin2 = rate;
 analogWrite(M1_Left, inPin1); 
 analogWrite(M1_Right , inPin2); 

 analogWrite(M2_Left, inPin1); 
 analogWrite(M2_Right , inPin2); 

// Serial.print("Inpin1: ");
// Serial.print(inPin1);
// Serial.print("   ");
// Serial.print("Inpin2: ");
// Serial.print(inPin2);
// Serial.print("   ");
//
// Serial.print("Rate: ");
// Serial.println(rate);
}

void reverse (int rate)
{
 //val_left=map(val,0,512,255,0);
// boolean inPin1 = rate;
// boolean inPin2 = LOW;
 int inPin1 = rate;
 int inPin2 = LOW;
 analogWrite(M1_Left, inPin1); 
 analogWrite(M1_Right , inPin2); 

 analogWrite(M2_Left, inPin1); 
 analogWrite(M2_Right , inPin2); 

// Serial.print("Inpin1: ");
// Serial.print(inPin1);
// Serial.print("   ");
// Serial.print("Inpin2: ");
// Serial.print(inPin2);
// Serial.print("   ");
//
// Serial.print("Rate: ");
// Serial.println(rate);
}
void stop()
{
// boolean inPin1 = LOW;
// boolean inPin2 = LOW;
 int inPin1 = LOW;
 int inPin2 = LOW;
 digitalWrite(M1_Left, LOW);
 digitalWrite(M1_Right , LOW);

 digitalWrite(M2_Left, LOW);
 digitalWrite(M2_Right , LOW);

// Serial.print("Inpin1: ");
// Serial.print(inPin1);
// Serial.print("   ");
// Serial.print("Inpin2: ");
// Serial.println(inPin2);
}

No comments:

Post a Comment