Tuesday, May 12, 2015

Combination of leds, servo, push button

         In this improvement, we used yellow, green, red leds, 2 push buttons and 1 servo. This mini project is a combination of 3 different hardware components. Our task is by looking the state of push buttons, changing the servo state. If push button 1 is low, we increase the servo state. If push button 2 is low, we decrease the servo state. Our 2nd task is, by looking this servo state we changed the states of these 3 leds. We did this by a simple way; using if else statements.

Berrak Şişman, İlker Çam
Our circuit photo is given below.


#include "servo.h"

const int LedRed = 13;
const int LedGreen = 11;
const int LedYellow = 12;

const int btn1 = 2;
const int btn2 = 3;

const int servoPin = 9;
Servo servo1;
unsigned int ServoPosition = 90;
void setup() {
  // put your setup code here, to run once:
  servo1.attach(servoPin);
  pinMode(btn1,INPUT);
  pinMode(btn2,INPUT);

  pinMode(LedRed,OUTPUT);
  pinMode(LedGreen,OUTPUT);
  pinMode(LedYellow,OUTPUT);
  servo1.write(ServoPosition);
  Serial.begin(9600);
}

void loop() {
  int btn1State,btn2State;
  unsigned int servoStateHasBeenChanged = 0;
  btn1State = digitalRead(btn1);
  btn2State = digitalRead(btn2);
  Serial.println(ServoPosition);
  if(btn1State == LOW){
    ServoPosition = ((ServoPosition + 4 )%180);
    servoStateHasBeenChanged = 1;
    Serial.println("BTN 1 Pressed\n");
  }else if(btn2State == LOW){
    ServoPosition = ((ServoPosition - 4 )%180);
    servoStateHasBeenChanged = 1;
    Serial.println("BTN 2 Pressed\n");
  }
  if(ServoPosition<92 data-blogger-escaped-servoposition=""> 88){
    digitalWrite(LedGreen,LOW);
    digitalWrite(LedRed,LOW);
    digitalWrite(LedYellow,HIGH);
  }else if(ServoPosition<90 data-blogger-escaped-digitalwrite="" data-blogger-escaped-edgreen="" data-blogger-escaped-edred="" data-blogger-escaped-edyellow="" data-blogger-escaped-else="" data-blogger-escaped-ervoposition="" data-blogger-escaped-if="">90){
    digitalWrite(LedGreen,LOW);
    digitalWrite(LedRed,HIGH);
    digitalWrite(LedYellow,LOW);
  }

  if(servoStateHasBeenChanged == 1){
    servo1.write(ServoPosition);
  }
  delay(50);
}

No comments:

Post a Comment