loading

This is my first play with the HC-05 Bluetooth device (and my first instructable !)

I programmed the PIC to receive and send data @ 9600 baud as this was the default settings of the HC-05.

Basically I connect to the bluetooth device and send data from my Android phone.

Sent text gets displayed on the LCD panel. Sending '#' then numbers 1 to 8 operates the associated relay.

When the relay is activated, the PIC sends either the number of the intended relay activated (1 to 8) or a letter, A to H (A = relay 1, B= relay 2 etc.)

This returned value is used to change the colour of the text on the button from red to green or green to red depending on the state of the relay.

Because there is no 'handshaking' I send each character with a 250ms delay to avoid overrun.

The PIC programme was written with the aid of Oshonsoft simulator (invaluable and inexpensive software) and the Android App was written using MIT App Inventor 2 - a completely different way of coding, but an excellent piece of software - and it's FREE !

<p>Here is the PIC code. Its a tad messy as its based around an LCD test prog from China.</p><p>Not too much in the way of comments either :-(</p><p>===================================================</p><p>;Control LCD &amp; Relays using Bluetooth . Servo code for future - code untested.</p><p>;Based on LCD test code - some code is not used!</p><p>#INCLUDE&lt;c:\P16F877a.INC&gt; </p><p>__CONFIG _DEBUG_OFF&amp;_CP_ALL&amp;_WRT_HALF&amp;_CPD_ON&amp;_LVP_OFF&amp;_BODEN_OFF&amp;_PWRTE_ON&amp;_WDT_OFF&amp;_HS_OSC</p><p>;THE configure of MCU,watchdog OFF,electrify delay OPEN,power down check OFF,</p><p>;LOW power programme OFF,encrypt,4M crystal HS surge.</p><p>Z EQU 2 ;define Z status's address</p><p>RP0 EQU 5 ;define RP0's address</p><p>;#DEFINE RS PORTC,0</p><p>;#DEFINE RW PORTC,1</p><p>;#DEFINE E PORTC,4</p><p>#DEFINE RS PORTA,1</p><p>#DEFINE RW PORTA,2</p><p>#DEFINE E PORTA,3</p><p>;*********************</p><p>;RS EQU 1 ;</p><p>;RW EQU 2 ;</p><p>;E EQU 3 ;</p><p> COUNT2 EQU 27H ;define count reg address</p><p> TMP1 EQU 28H ;define temp count reg.</p><p>COUNT3 EQU 34H ;define count reg address</p><p>TMP3 EQU 35H ;define temp count reg.</p><p>VAL_US EQU .249 ;short delay parameter</p><p>VAL_MS EQU .200 ;long delay parameter</p><p>COUNT EQU 25H</p><p>COUNT_MS EQU 26H</p><p> ORG 00H</p><p> NOP</p><p> NOP</p><p> NOP</p><p> GOTO MAIN</p><p> ORG 04H ;interrupt entrance address</p><p> BTFSS PIR1,RCIF ;judge if COMM receive interrupt </p><p> GOTO nextint ;no, jump to interrupt end program </p><p> MOVF RCREG,0 ;read data of receive register </p><p> goto after</p><p>;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>;</p><p>nextint</p><p> btfss INTCON,2</p><p> goto EXIT</p><p> call serv</p><p> goto EXIT</p><p>after</p><p>;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> movwf 2Ah;temp store for rx buffer</p><p>isittilde ; ~ stop servo control</p><p>movf 02Ah,0</p><p>XORLW 07eH;~</p><p>BTFSS STATUS,Z</p><p>goto isitcaret </p><p>clrf 02bh ; clr the last ctrl </p><p>BCF INTCON,5h ; timer0 int DISable</p><p>goto EXIT</p><p>isitcaret ; will be used control servo motor</p><p>movf 02Ah,0</p><p>XORLW 05eH;^</p><p>BTFSS STATUS,Z</p><p>goto testcarat ;isithash</p><p>incf 030h</p><p>BSF INTCON,5h ; timer0 int enable</p><p>movf 02ah,0 ; tmp store of last control character</p><p>movwf 02bh</p><p>movlw 02h</p><p>movwf 02eh</p><p>goto EXIT</p><p>testcarat</p><p>movf 02bh,0 ;was prec cont char ^</p><p>XORLW 05eh</p><p>BTFSS STATUS,Z</p><p>goto isithash ;clrit ; was clrit</p><p> movf 02ah,0 ;delay value for servo delay</p><p>movwf 03fh</p><p>goto EXIT</p><p>isithash</p><p>movf 02Ah,0</p><p>XORLW 023H;#</p><p>BTFSS STATUS,Z</p><p>goto testhash</p><p>movf 02ah,0</p><p>movwf 02bh</p><p>movlw 02h</p><p>movwf 02eh</p><p>;call Line2</p><p>goto EXIT</p><p>testhash</p><p>D3 movf PORTB,0</p><p>movwf 03ah ; temp copy of portb</p><p>;set bit on port D if prevoius char was a #</p><p>movf 02bh,0</p><p>XORLW 023h</p><p>BTFSS STATUS,Z</p><p>goto clrit</p><p>movf 02Ah,0</p><p>ANDLW 0fh</p><p>MOVwf 02ch</p><p>movf 02ch,1</p><p>movlw 01h</p><p>movwf 02dh</p><p>dexRLF 02dh, 1</p><p>DECFSZ 02ch, 1</p><p>goto dex</p><p>RRF 02dh, 1</p><p>movf 02dh,0</p><p>XORWF PORTB,1 ; update relays</p><p>;;===================transmit relay info =======================</p><p>movf 02Ah,0</p><p>ANDLW 0fh</p><p>movwf 03dh</p><p>b0</p><p>movf 03dh,0</p><p>XORLW 01h</p><p>BTFSS STATUS,Z</p><p>goto b1</p><p>movf 02Ah,0</p><p>btfss PORTB,0 </p><p>ADDLW 10h</p><p>call txit</p><p>b1</p><p>movf 03dh,0</p><p>XORLW 02h</p><p>BTFSS STATUS,Z</p><p>goto b2</p><p>movf 02Ah,0</p><p>btfss PORTB,1</p><p>ADDLW 10h</p><p>call txit</p><p>b2</p><p>movf 03dh,0</p><p>XORLW 03h</p><p>BTFSS STATUS,Z</p><p>goto b3</p><p>movf 02Ah,0</p><p>btfss PORTB,2</p><p>ADDLW 10h</p><p>call txit</p><p>b3</p><p>movf 03dh,0</p><p>XORLW 04h</p><p>BTFSS STATUS,Z</p><p>goto b4</p><p>movf 02Ah,0</p><p>btfss PORTB,3</p><p>ADDLW 10h</p><p>call txit</p><p>b4</p><p>movf 03dh,0</p><p>XORLW 05h</p><p>BTFSS STATUS,Z</p><p>goto b5</p><p>movf 02Ah,0</p><p>btfss PORTB,4</p><p>ADDLW 10h</p><p>call txit</p><p>b5</p><p>movf 03dh,0</p><p>XORLW 06h</p><p>BTFSS STATUS,Z</p><p>goto b6</p><p>movf 02Ah,0</p><p>btfss PORTB,5</p><p>ADDLW 10h</p><p>call txit</p><p>b6</p><p>movf 03dh,0</p><p>XORLW 07h</p><p>BTFSS STATUS,Z</p><p>goto b7</p><p>movf 02Ah,0</p><p>btfss PORTB,6</p><p>ADDLW 10h</p><p>call txit</p><p>b7</p><p>movf 03dh,0</p><p>XORLW 08h</p><p>BTFSS STATUS,Z</p><p>goto b8</p><p>movf 02Ah,0</p><p>btfss PORTB,7</p><p>ADDLW 10h</p><p>call txit</p><p>b8</p><p>goto EXIT</p><p>clrit </p><p>movfw 02Ah</p><p>XORLW 01H;</p><p>BTFSS STATUS,Z</p><p>goto Homeit</p><p> MOVLW 01H</p><p> MOVWF PORTD ;clr screen</p><p> CALL ENABLE </p><p>CALL DELAY ;delay for lcd is slower than mcu.</p><p>CALL DELAY ;delay for lcd is slower than mcu.</p><p>CALL DELAY</p><p>CALL DELAY</p><p>clrf 02fh ; clr char counter</p><p>goto EXIT</p><p>Homeit </p><p>movfw 02Ah</p><p>XORLW 02H;</p><p>BTFSS STATUS,Z</p><p>goto DISP</p><p> MOVLW 02H</p><p> MOVWF PORTD ;home screen</p><p> CALL ENABLE </p><p>CALL DELAY ;delay for lcd is slower than mcu.</p><p>CALL DELAY</p><p>CALL DELAY ;delay for lcd is slower than mcu.</p><p>CALL DELAY</p><p>clrf 02fh ; clr char counter</p><p>goto EXIT</p><p>DISP</p><p>;it was not FF or FE so we can Display the data</p><p>movfw 02Ah</p><p>MOVWF PORTD</p><p>CALL WRITE3</p><p> ;MOVWF TXREG ;keep in send register and send </p><p>EXIT </p><p> RETFIE </p><p>infobak</p><p> ADDWF PCL,1 ;address offset add the current pc.</p><p> RETLW 20h</p><p> RETLW 41H ;A</p><p> RETLW 42H ;B</p><p> RETLW 43H ;C</p><p> RETLW 44H ;D</p><p> RETLW 45H ;E</p><p> RETLW 46H ;F</p><p> RETLW 47H ;G</p><p> RETLW 48h ;H</p><p> RETLW 00H </p><p>TABLE ;display version</p><p> ADDWF PCL,1 ;address offset add the current pc.</p><p> RETLW 20H ;space</p><p> RETLW 56H ;V</p><p> RETLW 65H ;e</p><p> RETLW 72H ;r</p><p> RETLW 73H ;s</p><p> RETLW 69H ;i</p><p> RETLW 6fH ;o</p><p> RETLW 6eH ;n</p><p> RETLW 20H ;space</p><p> RETLW 33H ;3</p><p> RETLW 2eH ;.</p><p> RETLW 31H ;1</p><p> RETLW 30H ;0</p><p> RETLW 30H ;0</p><p> RETLW 30H ;0</p><p> RETLW 61H ;0</p><p> RETLW 00H</p><p>;-------------------- ----------------------------------</p><p>TABLE1 ;display terry reynolds</p><p> ADDWF PCL,1 ;address offset add the current pc.</p><p> RETLW 20H ;space</p><p> RETLW 54H ;T</p><p> RETLW 65H ;e</p><p> RETLW 72H ;r</p><p> RETLW 72H ;r</p><p> RETLW 79H ;y</p><p> RETLW 20H ;space</p><p> RETLW 52H ;R</p><p> RETLW 65H ;e</p><p> RETLW 79H ;y</p><p> RETLW 6eH ;n</p><p> RETLW 6fH ;o</p><p> RETLW 6cH ;l</p><p> RETLW 64H ;d</p><p> RETLW 73H ;s</p><p> RETLW 00H</p><p>;-------------------- ----------------------------------</p><p>TABLE3 </p><p> ADDWF PCL,1 ;address offset add the current pc.</p><p> RETLW 20H ;space</p><p> RETLW 54H ;T</p><p> RETLW 65H ;e</p><p> RETLW 72H ;r</p><p> RETLW 72H ;r</p><p> RETLW 79H ;y</p><p> RETLW 00H</p><p>;-------------------- ---------------------------------- </p><p>MAIN </p><p> USART </p><p> BANKSEL TRISC ;select BANK1 </p><p> MOVLW 0FFH ;set RA5 OUTPUT,the other bits INPUT </p><p> ;MOVWF TRISB </p><p> BSF TRISC,7 ;disconnect RC and USART TX </p><p> BSF TRISC,6 ;disconnect RC and USART RX </p><p> BcF TRISC,0</p><p> BcF TRISC,1</p><p> BcF TRISC,2 ; bits 0,1,2 &amp; 3 of portc out put to control relay </p><p> BcF TRISC,3 ;</p><p> BcF TRISC,4</p><p> MOVLW 0CH ;load band rate=9600 0c=19200 brgh high</p><p> MOVWF SPBRG </p><p> MOVLW 24H ;enable USART,set band rate is high </p><p> MOVWF TXSTA </p><p> ;movlw 090h </p><p> ;movwf RCSTA </p><p> BSF PIE1,RCIE ;enable receive interrupt </p><p> MOVLW 00h</p><p> MOVWF TRISB</p><p> ;BANKSEL TRISD</p><p> MOVLW 00h</p><p> MOVWF TRISD</p><p> CLRF STATUS ;select BANK0 </p><p> movlw 090h ;090h =cont rx</p><p> movwf RCSTA </p><p> movlw 0ffh ; set all portB o/p high as relay is active low</p><p> movwf PORTB</p><p> CLRF PORTA</p><p> BSF STATUS, RP0</p><p> MOVLW 0x06</p><p> MOVWF ADCON1</p><p> MOVLW 0f0h</p><p> MOVWF TRISA</p><p> movlw 06h</p><p> movwf OPTION_REG</p><p> CLRF STATUS ;select BANK0 </p><p> movlw 0ffh</p><p> movwf 03fh </p><p> MOVLW 0f0h ;; timer0</p><p> movwf TMR0</p><p> CALL DELAY</p><p> MOVLW 90H </p><p> MOVWF RCSTA ;enable USART continue receive </p><p> BSF INTCON,GIE ;enable general interrupt </p><p> BSF INTCON,PEIE ;enable outside interrupt </p><p> ;BSF INTCON,5h ; timer0 int enable</p><p> ; start up value for servo</p><p> movlw 0xC7 ; value from user after ^ : 1ms centre = C7 1.5ms right = B7 2.0ms left =8f</p><p>movwf 03fh</p><p>;;;;;;;;;;;;;;;;;;</p><p>;the following 16 instructions to set lcd display mode.</p><p> CALL DELAY ;delay for lcd is slower than mcu.</p><p> CALL DELAY ;delay for lcd is slower than mcu.</p><p> MOVLW 30H</p><p> MOVWF PORTD</p><p> CALL ENABLE ;write command.</p><p> MOVLW 30H</p><p> MOVWF PORTD</p><p> CALL ENABLE ;write command.</p><p> MOVLW 30H</p><p> MOVWF PORTD</p><p> CALL ENABLE ;write command.</p><p> MOVLW 01H</p><p> MOVWF PORTD ;clr screen</p><p> CALL ENABLE ;write command.</p><p> MOVLW 38H</p><p> MOVWF PORTD ;8 bits 2 lines 5*7 mode.</p><p> CALL ENABLE</p><p> MOVLW 0EH ;display on,cursor on,blink on.</p><p> MOVWF PORTD</p><p> CALL ENABLE</p><p> MOVLW 06H ;character not move,cursor rotate right.</p><p> MOVWF PORTD </p><p> CALL ENABLE</p><p> MOVLW 080H;80 = top line c0 = bottom line</p><p> MOVWF PORTD ;the 1st line address.</p><p> CALL ENABLE</p><p> ;MOVLW 54H</p><p> ;;MOVWF PORTD</p><p> CALL WRITE1 ;.</p><p>;;;;;;;;;;;;;;;;;;</p><p>USART_1 </p><p> CALL DELAY_MS ;call two delay program </p><p>; CALL DELAY_MS </p><p> ;CALL DELAY_MS </p><p> btfss PORTE,0</p><p> GOTO num2</p><p>movlw 08fh</p><p>movwf 03fh</p><p>BSF INTCON,5h ; timer0 int enable</p><p>num2 btfss PORTE,1</p><p> GOTO num3</p><p>movlw 0b7fh</p><p>movwf 03fh</p><p>BSF INTCON,5h ; timer0 int enable</p><p>num3 btfss PORTE,1</p><p> GOTO errbit</p><p>movlw 0c7fh</p><p>movwf 03fh</p><p>BSF INTCON,5h ; timer0 int enable</p><p>errbit</p><p>btfss RCSTA,2</p><p>goto erbit2</p><p>bsf PORTB,7</p><p>erbit2</p><p>btfss RCSTA,1</p><p>goto USART_1</p><p>bsf PORTB,6</p><p>GOTO USART_1 ; </p><p>;***** set to line 2.</p><p>Line2</p><p> ;CALL DELAY ;delay for lcd is slower than mcu.</p><p> ;CALL DELAY ;delay for lcd is slower than mcu.</p><p> MOVLW 0C0H;80 = top line c0 = bottom line</p><p> MOVWF PORTD ;the 1st line address.</p><p> CALL ENABLE</p><p> CALL DELAY ;delay for lcd is slower than mcu.</p><p> CALL DELAY ;delay for lcd is slower than mcu.</p><p> Return</p><p>;***** set to line 1 .</p><p>Line1</p><p> ;CALL DELAY ;delay for lcd is slower than mcu.</p><p> ;CALL DELAY ;delay for lcd is slower than mcu.</p><p> MOVLW 080H;80 = top line c0 = bottom line</p><p> MOVWF PORTD ;the 1st line address.</p><p> CALL ENABLE</p><p> CALL DELAY ;delay for lcd is slower than mcu.</p><p> CALL DELAY ;delay for lcd is slower than mcu.</p><p> Return</p><p>;************************200ms delay program******************</p><p>DELAY_MS</p><p> MOVLW VAL_MS</p><p> MOVWF COUNT_MS</p><p>LOOP_MS</p><p> CALL DELAY_US</p><p> DECFSZ COUNT_MS,1</p><p> GOTO LOOP_MS</p><p> RETURN</p><p>;************************100us delay program**************</p><p>DELAY_US</p><p> MOVLW VAL_US</p><p> MOVWF COUNT</p><p>LOOP_US</p><p> NOP</p><p> DECFSZ COUNT,1</p><p> GOTO LOOP_US</p><p> RETURN</p><p>DELAY_S</p><p> MOVLW 0FFH</p><p> MOVWF 50H</p><p> CALL DELAY_MS</p><p> DECFSZ 50H,1</p><p> GOTO $-2</p><p> RETURN</p><p>;******************send data to lcd.************</p><p>WRITE3 </p><p> BSF RS</p><p> MOVWF PORTD </p><p> BCF RW</p><p> BCF E</p><p> CALL DELAY</p><p> BSF E</p><p>incf 02fh ;check for end of line1 - character counter 02fh</p><p>movlw 010h</p><p>xorwf 02fh,0</p><p>char16</p><p>BTFSS STATUS,Z</p><p>goto char32</p><p>MOVLW 0c0H;80 = top line c0 = bottom line</p><p>MOVWF PORTD ;the 1st line address.</p><p>CALL ENABLE</p><p>call DELAY</p><p>char32 ;check for end of line2</p><p>movlw 020h</p><p>xorwf 02fh,0</p><p>BTFSS STATUS,Z</p><p> goto here</p><p>MOVLW 01H;80 = top line c0 = bottom line -01 =cls 02= home</p><p>MOVWF PORTD ;the 1st line address.</p><p>CALL ENABLE</p><p>call DELAY</p><p>clrf 02fh; reset character counter</p><p>here;incf 02fh ;check for end of line1 - character counter 02fh</p><p> RETURN</p><p>WRITE4 </p><p> BSF RS</p><p> MOVWF PORTD </p><p> BCF RW</p><p> BCF E</p><p> CALL DELAY</p><p>CALL DELAY ;delay for lcd is slower than mcu.</p><p>CALL DELAY</p><p>;CALL DELAY ;delay for lcd is slower than mcu.</p><p>;CALL DELAY</p><p> BSF E</p><p>Return</p><p>;****************send command to lcd.**************</p><p>ENABLE</p><p> BCF RS ;</p><p> BCF RW</p><p> BCF E</p><p> CALL DELAY</p><p>CALL DELAY ;delay for lcd is slower than mcu.</p><p>CALL DELAY</p><p>;CALL DELAY ;delay for lcd is slower than mcu.</p><p>;CALL DELAY</p><p> BSF E</p><p> RETURN</p><p>;*********************delay subroutine******************</p><p>DELAY ;subroutine name and also is the entry.</p><p> MOVLW 0FFH ;</p><p> MOVWF 20H ;send external loop count 0ffh to 20h</p><p>LP0</p><p> MOVLW 01H ;</p><p> MOVWF 21H ;send internal loop count 0ffh to 21h</p><p>LP1</p><p> DECFSZ 21H,1 ;decrease 21h,if 0,then jump</p><p> GOTO LP1 ;continue loop at LP1</p><p> DECFSZ 20H,1 ;decrease 20h,if 0,then jump</p><p> GOTO LP0 ;continue loop at LP0</p><p> RETURN ;</p><p>;=====================================================</p><p>Transwt bsf STATUS,RP0; RAM Page 1</p><p>WtHere btfss TXSTA,TRMT ; (1) transmission is complete if hi</p><p> goto WtHere</p><p> bcf STATUS,RP0 ; RAM Page 0</p><p> return</p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>;****************** send the 1st data program***************</p><p>WRITE1</p><p> CLRF COUNT3 ;clear offset</p><p>WRITE_A</p><p> MOVFW COUNT3</p><p> CALL TABLE ;search to display <a href="http://www.pic16.com" rel="nofollow"> www.pic16.com</a></p><p> MOVWF TMP3 ;</p><p> INCF COUNT3,1 ;offset added</p><p> MOVFW TMP3 </p><p> XORLW 00H ;check if finished.(the last byte is 00h.)</p><p> BTFSC STATUS,Z</p><p> GOTO $+4 ;all display finished.</p><p> MOVFW TMP3</p><p> CALL WRITE3 ;no, send to LCD</p><p> GOTO WRITE_A ;</p><p> call WRITE2</p><p> RETURN ;</p><p>;****************** send the 2nd data program*********</p><p>WRITE2 </p><p> CLRF COUNT3 ;clear offset</p><p>WRITE_2A</p><p> MOVFW COUNT3</p><p> CALL TABLE1 ;search to display <a href="http://www.pic16.com" rel="nofollow"> www.pic16.com</a></p><p> MOVWF TMP3 ;</p><p> INCF COUNT3,1 ;offset added</p><p> MOVFW TMP3 </p><p> XORLW 00H ;check if finished.(the last byte is 00h.)</p><p> BTFSC STATUS,Z</p><p> GOTO $+4 ;all display finished.</p><p> MOVFW TMP3</p><p> CALL WRITE3 ;no, send to LCD</p><p> GOTO WRITE_2A ;</p><p> ;incf 02fh</p><p> RETURN ;</p><p>serv</p><p> incf 041h</p><p> bcf INTCON,2</p><p> bsf PORTC,1</p><p> call servtime</p><p> bcf PORTC,1</p><p> movlw 0fah</p><p> movwf 03fh</p><p> retfie</p><p>servtime</p><p>;movlw 0xB7 ; value from user after ^ : 1ms centre = C7 1.5ms right = B7 2.0ms left =8f</p><p>movwf 03fh</p><p>movlw 0x0C</p><p>movwf 040h</p><p>Delay_0</p><p>decfsz 03fh, f</p><p>goto $+2</p><p>decfsz 040h, f</p><p>goto Delay_0</p><p> return</p><p>txit movwf TXREG ; echo data back to sender</p><p>call Transwt; wait until finished sending</p><p>clrf 02bh</p><p>decfsz 02eh,1</p><p>return</p><p> END</p>
Sir, even if you gave the original file of this project . . Its still unable for me to run that source code . . I didnt even know which part that i need to erase . . I just wanna play around the code with protues software .however i was unable to assemble the file into hex file . . Sorry sir im disturbing you too much
Hi<br>The protues software looks interesting !!<br><br>It has been a while since I programmed the PIC chips.<br>The code has to be compiled using Microchip MPASM and then uploaded to the PIC !<br><br>Programming PIC chips using assembly code can be challenging and at times, frustrating.<br><br>I changed to Arduino mainly due to the amount of free knowledge and examples there are on the Internet!<br>Programming, debugging and testing are so much easier using the Arduino - and they are so cheap too!<br><br>I am not too sure what your goals are, what are you trying to achieve please? Is it for learning or a particular project?<br><br>kind regards<br>Terry<br>
Hi samsungite . . Can u send me the actual source code asm of pic simulator ide . . Tq in advance . . Plss . . Kekekep93@gmail.com
I will try and add the original file to the project<br><br>Terry :-)<br>
Thank you sir . . After this project working . . I wanted to play with arduino soon . . Huhu
Hi<br>If you are programming pic chips, this software is invaluable !!<br><br>Terry<br><br>http://www.oshonsoft.com/pic.html
Sir ,currently im using this oshon pic simulator ide and ive tried to assemble and load above coding, unfortunately theres a lot off error . . T_T
<p>Hi</p><p>Thank you &amp; I'm really sorry for the dreadfully long delay in responding.</p><p>It was more a proof of concept! I've done a few projects with a PIC but I have fallen in love with the Arduino!!</p><p>My first Arduino project also uses Bluetooth, so the knowledge gained from using a PIC was invaluable.</p><p>I will post the project over the Christmas period, its a time lapse trigger for a Sony camera using IR !</p><p>I'm also working on my Internet of Things, first of these will be a milk monitor !!</p><p>Terry</p>
<p>nice,<br>can you please share the code??</p>
<p>Hi there,</p><p>Excellent project there. Would you be willing to share the coding?</p><p>Thank you.</p>
<p>Cool first Instructable! It looks like you've mostly heard crickets to this point, so consider using the video as a supplement to a step by step project rather than the sole piece of media that you share. Was this a proof of concept or do you have grander designs for this project?</p>

About This Instructable

3,898views

11favorites

License:

More by samsungite:4 in a Row / Connect 4 7 Segment Clock With Alarm & Temperature DS1307 RTC I2C Very Simple 
Add instructable to: