ST Announces 40W LED Flash Controller

...
ST announces STCF04, an integrated camera flash and torch controller that raises the maximum power of an LED flash module from a few Watts, typical of today’s designs, to over 40 Watts, producing the brightness equivalent to an outdoor security floodlight. The STCF04 is used in a configuration combining a supercapacitor, a discrete high-current MOSFET switch and high-power white LEDs.

A complete flash module built using the STCF04 occupies around 60mm2 of pc-board space. Although larger than other LED modules of lower power, the result remains significantly smaller and simpler than a xenon circuit while satisfying the demand for very high-energy flash illumination.

The STCF04 is currently sampling with full production planned at the end of Q1 2012 The controller is priced at $2.00 for orders of 1000 pieces. Two major partners – Murata which is leading producer of supercapacitors and OSRAM which is a top-tier supplier of flash modules for leading smartphone platforms have begun using the device to showcase the best capabilities of their latest products.
1:01 PM

accident prevention and security system for automobiles project free download

...

In this fast moving world, new technologies have been evolved for every second for our human life style improvement. There have enormous advancement in automobile technologies already and still to come. Because of these technologies, now we are enjoying the necessary comfort and safety.

But there are lots of accidents happening now-a-days. It is because of increased vehicle density, violation of rules and carelessness. India ranks fifth in the road accidents over the world.

We have the objective to minimize the road accidents due to above mentioned facts in real time using embedded systems platform in low cost. In our project, we proposed few concepts to minimize the accidents due to violating rules and carelessness.

Our project comprises of five sub-concepts namely,
·         ALCOHOL DETECTOR – if the driver is sensed to be alcohol consumed then the vehicle will not starts.
·         MOBILE SNIFFING SYSTEM – during travelling, if he uses mobile phones then he/she is allowed to use not more than 15 seconds. Then a voice message about stop using mobiles will be given. If still he/she continues, the vehicle will get slow and stops.
·         EMERGENCY SYSTEM – accidents occurs if any, then the accident is recognized using vibrating sensor and using GSM module the area where the accident took place is sent to emergency centers like 108, etc…
·         SECURITY SYSTEM – if the vehicle is found to theft, then the user can identify the location where the vehicle now and stop the fuel flow as well as to activate the center lock of vehicle using GSM module.  
By using these concepts, we hope that the road accidents due to violating rules and careless-ness will be minimized and this will be one of the project required for present days and with the significance of low cost.

INTRODUCTION
The population of our country has been increasing rapidly which indirectly increases the vehicle density and leads to many road accidents. The aim of the project in to minimize the road accidents which causes the loss of invaluable human life and other valuable goods. Beside, the provision for the safety of the vehicle is also provided to avoid the theft action. In this fast moving world, new technologies have been evolved for every second for our human life style improvement. There have enormous advancement in automobile technologies already and still to come. Because of these technologies, now we are enjoying the necessary comfort-ness and safety. But there is lot of accidents happening now-a-days. It is because of increased vehicle density, violating rules and carelessness. The embedded technology is used to prevent accidents due to drunk driving, using mobile phones while driving etc,.. If accidents occurs in remote areas, the feature of auto-providing the accident area to the emergency centers for help and support is also provided. On the other hand, the security for the vehicle is also enhanced. This is made possible because the theft vehicle area can be known to the user and the vehicle fuel can be cut off and center lock is enabled. By using these concepts, we hope that the road accidents due to violating rules and careless-ness will be minimized and this will be one of the project required for now-a-days and with the significance of low cost.
TO READ MORE DOWNLOAD
8:06 AM

CCD vs CMOS Sensors in Traffic Applications

...
A recent Adimec blog post discusses the merits of CCD and CMOS sensors in traffic camera applications. The article concludes: "In 1 to 2 years, CMOS image sensors will outperform CCD regarding traffic requirements in high speed applications. It may then take some time for CMOS to take over in systems as the market accepts the change and makes all of the corresponding system changes".

Thanks to GA for the link!
6:20 AM

Omnivision's 1.4um 10MP Sensor Wins Electronic Design Magazine's Best of 2011 Award

...
PR Newswire: 10MP OV10810 has been named the best image sensor of 2011 by Electronic Design Magazine, as part the publication's annual 'Best Electronic Design' awards. Determined by staff editors, the awards recognize the most significant designs and innovations of the year across fifteen categories, ranging from power and communications to components and displays.

"The OV10810's ability to capture full-frame 10-megapixel images while simultaneously recording 1080p high-definition video sets it apart from other image sensors," said Mathew Dirjish, component editor at Electronic Design Magazine. "The complete convergence of high-resolution still photography and high-definition video places it in the top ranks of this year's best image-sensing technologies."

"The OV10810 leverages our second generation OmniBSI pixel architecture", said Devang Patel, senior product marketing manager at OmniVision. I'm a little confused about the difference between the second generation OmniBSI, OmniBSI-2 and OmniBSI+. Interesting that neither initial OV10810 announcement nor the product's page mention the second generation of OmniBSI.
6:13 AM

RFID based Secured access system using 8051 microcontroller (AT89C51)

...
This is a very useful application of RFID (Radio-frequency identification) and is very commonly used in institutes, offices, homes and so on. An RFID system consists of a reader device and a transponder. A transponder or tag has a unique serial number which is identified by the reader. Here RFID has been interfaced with AT89C51 to provide secured access. The relevant messages are also displayed on a 16x2 LCD. The free source code for the program is available in C.
RFID based Secured access system using 8051 microcontroller (AT89C51)
DESCRIBTION(click here)
  • Low frequency RFID works on the principle of radio waves and at the frequency of 125 KHz. There is a coil inside the RFID tag and when it is influenced by magnetic field, it sends an identity code to a device for further processing. (For more details, refer interfacing RFID with AT89C51).

    The RFID tag is used as an identity for a particular user. If the identity (serial number of the tag) of the user is matched with the one already stored in this system, he gets immediate access through it. This RFID based secured access system also has many additional features. For example, a new user can register himself with the system. A registered user can also withdraw his entry from the system. These features can be accessed by pressing a tactile switch connected to the microcontroller.

    In beginning, the user is prompted to scan his tag or ID. The serial code of the tag is identified by the reader module and is sent to AT89C51 for checking. If the ID is matched by the microcontroller, the user gets the access. On the contrary, if the tag is not identified, a message (‘Wrong ID’) is displayed on LCD screen.

    A new user needs to press the switch to register after which his identity is verified twice with RFID tag. The new record is stored by the microcontroller to grant future access. The system also shows ‘Error’ if the tags do not match during verification. An existing user can delete his record by pressing the same switch. Again the verification is carried out and the user is deleted if the IDs match. If a different tag is scanned through the reader, LCD displays ‘you have shown different ID’.

    When an RFID tag comes in this range, the reader detects it and sends a unique code of the tag serially. This serial code, consisting of 12 bytes, is received by the microcontroller. This code is treated as an ID for the user and is stored as an array in the microcontroller. If the ID is matched with this code, the user is granted access though the system. For more details on working and connections of the circuit, refer RFID interfacing through serial interrupt.

