Home > Uncategorized > Arduino Parking Lot ( Filled )

Arduino Parking Lot ( Filled )

Wiring diagram:

Here is the code:

/*ParkingL02.pde
Arduining.com 08 JUL 2012
Code used in the production of the Youtube material.
*/

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

#define ServoM    12        //Connected to the servo motor.
#define Bright    11        //servo library disable PWM on pins 9 and 10.
#define Exit      9         //Pin connected to the EXIT button.
#define In        8         //Pin connected to the IN button.

#define BarLow    177       //Low position of the barrier.
#define BarUp     95        //Up position of the barrier.
#define CAPACITY  8         //Capacity of the parking lot.
#define INTEN     80        //Display intensity %

//Pins conections to segments (cathodes).
#define  segA  0
#define  segB  1
#define  segC  2
#define  segD  3
#define  segE  4
#define  segF  5
#define  segG  6

//Array with the segments to represent the decimal numbers (0-9).
byte segments[10] = {
// pgfedcba  <--- segments
  B00111111, // number 0
  B00000110, // number 1
  B01011011, // number 2
  B01001111, // number 3
  B01100110, // number 4
  B01101101, // number 5
  B01111101, // number 6
  B00000111, // number 7
  B01111111, // number 8
  B01101111  // number 9
};

void setup(){
  myservo.attach(ServoM);          // attaches the servo.

  pinMode(Exit, INPUT);           // set "EXIT" button pin to input
  pinMode(In, INPUT);             // set "IN" button pin to input
  digitalWrite(Exit, HIGH);       // Connect Pull-Up resistor.
  digitalWrite(In, HIGH);         // Connect Pull-Up resistor.
  pinMode(segA,OUTPUT);
  pinMode(segB,OUTPUT);
  pinMode(segC,OUTPUT);
  pinMode(segD,OUTPUT);
  pinMode(segE,OUTPUT);
  pinMode(segF,OUTPUT);
  pinMode(segG,OUTPUT);
  pinMode(Bright,OUTPUT);
  analogWrite(Bright,255*INTEN/100);
  myservo.write(BarLow);          //Barrier in the low position
//  delay(1000);
}

int  Available= 9;                    // Number of places available.

//================================================================
void loop(){
Display(Available);
if(digitalRead(In)==0)
{
  if(Available != 0){
    Available--;
    myservo.write(BarUp);
    delay(3000);
    myservo.write(BarLow);
    }
  }
if(digitalRead(Exit)==0)
{
  if(Available != CAPACITY){
    Available++;
    myservo.write(BarUp);
    delay(3000);
    myservo.write(BarLow);
    }
  }
}

/*-------------------------------------------------------------------
Put the segments according to the number.
--------------------------------------------------------------------*/
void Display(int number){
byte segs =  ~segments[number];        //"~" is used for commom anode.

digitalWrite(segA, bitRead(segs, 0) );
digitalWrite(segB, bitRead(segs, 1) );
digitalWrite(segC, bitRead(segs, 2) );
digitalWrite(segD, bitRead(segs, 3) );
digitalWrite(segE, bitRead(segs, 4) );
digitalWrite(segF, bitRead(segs, 5) );
digitalWrite(segG, bitRead(segs, 6) );
}

See it in Youtube:

and how was done:

About these ads
Categories: Uncategorized
  1. Kim
    October 16, 2012 at 3:10 PM | #1

    Nice! Why not use cap sense Library and use a small metallic plate at the entrance?
    Cheers Kim

    • October 16, 2012 at 9:35 PM | #2

      Thanks, I’ll do some experiments using your idea.

  2. ghit86
    October 16, 2012 at 5:10 PM | #3

    Goo job!

  3. Line96
    November 22, 2012 at 11:41 PM | #4

    nice project. wanna ask, what material used to build the switch pad?

    • December 12, 2012 at 11:10 AM | #5

      Aluminium foil, you can find it at the supermarket. Check the second video.

  4. December 19, 2012 at 6:26 PM | #6

    Awesome project.

    Where did you get the servo rotor?

    • December 22, 2012 at 10:27 AM | #7

      Amazon, Sparkfun, Robotshop, dealextreme, adafruit, Plolu, eBay,
      I have used all of them sucessfully…

  5. Maze1
    March 29, 2013 at 8:35 PM | #8

    Nice Job!!! What kind of sensor did you use and how was it connected?

  6. March 31, 2013 at 7:25 AM | #9

    hello can you email me the full program for your project im doing a similar project and I need some help

  7. April 16, 2013 at 1:26 PM | #10

    Would it be possible to use two touch sensor for the entrance and exit?

  1. October 15, 2012 at 1:45 AM | #1
  2. October 15, 2012 at 2:34 PM | #2
  3. October 15, 2012 at 3:14 PM | #3
  4. October 16, 2012 at 12:35 AM | #4
  5. October 17, 2012 at 1:08 AM | #5
  6. January 20, 2013 at 7:08 AM | #6

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: