Thanks for the response dhouston. I looked over the information. I think that is were I eventually want to get to. However, I don't think I am ready to take that big of jump yet.
I have been working on trying to do simple IR communications between 2 PICs. I basically used the codes from http://www.rentron.com/Infrared_Communication.htm.
I used a PIC627 with this code for the PWM and SEROUT.
And I used a PIC628A with this code for SERIN. The code Rentron had listed was BS2 code. I did my best to convert it to picbasic. I used SERIN2 instead of SERIN.Code:DEFINE OSC 4 TRISB.3 = 0 ' CCP1 (PortB.3 = Output) PR2 = 25 ' Set PWM Period for approximately 38KHz CCPR1L = 13 ' Set PWM Duty-Cycle to 50% CCP1CON = %00001100 ' Select PWM Mode T2CON = %00000100 ' Timer2 = ON + 1:1 prescale TRISB.0 = 0 ADDRESS VAR BYTE DAT VAR BYTE ID VAR BYTE ADDRESS = 10 ID = 25 BEGIN: FOR DAT = 0 TO 255 SEROUT PORTB.0,4,[ID,ADDRESS,DAT] PAUSE 100 NEXT GOTO BEGIN END
Was it okay to use SERIN2 with SEROUT?Code:DEFINE OSC 4 CMCON = 7 VRCON = 0 TRISA = 0 TRISB = 1 SYNCH CON 25 'Establish synchronization byte BAUD CON 396 'NON INVERTED 2400 baud (MAX) DAT VAR byte 'Data storage variable ADDRESS VAR BYTE START: SERIN2 PORTB.0,BAUD,[WAIT(SYNCH),ADDRESS,DAT] PORTA = DAT GOTO START END
I connected 4 LEDs to porta.0 thru porta.3. I am getting a response from the LEDs. I am just not sure if it representing the correct data. When I try something like:
I get the correct LEDs to light up initially for about a second. Then, the other LEDs start flashing.Code:ADDRESS VAR BYTE DAT VAR BYTE ID VAR BYTE ADDRESS = 10 ID = 25 DAT = 10 BEGIN: SEROUT PORTB.0,4,[ID,ADDRESS,DAT] PAUSE 100 GOTO BEGIN END
I will continue to experiment and hopefully I will get the communications figured out.
I do have a question about the schematic Rentron uses for the IR Transmitter. Is there a reason why 2 Infrared LEDs are used to transmit the signal?





Bookmarks