سرخط خبرها
خانه » دیگر ... » پخش آنلاین » ساعت عقربه ای دیجیتال-نسخه ۱

ساعت عقربه ای دیجیتال-نسخه ۱

یکی از روش های ساخت ساعت که چند سالی است که از محبوبت خاصی برخوردار شده ساعت های عقربه ای دیجیتالی هست . در این روش با استفاده از led ، ساعت با شکل وظاهر ساعت عقربه ای می سازند.در این بخش یک کلیپ از این ساعت عقربه ای را برای شما آماده کرده ایم

ساعت مجازی عقربه ای

دیدن کلیپ ساعت عقربه ای

[hana-flv-player video=”http://download.yazdkit.com/video/Virtual_Clock.flv” width=”400″ height=”330″ description=”Virtual Clock” player=”2″ autoload=”true” autoplay=”false” loop=”false” autorewind=”true” splashimage=”http://yazdkit.com/wp-content/uploads/2010/02/virtual_clock_v2_a.jpg” /]

اساس کار این مدار بدین صورت میباشد که ابتدا یک ردیف از led را برروی یک برد سوار میکنند و بعد با موتور این برد را شروع به چرخش میکنند و led ها طبق نظم خاصی روشن و خاموش میشود ودر نهایت تصویر مورد نظر را برای ما میسازند. البته روش های دیگری هم برای ساخت ساعت مجازی عقربه ای هم هست.

در بخش زیر میتوانید گالری عکس مربوط به ساعت مجازی عقربه ای ر اببینید. البته این بخش نیز از طریق گالری عکس سایت نیز در دسترس میباشد.

[imagebrowser id=10]

۲۰ دیدگاه

  1. آها از این لینک تونستم کلیپ رو دانلود کنم
    http://yazdkit.com/category/other/online-show/feed
    :alien: :alien: :alien:

  2. من که نتونستم فیلم ها و عکس ها رو ببینم :no: :cyclops:
    فکر کنم که لینک ها خراب شده 😮

  3. با سلام
    خیلی عالیه اگه میشه نقشه مدار روهم بدین ممنون.

  4. دست مدیران سایت درد نکند که همچین سایت پر محتوا وجالبی را برای علاقه مندان دایر کرده اند-علاقه مندان به مطالبی مرتبط با این موضوع در گوگل یا دیگر موتور ها سرچ کنند propeller clock یا باز هم جالب تر از اینها Spinning LED Displays صدها سایت خارجی مدارات وکلیپ های جالبی از این دستگاه را فرار داده اند مثل
    http://hackedgadgets.com/2010/04/20/spinning-rgb-led-ball/

    http://www.circuitlake.com/propeller-clock-mechanically-scanned-led-clock.html
    برنامه در این آدرس وجود دارد از گوگل هم میتونید برای ترجمه صفحه کمک بگیرید بسازید که خیلی حال میده—-
    برای آشنایی برنامه زیر را بررسی کنید ساده وجالبه–

    //**************************************
    // Clock 16Mhz
    // Version 1.0 Janvier 2002
    // Sylvain Bissonnette
    //**************************************

    //**************************************
    // INCLUDE
    //************************************** #include
    #include //**************************************
    // DEFINE
    //************************************** #define TRUE 0x01
    #define FALSE 0x00
    #define ANALOG 0x01
    #define DIGITAL 0x02 //**************************************
    // INTERRUPTHANDLER
    //************************************** #pragma interrupt_handler Crossing_interrupt:2
    #pragma interrupt_handler IR_interrupt:4
    #pragma interrupt_handler Degre_interrupt:5
    #pragma interrupt_handler Ticker_interrupt:7 //**************************************
    // PROTOTYPE
    //************************************** void Crossing_interrupt ( void );
    void Degre_interrupt ( void );
    void Time ( unsigned char );
    void IR_interrupt ( void );
    void Ticker_interrupt ( void );
    void Display ( void );
    void CopyData ( int Value );
    void CopyDot ( void ); //**************************************
    // GLOBALVARIABLE
    //************************************** int WeelPosition ;
    unsigned char Pos ;
    unsigned int Adder ;

    unsigned char LatchedIrData ;

    unsigned char Sec ;
    unsigned char Min ;
    unsigned char Hrs ;

    int SecComp ;
    int MinComp ;
    int HrsComp ;

    unsigned char ClockStyle ;

    unsigned char TimeString [ 50 ];
    unsigned char * TimeStringPtr ;

    unsigned char i ; //**************************************
    // CONSTANT
    //************************************** const unsigned char table [ 12 ][ 6 ] = {{ 0x3e , 0x41 , 0x41 , 0x41 , 0x3e , 0x00 }, // 0 { 0x00 , 0x21 , 0x7f , 0x01 , 0x00 , 0x00 }, // 1 { 0x21 , 0x43 , 0x45 , 0x49 , 0x31 , 0x00 }, // 2 { 0x42 , 0x41 , 0x51 , 0x69 , 0x46 , 0x00 }, // 3 { 0x0c , 0x14 , 0x24 , 0x5f , 0x04 , 0x00 }, // 4 { 0x72 , 0x51 , 0x51 , 0x51 , 0x4e , 0x00 }, // 5 { 0x1e , 0x29 , 0x49 , 0x49 , 0x06 , 0x00 }, // 6 { 0x40 , 0x47 , 0x48 , 0x50 , 0x60 , 0x00 }, // 7 { 0x36 , 0x49 , 0x49 , 0x49 , 0x36 , 0x00 }, // 8 { 0x30 , 0x49 , 0x49 , 0x4a , 0x3c , 0x00 }, // 9 { 0x00 , 0x36 , 0x36 , 0x00 , 0x00 , 0x00 }, // : { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }}; // space

    //**************************************
    // MAIN
    //************************************** void main ()
    { WDTCR = 0x0e ; // Enable WatchDog at 0.97 sec PORTD = 0x0d ; // Pull up on PD2&PD3 & Led White ON DDRD = 0x03 ; // PD0-O PD1-O PD2-I PD3-I PD4-I PD5-I PD6-I PD7-I

    //INT 0 MCUCR = 0x02 ; // Int0 generate int on falling eadge GIMSK = 0x40 ; // Int0 enable

    //Timer0 TCCR0 = 0x05 ; // Timer0 / 1024

    //Timer1 TCCR1B = 0x42 ; // Timer1 / 8 & Input Capture on Rising eadge TIMSK = 0x4a ; // int enable on Timer1 Compare Match
    // int enable on Timer 1 Input Capture
    // int enable on Timer0 Overflow PORTB = 0x00 ; DDRB = 0xff ; // PB0-7 as output Hrs = 0 ; Min = 0 ; Sec = 0 ; ClockStyle = ANALOG ; SEI ();

    while ( 1 )
    {
    asm ( “WDR” );
    for ( i = 0 ; i 59 )
    { Sec = 0 ; Min ++;
    if ( Min > 59 )
    { Min = 0 ; Hrs ++;
    if ( Hrs > 11 )
    { Hrs = 0 ;
    }
    }
    }

    if ( ClockStyle == ANALOG )
    { SecComp = Sec * 6 ; MinComp = Min * 6 ; HrsComp = ( Hrs * 30 )+( Min / 2 );
    }
    else { TimeStringPtr = & TimeString [ 0 ]; CopyData ( Hrs ); CopyDot (); CopyData ( Min ); CopyDot (); CopyData ( Sec );
    }
    } /**********************************************************

    Name: void CopyData(int Value)

    Description:

    Input: none

    Output: none

    Misc:

    **********************************************************/ void CopyData ( int Value )
    {
    if ( Value < 10 )
    {
    for ( i = 0 ; i < 6 ; i ++) * TimeStringPtr ++ = table [ 0 ][ i ];
    for ( i = 0 ; i < 6 ; i ++) * TimeStringPtr ++ = table [ Value ][ i ];
    }
    else { for ( i = 0 ; i < 6 ; i ++) * TimeStringPtr ++ = table [ Value / 10 ][ i ];
    for ( i = 0 ; i < 6 ; i ++) * TimeStringPtr ++ = table [ Value -(( Value / 10 )* 10 )][ i ];
    }
    } /**********************************************************

    Name: void CopySpace(void)

    Description:

    Input: none

    Output: none

    Misc:

    **********************************************************/ void CopyDot ( void )
    {
    for ( i = 0 ; i 250 )
    { Adder = TotalCount / 378 ; Lap = 0 ;
    } WeelPosition = 0 ; OCR1 = Latch + Adder ; TIFR |= 0x80 ; Display ();
    } /**********************************************************

    Name: void Degre_interrupt(void)

    Description:

    Input: none

    Output: none

    Misc:

    **********************************************************/ void Degre_interrupt ( void )
    { OCR1 = TCNT1 + Adder ; Display ();
    } /**********************************************************

    Name: void Display(void)

    Description:

    Input: none

    Output: none

    Misc:

    **********************************************************/ void Display ( void )
    { PORTB = 0x00 ;

    if ( ClockStyle == ANALOG )
    {
    if ( WeelPosition == HrsComp ) PORTB = 0x80 ;
    if ( WeelPosition == MinComp ) PORTB = 0xff ;
    if ( WeelPosition == SecComp ) PORTB |= 0x03 ;

    if (( WeelPosition == 0 ) ||
    ( WeelPosition == 30 ) ||
    ( WeelPosition == 60 ) ||
    ( WeelPosition == 90 ) ||
    ( WeelPosition == 120 ) ||
    ( WeelPosition == 150 ) ||
    ( WeelPosition == 180 ) ||
    ( WeelPosition == 210 ) ||
    ( WeelPosition == 240 ) ||
    ( WeelPosition == 270 ) ||
    ( WeelPosition == 300 ) ||
    ( WeelPosition == 330 )) PORTB |= 0x01 ;
    }
    else { Pos = (( WeelPosition – 100 ) / 3 );
    if ( Pos 4000 )
    { IrPulseCount = 0 ; IrData = 0 ;
    }
    else { IrData = IrData >> 1 ;
    if ( PulseWidth > 2800 ) IrData = IrData | 0x8000 ; IrPulseCount ++;
    if ( IrPulseCount == 12 ) LatchedIrData = (( IrData >> 4 ) & 0x00ff );
    }
    } /**********************************************************

    Name: void Ticker_interrupt(void)

    Description:

    Input: none

    Output: none

    Misc:

    **********************************************************/ void Ticker_interrupt ( void )
    {
    static unsigned char Tick ; Tick ++;
    if ( Tick > 62 )
    { Time ( FALSE ); Tick = 0 ;
    } TCNT0 = 0x04 ; // reload counter }

  5. سلام /نوع زبان برنامه نویسی این ساعت چیه؟

  6. لطفا اموزش ساخت این ساعت قشنگ را بذارید پیشاپسش متشکرم

  7. عزیزان نحوه ساخت ساعت چی شد پس.با آرزوی موفقیت.

  8. سلام
    اگه ممکنه روش ساخت رو تو ی سایت بگذارید یا اگه میشه به ایمیل من ارسال کنید.
    با تشکر

پاسخ دهید