.. IR communication, so I need to make 38kHz....
The mother lode of information for infrared remote control transmitting and receiving is Ken Sharriff's blog
The IRremote library has functions to create the signals and examples on how to use the functions. Rather than the rather inexact and jittery software method, transmission is accomplished by setting up a timer with the infrared LED drive signal coming from one of the timer's OCR pins. The carrier is pulsed by enabling and disabling the connection to the pin.
If you are able to use Timer 2 and Arduino Pin 3 to drive the LED, the Good News is that the IRremote library is ready for action. If for some reason you can not use Timer 2 and Pin 3 for this purpose, the the Less Than Spectacularly Good News is that you will have to modify the library code or use some other method. (The receiver can use any Arduino pin, but still uses Timer 2; the Pin restriction is for transmitting.)
In either case, in my opinion, the information on Ken's page (and the library code) is worth reading.