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