CODE(click here)

  • //Program for RFID based Secured access system using 8051 microcontroller (AT89C51)

    #include<reg51.h>

    sfr lcd_data_pin=0xA0; //P2 port

    sbit rs=P1^0;

    sbit rw=P1^1;

    sbit en=P1^2;

    sbit new_user=P1^3;

    unsigned char card_id[12],index=0,key1=0,flag0=0,flag1=0,flag2=0,flag3=0;

    unsigned char card_mem[6][12];   //={/*'2','6','0','0','9','3','6','C','B','2','6','B',*/'2','6','0','0','9','1','1','D','D','B','7','1','2','6','0','0','9','3','6','F','7','2','A','8','0','F','0','0','2','D','D','7','D','0','2','5'};

    unsigned char current_byte = 0;

    void display();

    void memory();



    void delay(unsigned int count) //Function to provide time delay

    {

    int i,j;

    for(i=0;i<count;i++)

    for(j=0;j<1275;j++);

    }



    void lcd_command(unsigned char comm)   //Lcd command funtion

    {

    lcd_data_pin=comm;

    en=1;

    rs=0;

    rw=0;

    delay(1);

    en=0;

    }



    void lcd_data(unsigned char disp)  //Lcd data function

    {

    lcd_data_pin=disp;

    en=1;

    rs=1;

    rw=0;

    delay(1);

    en=0;

    }



    lcd_string(unsigned char *disp) //Lcd string function

    {

    int x;

    for(x=0;disp[x]!=0;x++)

    {

    lcd_data(disp[x]);

    }

    }



    void lcd_ini()   //Function to initialize the LCD

    {

    lcd_command(0x38);   

    delay(5);

    lcd_command(0x0F);        

    delay(5);

    lcd_command(0x80);

    delay(5);

    }

      

    void display() // Function to display the unique ID

    {

    unsigned char count,i,key,flag=0,val;

    lcd_command(0x01);

    lcd_command(0x80); //Place cursor to second position of second line

    val=index;

    for(i=0;i<index;i++)

    {

    key=0;

    for(count=0;count<12;count++)

    {

    if(card_id[count]==card_mem[i][count])

    {

    key++;

    }

    }

    if(key==12)

    {

    flag=1;

    lcd_command(0x80);

    lcd_string("Access granted");

    lcd_command(0xC4);

    lcd_string("USER ");

    lcd_command(0xC9);

    lcd_data(49+i);

    delay(100);

    break;

    }

    }

    if(flag==0)

    {

    lcd_command(0x84);

    lcd_string("Wrong ID");

    delay(200);

    }

    lcd_command(0x01);

    lcd_command(0x80);

    lcd_string("Pls scan your ID");

    current_byte=0;

    }



    void recieve() interrupt 4 //Function to recieve data serialy from RS232

    {

    card_id[current_byte]=SBUF;

       RI=0; // Reset the serial interrupt after recieving the byte

    current_byte++;

    }



    void memory()

    {

    unsigned char i,key=0,count,try=0,head=0,select=0,mod=0,size;

    unsigned int in,j;

    lcd_command(0x01);

    lcd_string("scan your ID");

    current_byte=0;

    while(current_byte!=12);

    current_byte=0;

    for(i=0;i<6;i++)

    {

    key=0;

    for(count=0;count<12;count++)

    {

       if(card_id[count]==card_mem[i][count])

    {

    key++;

    }

    }

    if(key==12)

    {

    size=i;

    lcd_command(0x01);

    lcd_string("Like to delete");

    lcd_command(0xC0);

    lcd_string("If yes scan ID");

    for(in=0;in<500;in++)

    {

    for(j=0;j<1275;j++)

    {

    if(current_byte==12)

    {

    break;

    }

    }

    if(current_byte==12)

    {

    break;

    }

    }

    if(current_byte==12)

    {

    for(in=0;in<12;in++)

    {

    if(card_id[in]==card_mem[size][in])

    {

    mod++;

    }

    }

    if(mod==12)

    {

    for(in=0;in<12;in++)

    {

    card_mem[size][in]=5;

    }

    lcd_command(0x01);

    lcd_string("congratulation!");

    lcd_command(0xC0);

    lcd_string("You are deleted");

    delay(200);

    lcd_command(0x01);

    lcd_string("Pls scan your ID");

    key=0;

    try=1;

    break;

    }

    if(mod!=12)

    {

    lcd_command(0x01);

    lcd_string("You have shown");

    lcd_command(0xC0);

    lcd_string("different ID");

    delay(200);

    lcd_command(0x01);

    lcd_string("Pls scan your ID");

    key=0;

    try=1;

    break;

    }

    }

    if(current_byte!=12)

    {

    lcd_command(0x01);

    lcd_string("Sorry ! You are");

    lcd_command(0xC0);

    lcd_string("already an user");

    delay(200);

    lcd_command(0x01);

    lcd_string("Pls scan your ID");

    key=0;

    try=1;

    break;

    }

    }

    }

    current_byte=0;

    if(key<12 && try==0)

    {

    key=0;

    for(i=0;i<12;i++)

    {

    card_mem[index][i]=card_id[i];

    }

    current_byte=0;

    lcd_command(0x01);

    lcd_string("Pls scan again");

        while(current_byte!=12);

    for(i=0;i<12;i++)

    {

    if(card_mem[index][i]==card_id[i])

    {

    key++;

    }

    }

       current_byte=0;

    if(key==12)

        {

    lcd_command(0x01);

    lcd_string("Pls varify again ");

    while(current_byte!=12);

    key=0;

    for(i=0;i<12;i++)

    {

    if(card_mem[index][i]==card_id[i])

    {

    key++;

    }

    }

    current_byte=0;

    }

    else

        {

    lcd_command(0x01);

    lcd_string("ERROR");

    delay(200);

    for(i=0;i<12;i++)

    {

    card_mem[index][i]=0;

    }

    lcd_command(0x01);

    lcd_string("Pls scan your ID");

    }

    if(key==12)

    {

    lcd_command(0x01);

    lcd_string("Congratulation !");

    lcd_command(0xC0);

    lcd_string("You are User");

    lcd_command(0xCC);

    lcd_data(index+49);

    delay(250);

    lcd_command(0x01);

    lcd_string("Pls scan your ID");

    }

    else

        {

    lcd_command(0x01);

    lcd_string("ERROR");

    delay(200);

    for(i=0;i<12;i++)

    {

    card_mem[index][i]=0;

    }

    lcd_command(0x01);

    lcd_string("Pls scan your ID");

    }

    if(key==12)

    index++;

       }

    }



    void main()

    {

        new_user=1;

    TMOD=0x20; //Enable Timer 1

    TH1=0XFD;

    SCON=0x50;

    TR1=1;

    IE=0x94;

    new_user=0; // Trigger Timer 1

    lcd_ini();

    lcd_command(0x80); //Place cursor to second position of first line

    lcd_string("Pls scan your ID");

    delay(200);

    while(1)

    {

    if(new_user==1)

    {

    memory();

    }

    if(current_byte==12)

    {

    display();

    }

    }

    }



