problem with sending ir signal throughout arduino due

hello.
I use the example from IR library for IRRECORD. This example is working fine on arduino uno but for some reason on arduino due it has problem with sending the ir code. In this example the notes says that the ir transmitter have connected to pin pwm 3.
the cone goes throughout the compiler and burn it ok on the board. I can see that i receive the ircode and when i push the button noting happened. On the Uno board i can see throughout the camera the the transmitter is working and sending . On th DUE board i see noting throughout the camera. someone has any idea ?
Here is my code in case someone is interested.
/*

  • IRrecord: record and play back IR signals as a minimal
  • An IR detector/demodulator must be connected to the input RECV_PIN.
  • An IR LED must be connected to the output PWM pin 3.
  • A button must be connected to the input BUTTON_PIN; this is the
  • send button.
  • A visible LED can be connected to STATUS_PIN to provide status.
  • The logic is:
  • If the button is pressed, send the IR code.
  • If an IR code is received, record it.
  • Version 0.11 September, 2009
  • Copyright 2009 Ken Shirriff
  • http://arcfn.com
    */

#include <IRremote2.h>

boolean debounce (boolean last, int BUTTON) //debounce function avoid bouncing button
{

boolean current = digitalRead(BUTTON);
if (last != current)
{
delay (5);
current = digitalRead(BUTTON);
}
return current;
}
boolean lastButton = LOW;
int RECV_PIN = 11;
int BUTTON_PIN = 12;
int STATUS_PIN = 13;

IRrecv irrecv(RECV_PIN);
IRsend irsend;

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(BUTTON_PIN, INPUT);
pinMode(STATUS_PIN, OUTPUT);
}

// Storage for the recorded code
int codeType = -1; // The type of code
unsigned long codeValue; // The code value if not raw
unsigned int rawCodes[RAWBUF]; // The durations if raw
int codeLen; // The length of the code
int toggle = 0; // The RC5/6 toggle state

// Stores the code for later playback
// Most of this code is just logging
void storeCode(decode_results *results) {
codeType = results->decode_type;
int count = results->rawlen;
if (codeType == UNKNOWN) {
Serial.println(“Received unknown code, saving as raw”);
codeLen = results->rawlen - 1;
// To store raw codes:
// Drop first value (gap)
// Convert from ticks to microseconds
// Tweak marks shorter, and spaces longer to cancel out IR receiver distortion
for (int i = 1; i <= codeLen; i++) {
if (i % 2) {
// Mark
rawCodes[i - 1] = results->rawbuf*USECPERTICK - MARK_EXCESS;

  • Serial.print(" m");*
  • }*
  • else {*
  • // Space*
    rawCodes[i - 1] = results->rawbufUSECPERTICK + MARK_EXCESS;
    _
    Serial.print(" s");_
    _
    }_
    _
    Serial.print(rawCodes[i - 1], DEC);_
    _
    }_
    _
    Serial.println("");_
    _
    }_
    _
    else {_
    _
    if (codeType == NEC) {_
    _
    Serial.print("Received NEC: ");_
    _
    if (results->value == REPEAT) {_
    _
    // Don’t record a NEC repeat value as that’s useless._
    _
    Serial.println(“repeat; ignoring.”);_
    _
    return;_
    _
    }_
    _
    }_
    _
    else if (codeType == SONY) {_
    _
    Serial.print("Received SONY: ");_
    _
    }_
    _
    else if (codeType == RC5) {_
    _
    Serial.print("Received RC5: ");_
    _
    }_
    _
    else if (codeType == RC6) {_
    _
    Serial.print("Received RC6: ");_
    _
    }_
    _
    else {_
    _
    Serial.print(“Unexpected codeType “);_
    _
    Serial.print(codeType, DEC);_
    _
    Serial.println(””);_
    _
    }_
    _
    Serial.println(results->value, HEX);_
    _
    codeValue = results->value;_
    _
    codeLen = results->bits;_
    _
    }_
    _
    }_
    void sendCode(int repeat) {
    _
    if (codeType == NEC) {_
    _
    if (repeat) {_
    _
    irsend.sendNEC(REPEAT, codeLen);_
    _
    Serial.println(“Sent NEC repeat”);_
    _
    }_
    _
    else {_
    _
    irsend.sendNEC(codeValue, codeLen);_
    _
    Serial.print("Sent NEC ");_
    _
    Serial.println(codeValue, HEX);_
    _
    }_
    _
    }_
    _
    else if (codeType == SONY) {_
    _
    irsend.sendSony(codeValue, codeLen);_
    _
    Serial.print("Sent Sony ");_
    _
    Serial.println(codeValue, HEX);_
    _
    }_
    _
    else if (codeType == RC5 || codeType == RC6) {_
    _
    if (!repeat) {_
    _
    // Flip the toggle bit for a new button press*_
    * toggle = 1 - toggle;*
    * }*
    * // Put the toggle bit into the code to send*
    * codeValue = codeValue & ~(1 << (codeLen - 1));*
    * codeValue = codeValue | (toggle << (codeLen - 1));*
    * if (codeType == RC5) {*
    * Serial.print("Sent RC5 ");*
    * Serial.println(codeValue, HEX);*
    * irsend.sendRC5(codeValue, codeLen);*
    * }*
    * else {*
    * irsend.sendRC6(codeValue, codeLen);*
    * Serial.print("Sent RC6 ");*
    * Serial.println(codeValue, HEX);*
    * }*
    * }*
    _ else if (codeType == UNKNOWN /* i.e. raw /) {_
    _
    // Assume 38 KHz*_
    * irsend.sendRaw(rawCodes, codeLen, 38);*
    * Serial.println(“Sent raw”);*
    * }*
    }
    int lastButtonState;
    void loop() {
    * // If button pressed, send the code.*
    // int buttonState = digitalRead(BUTTON_PIN);
    * int buttonState = debounce(lastButton,BUTTON_PIN);
    _
    if (lastButtonState == HIGH && buttonState == LOW) {_
    _
    Serial.println(“Released”);_
    _
    irrecv.enableIRIn(); // Re-enable receiver*_
    * }*
    * if (buttonState) {*
    * Serial.println(“Pressed, sending”);*
    * digitalWrite(STATUS_PIN, HIGH);
    _
    sendCode(lastButtonState == buttonState);_
    digitalWrite(STATUS_PIN, LOW);
    _
    delay(50); // Wait a bit between retransmissions*_
    * }*
    * else if (irrecv.decode(&results)) {*
    * digitalWrite(STATUS_PIN, HIGH);
    _
    storeCode(&results);_
    _
    irrecv.resume(); // resume receiver*_
    * digitalWrite(STATUS_PIN, LOW);
    _
    }_
    _
    lastButtonState = buttonState;_
    _
    }*_

Can you check your IRremoteInt2.h file has a #ifdef for SAM3X8E

The sources at GitHub - enternoescape/Arduino-IRremote-Due
seem to have Due support.

MarkT:
Can you check your IRremoteInt2.h file has a #ifdef for SAM3X8E

The sources at GitHub - enternoescape/Arduino-IRremote-Due
seem to have Due support.

Ah, looking at the sources it says the default transmit pin is 7 for the Due. The
exmaples may not have been updated.