Error Compiling Code with Several Files "Multiple Definitions"

Hey Everyone!

I'm new to Arduino and am trying to control a LED strip with an IR Remote using Object Oriented Programming. The first step is to set up the <FastLED.h> and <IRremote.h> library in my classes, but I need some help getting past an error. Here is my code and the error:

Main File:

#include "IRnLED.h"
#include "patterns.h"
#include <IRremote.h>
#include <FastLED.h>

//variables
#define NUM_LEDS 150
int irPin = 3;


//objects
CRGB leds[NUM_LEDS];
Patterns patterns(leds);
IRrecv ir(irPin);
decode_results cmd;
IRnLED irnled(ir, cmd, patterns, irPin);


void setup() 
{
patterns.init();
irnled.init();

}

void loop() {

}

IRnLED.h

#ifndef IRNLED_H
#define IRNLED_H


#include <Arduino.h>
#include <IRremote.h> 
#include "patterns.h"


class IRnLED 
{
private:
  IRrecv ir;
  decode_results cmd;
  Patterns patterns;
  
  int IR_PIN;
  int started;
  
public:


  IRnLED(){}; //do not use //have in case object from this class is being used in another
  IRnLED (IRrecv &ir, decode_results cmd, Patterns &patterns, int IR_PIN);
  void init();


  
};
  

#endif

IRnLED.cpp

#include "IRnLED.h"

IRnLED::IRnLED (IRrecv &ir, decode_results cmd, Patterns &patterns, int IR_PIN) {

  this->ir = ir;
  this->cmd = cmd;
  this->patterns = patterns;
  this->IR_PIN = IR_PIN;
  
}

void IRnLED::init(){
    ir.enableIRIn();
    started = 1;
}

patterns.h

#ifndef PATTERNS_H
#define PATTERNS_H

#include <Arduino.h>
#include <FastLED.h>

class Patterns
{
private:
CRGB *leds;
#define LED_PIN 5
#define NUM_LEDS 150
#define BRIGHT 10


public:
Patterns(){};//do not use
Patterns(CRGB leds[NUM_LEDS]); 
void init();

};


#endif

patterns.cpp

#include "patterns.h"

Patterns::Patterns(CRGB leds[NUM_LEDS])
{
  this-> leds = leds;

}


void Patterns::init()
{
  FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
  FastLED.setBrightness(BRIGHT);
  FastLED.clear();
  FastLED.show();
}

Error Compiling for board Arduino Uno

Arduino: 1.8.17 Hourly Build 2021/09/06 02:34 (Mac OS X), Board: "Arduino Uno"

In file included from /Users/andy/Documents/Arduino/Remote_LED_Project_TestInitalizing/patterns.h:5:0,
                 from /Users/andy/Documents/Arduino/Remote_LED_Project_TestInitalizing/IRnLED.h:7,
                 from /Users/andy/Documents/Arduino/Remote_LED_Project_TestInitalizing/Remote_LED_Project_TestInitalizing.ino:13:
/Users/andy/Documents/Arduino/libraries/FastLED/src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000
 #    pragma message "FastLED version 3.004.000"
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `irparams'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `timerConfigForSend(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `timerConfigForReceive()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `setLEDFeedback(unsigned char, bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `FeedbackLEDControl'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `setLEDFeedback(bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `enableLEDFeedback()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `disableLEDFeedback()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `setFeedbackLED(bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::blink13(bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `setBlinkPin(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::setReceivePin(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::IRrecv()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::IRrecv()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::IRrecv(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::IRrecv(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IrReceiver'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::IRrecv(unsigned char, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::IRrecv(unsigned char, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::stop()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::end()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::disableIRIn()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::isIdle()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::resume()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::enableIRIn()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::begin(unsigned char, bool, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::start()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::start(unsigned long)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::initDecodedIRData()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::available()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::initBiphaselevel(unsigned char, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `sBiphaseDecodeRawbuffOffset'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `sBiphaseTimeUnit'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `sUsedTimingIntervals'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::compare(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::decodeHash()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::decode()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::read()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::decodeHashOld(decode_results*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `matchTicks(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::getBiphaselevel()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `sCurrentTimingIntervals'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `MATCH(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `matchMark(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `MATCH_MARK(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `matchSpace(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::decodePulseWidthData(unsigned char, unsigned char, unsigned int, unsigned int, unsigned int, bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::decodePulseDistanceData(unsigned char, unsigned char, unsigned int, unsigned int, unsigned int, bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `MATCH_SPACE(unsigned int, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `getMarkExcessMicros()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `CheckForRecordGapsMicros(Print*, IRData*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::printIRResultMinimal(Print*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::printIRResultRawFormatted(Print*, bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::compensateAndStoreIRResultInArray(unsigned char*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::printIRResultAsCVariables(Print*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `getProtocolString(decode_type_t)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `printIRResultShort(Print*, IRData*, unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::printIRResultShort(Print*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::compensateAndPrintIRResultAsCArray(Print*, bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `__vector_8'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRrecv::decode(decode_results*)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::IRsend()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::IRsend()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::IRsend(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::IRsend(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::setSendPin(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::begin(unsigned char, bool, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::begin(bool, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::write(IRData*, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::mark(unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::IRLedOff()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::customDelayMicroseconds(unsigned long)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::space(unsigned int)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::sendPulseDistanceWidthData(unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned char, bool, bool)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::sendBiphaseData(unsigned int, unsigned long, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::enableIROut(unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::sendRaw(unsigned int const*, unsigned char, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::sendRaw(unsigned char const*, unsigned char, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::sendRaw_P(unsigned int const*, unsigned char, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::sendRaw_P(unsigned char const*, unsigned char, unsigned char)'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IRsend::getPulseCorrectionNanos()'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
sketch/Remote_LED_Project_TestInitalizing.ino.cpp.o (symbol from plugin): In function `irparams':
(.text+0x0): multiple definition of `IrSender'
sketch/IRnLED.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Uno.


This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Thanks for your help.

Welcome

When you do this

private:
  IRrecv ir;

You are creating an instance of the IRrecv class, and calling its constructor

But multiple instances of this class are not supported, so instead, you should use a pointer

Or, perhaps more "C++'ish" to use a reference.

You will also run into problems using FastLED and IRRemote. IRremote relies on interrupts to send/receive signals. FastLED relies on turning interrupts OFF when clocking data out to the leds so it can match the precise timing requirements. Those two requirements don't play together :frowning:

With Teensy (and perhaps other boards), you can push the LED data out via DMA and leave interrupts enabled. The Teensy Library can also hook into Fast LED. See the examples.

Alternately, you can switch to SPI-based LEDS (i.e. APA102 ). Interrupts don't need to be disabled to drive these.

Thank you for the help! I am still struggling to put your advice into action. Could you show me how exactly I should format it in the code so that it will compile?

Here is an example : ICNRM8 - Online C++ Compiler & Debugging Tool - Ideone.com

But you should consider what others said about interrupts