COMPONENTS(click here)
  • AT89C51 Microcontroller
  • MAX232 
  • LCD
8:10 AM

How to interface Stepper Motor with 8051 Microcontroller (AT89C51)

...
Interfacing Stepper Motor with 8051 Microcontroller : Project
Stepper motor is one of the commonly used motors for precise angular movement. The advantage of using a stepper motor is that the angular position of the motor shaft can be controlled without any feedback mechanism. Stepper motors are widely used in industrial and commercial applications. They are also commonly used as in drive systems of autonomous robots.
This article explains the interfacing of a unipolar stepper motor with AT89C51 microcontroller. The microcontroller is programmed to rotate the stepper in wave drive and half drive stepping modes. For basic concepts and working of a stepper motor, refer the article on Stepper Motors.


DESCRIBTION(click here)
  • A Unipolar Stepper Motor is rotated by energizing the stator coils in a sequence. In unipolar stepper, the direction of current in stator coils is not required to be controlled by the driving circuit. Just applying the voltage signals across the motor coils or motor leads in a sequence is sufficient to drive the motor.
    Unipolar Stepper Motor Wires and PhasesA two phase unipolar stepper motor has a total of six wires/leads of which four are end wires (connected to coils) and two are common wires. The color of common wires in the stepper motor used here is Green. Each common wire is connected to two end leads thus forming two phases. The end leads corresponding to each phase have to be identified
    In some cases, when the leads cannot be directly identified in the motor, the identification of endpoints and common points can be done by measuring the resistance between the leads. The leads of different phase will show open circuited condition with respect to each other. This way the leads corresponding to different phase can be separated. The resistance between any two end points of same phase will be twice the resistance between a common point and an end point. This way the common and end points of both the phases can be identified.
     
    Unipolar Stepper Motor ConfigurationTo work with the unipolar stepper motor, the common points are connected to either Ground or Vcc and the end points of both the phases are usually connected through the port pins of a microcontroller. In present case the common (Green) wires are connected to Vcc. The end points receive the control signals as per the controller's output in a particular sequence to drive the motor.
     Since the coils related to each phase are arranged in alternate manner, the end points of two phases are energized in alternate fashion to rotate the motor. This means that the voltage signal should be applied to first end point of Phase1 and then to the first end point of the Phase2 and so on.
    1. Wave Drive Stepping Mode
    The above mentioned sequence is repeated to rotate the motor in Wave Drive Stepping Mode. (For more details on different Stepping Modes, refer to the article on Stepper Motors) The direction of rotation can be clockwise or anti clockwise depending upon the selection of end points.
    Signal sequence for Wave Drive Stepping Mode
    Step
    Yellow lead
    (End point 1 of Phase1)
    Blue lead
    (End point 2 of Phase1)
    Red lead
    (End point 1 of Phase2)
    White lead
    (End point 2 of Phase2)
    1
    1
    0
    0
    0
    2
    0
    0
    1
    0
    3
    0
    1
    0
    0
    4
    0
    0
    0
    1



    2. Full Drive Stepping Mode
    The Full Drive Stepping can be achieved by energizing two endpoints of different phases simultaneously. 
    Signal sequence for Full Drive Stepping Mode
    Step
    Yellow lead
    (End point 1 of Phase1)
    Blue lead
    (End point 2 of Phase1)
    Red lead
    (End point 1 of Phase2)
    White lead
    (End point 2 of Phase2)
    1
    1
    0
    1
    0
    2
    0
    1
    1
    0
    3
    0
    1
    0
    1
    4
    1
    0
    0
    1
    3. Half Drive Stepping Mode
    The Half Drive Stepping is achieved by combining the steps of Wave and Full Drive Stepping Modes. This divides the stepping angle by half.
    Signal sequence for Half Drive Stepping Mode
    Step
    Yellow lead
    (End point 1 of Phase1)
    Blue lead
    (End point 2 of Phase1)
    Red lead
    (End point 1 of Phase2)
    White lead
    (End point 2 of Phase2)
    1
    1
    0
    0
    0
    2
    1
    0
    1
    0
    3
    0
    0
    1
    0
    4
    0
    1
    1
    0
    5
    0
    1
    0
    0
    6
    0
    1
    0
    1
    7
    0
    0
    0
    1
    8
    1
    0
    0
    1
    Note:
    The stepping angle depends upon the resolution of the stepper motor. The direction of rotation and size of steps is directly related to the order and number of input sequence.  The shaft rotation speed depends on the frequency of the input sequence. The torque is proportional to the number of magnets magnetized at a time.
    Circuit Description:
    In the circuit, Port P2 is defined as output port to provide the input sequence for the stepper motor. Four transistors are used as switches to drive the motor. The motor leads are not directly interfaced with the microcontroller pins because stepper motor requires 60mA current while AT89C51 has the maximum current rating of 50mA. So the transistors switches are used to transfer signals from the microcontroller to the stepper wires.
    The sequence of signals mentioned in the tables above rotates the motor in clockwise direction. Reversing these input sequences would rotate the motor in counter clockwise direction.
    The four transistors used in this circuit could be replaced altogether by ULN2003 as has been explained in the next article.
