I have written a code whose size is 7292 bytes…
as I am new to coding I may have done some things in a long way.
Friends please help and guide me in places where the code can be made shorter to reduce the size, as I am planning to write this code to an Atmega 88…
#include <IRremote.h>
#include <EEPROM.h>
#include "Seg7.h"
int pin1 = 8;
int pin3 = 9;
int RECV_PIN = 11;
int fadered = 25;
int pin1State = LOW;
int pin2State = LOW;
int val;
int state;
int state1;
int btn1_Cnt = LOW;
int btn2_Cnt;
Seg7 s7;
int digit;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
s7.attach(0, 1, 2, 3, 4, 5, 6, 7);
s7.write(digit);
irrecv.enableIRIn();
pinMode(pin1, OUTPUT);
pinMode(pin3, OUTPUT);
fadered = EEPROM.read(8);
/********** THIS IS TO READ WHAT WAS THE STATE OF PIN3 SAVED LAST TIME ***********/
btn2_Cnt = EEPROM.read(4);
if(btn2_Cnt % 2 == 0){
analogWrite(pin3, 0);
}
else{
analogWrite(pin3, fadered);
}
s7.write(digit);
/********** THIS IS TO READ WHAT WAS THE STATE OF PIN1 SAVED LAST TIME ***********/
btn1_Cnt = EEPROM.read(0);
if(btn1_Cnt % 2 == 0){
digitalWrite(pin1, LOW);
}
else{
digitalWrite(pin1, HIGH);
}
digit = map(fadered,24, 249, 0, 9);
s7.write(digit);
}
void loop() {
if (irrecv.decode(&results)) {
/********** THIS PART IS FOR PIN1 ************/
if(results.value == 0xffb24d){
btn1_Cnt++;
if(btn1_Cnt % 2 == 0)
digitalWrite(pin1, LOW);
else
digitalWrite(pin1, HIGH);
}
/********** THIS PART IS FOR PIN3 ************/
if(results.value == 0xff7887 && fadered <= 230){
fadered = fadered + 25;
analogWrite(pin3, fadered);
}
if(results.value == 0xff50af && fadered >= 25){
fadered = fadered - 25;
analogWrite(pin3, fadered);
}
if(results.value == 0xff38c7){
btn2_Cnt++;
if(btn2_Cnt % 2 == 0)
analogWrite(pin3, 0);
else
analogWrite(pin3, fadered);
}
digit = map(fadered,24, 249, 0, 9);
s7.write(digit);
/********** THIS IS FOR SAVING THE BRIGHTNESS VALUE IN EEPROM ************/
val = fadered;
if(val != EEPROM.read (8)){
EEPROM.write(8, val);
}
/********** THIS IS TO SAVE THE LAST STATE OF THE PIN3 ************/
state = btn2_Cnt;
if(state != EEPROM.read (4)){
EEPROM.write(4, state);
}
/********** THIS IS TO SAVE THE LAST STATE OF THE PIN1 ************/
state1 = btn1_Cnt;
if(state1 != EEPROM.read (0)){
EEPROM.write(0, state1);
}
irrecv.resume();
}
}