WP8 Bluetooth RGB

Written by Diego. Posted in .Net, electronics, Misc, MplabX, Projects, WP8

WP_20140907_006WP8 Bluetooth

Finalmente concluso il progetto di controllo di un led RGB con il bluetooth e un dispositivo mobile.

La scheda prevede una connessione usb per l’alimentazione a 5V, un modulo bluetooth HC-06 con led status per la connessione e un pic12f1572 per leggere i dati trasmessi via seriale e gestire le tre uscite per il led in pwm.

Il programma di controllo è scritto per dispositivi Windows Phone e si interfaccia grazie a una libreria bluetooth che trovate sempre sul mio github.

Il programma per il pic è scritto in XC8 con mplabx e legge i dati sulla seriale secondo il comando {0x01,hexRed,hexGreen,hexBlu,0xff} ogni volta che riceve un interrupt.

Per impostare la uart di un pic12f1572 è sufficiente:

void init_uart(void) // init UART module for 9600bps boud, start bit 1, stopbit 1, parity NONE
{

    TRISAbits.TRISA1=1; //Make UART RX pin input
    TRISAbits.TRISA0=0; //Make UART TX pin output
    SPBRGH = 0x01; //9600bps 16MHz Osc
    SPBRGL = 0xA0;

    RCSTAbits.CREN=1; //1 = Enables receiver
    RCSTAbits.SPEN=1; //1 = Serial port enabled (configures RX/DT and TX/CK pins as serial port pins)
    BAUDCONbits.BRG16=1;//1 = 16-bit Baud Rate Generator ? SPBRGH and SPBRGL

    TXSTAbits.SYNC=0; //0 = Asynchronous mode
    TXSTAbits.BRGH=1; //1 = High speed
    TXSTAbits.TXEN=1; //1 = Transmit enabled
    PIE1bits.RCIE=1; // 1 = Enables the EUSART receive interrupt
    INTCONbits.GIE = 1;//enable interrupts
    INTCONbits.PEIE = 1;

}

Mentre per impostare L’output pwm

    //Change pin out pwm on RA4 - RA5
    APFCONbits.P1SEL = 1;
    APFCONbits.P2SEL = 1;

    PWM1CONbits.EN = 1;
    PWM1CONbits.OE = 1;
    PWM1CONbits.MODE = 00;
    PWM1CONbits.POL = 0;

    ///PWM CLOCK

    PWM1CLKCONbits.PS = 00;
    PWM1CLKCONbits.CS = 00;

    //PWM SET PERIOD

    PWM1PRH = 0xff;
    PWM1PRL = 0xff;
    PWM1DCH = 0xff;
    PWM1DCL = 0xff;

 

Per Impostare un nuovo valore basta scrivere nel registro della pwm desiderata il valore a 16 bit e resettare ogni volta il PWMXLD per rendere effettivo il nuovo valore.

void set_pwmRED(unsigned int value) {
    PWM1PHH = (unsigned char) (value >> 8);
    PWM1PHL = (unsigned char) (value);
    //reset pwm
    PWM1LD = 0xFF;
}

Tutta la documentazione con i file Eagle, BOM List, Hex, e applicazione WP8, li trovate al repository : https://github.com/bgvsan/blutooth_RGB

Questo è il video della Realizzazione.

Trackback dal tuo sito.

Commenti (7)

  • MREZRAHMAN

    |

    Hi. I am doing a project with the microcontroller PIC12F1572. If you could please give me the Eagle PCB Library file of the microcontroller, I would much appreciate it.

    Thanks and Best Regards,
    MRezrahman

    Rispondi

    • Diego

      |

      i will try to upload to gitub tomorrow!

      Rispondi

    • Diego

      |

      microchip library added

      Rispondi

  • Victor

    |

    Can you upload the app diego?

    Rispondi

    • Diego

      |

      the app is in the git hub repository

      Rispondi

  • Santi

    |

    Hi Diego

    I can not open Eagle file ,please send me by e-mail.

    Thank you in advance
    Santi

    Rispondi

    • Diego

      |

      Hi, what is the problem with the eagle file?

      Rispondi

Lascia un commento

Books

Books

unit test
custom
Amazon