CODE(click here)

  • // Program to interface Stepper Motor with 8051 Microcontroller (AT89C51)

    /**** Wave Drive Stepping ****/

    #include<reg51.h>

    sfr stepper=0xA0;



    void delay(unsigned int count)

    {

    int i;

    for(i=0;i<count;i++);

    }



    void main()

    {

    while(1)

    {

    stepper=0x01;

    delay(350);

    stepper=0x02;

    delay(350);

    stepper=0x04;

    delay(350);

    stepper=0x08;

    delay(350);

    }

    }

    /*****************************/



    /**** Half Drive Stepping ****/

    #include<reg51.h>

    sfr stepper=0xA0;



    void delay(unsigned int count)

    {

    int i;

    for(i=0;i<count;i++);

    }



    void main()

    {

    while(1)

    {

    stepper=0x01;

    delay(300);

    stepper=0x03;

    delay(300);

    stepper=0x02;

    delay(300);

    stepper=0x06;

    delay(300);

    stepper=0x04;

    delay(300);

    stepper=0x0C;

    delay(300);

    stepper=0x08;

    delay(300);

    stepper=0x09;

    delay(300);

    }

    }

    /*****************************/

COMPONENTS(click here)
  • AT89C51 Microcontroller
  • Transistor BC547
8:06 AM