Saturday, October 23, 2010

PWM

A simple Inverter

A serial Port controlled robot

A simple project to start with




char val; // Data received from the serial port

int motorPin1 =4;
int motorPin2 =3;
int motorPin3 =7;
int motorPin4 =8;
void setup()
{
  pinMode(motorPin1, OUTPUT); // Set pin as OUTPUT
  pinMode(motorPin2, OUTPUT); // Set pin as OUTPUT
  pinMode(motorPin3, OUTPUT); // Set pin as OUTPUT
  pinMode(motorPin4, OUTPUT); // Set pin as OUTPUT
  Serial.begin(9600); // Start serial communication at 9600 bps
}

void loop()
{
  if (Serial.available())
  { // If data is available to read,
    val = Serial.read(); // read it and store it in val
  }
  if (val == 'L')
  { // If L was received
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    delay(500);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    delay(2000);
  }
  if (val == 'R')
  { // If R was received
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    delay(500);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    delay(2000);
  }
  if (val == 'B')
  { // If B was received
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
   delay(1000);
  }
  if (val == 'F')
  { // If F was received
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    delay(1000);
  }
  if (val == 'S')
  { // If F was received
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
  }
 
 
}