parti 1
#include <LiquidCrystal.h>
#include <IRremote.h>
int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(12,11,5,4,3,2);
int virgule=0;
int i=0;
int i2=0;
int virgule2=0;
unsigned long temps;
float chiffre1=0;
float chiffre2=0;
float resultat=0;
int operation;
int etape=1;
int etatetape=0;
float resultat2=0;
byte coeur[8]={
0b00000,
0b01010,
0b01110,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000
};
boolean etatbouton0=0;
boolean etatbouton1=0;
boolean etatbouton2=0;
boolean etatbouton3=0;
boolean etatbouton4=0;
boolean etatbouton5=0;
boolean etatbouton6=0;
boolean etatbouton7=0;
boolean etatbouton8=0;
boolean etatbouton9=0;
boolean etatboutonmode=0;
int bouton0=A0;
int bouton1=A1;
int bouton2=A2;
int bouton3=A3;
int bouton4=A4;
int bouton5=A5;
int bouton6=6;
int bouton7=7;
int bouton8=8;
int bouton9=9;
int boutonmode=13;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
lcd.begin(16,2);
lcd.createChar(0,coeur);
lcd.setCursor(15,1);
lcd.write(byte(0));
pinMode(10,INPUT);
pinMode(bouton0,INPUT);
pinMode(bouton1,INPUT);
pinMode(bouton2,INPUT);
pinMode(bouton3,INPUT);
pinMode(bouton4,INPUT);
pinMode(bouton5,INPUT);
pinMode(bouton6,INPUT);
pinMode(bouton7,INPUT);
pinMode(bouton8,INPUT);
pinMode(bouton9,INPUT);
pinMode(boutonmode,INPUT);
lcd.setCursor(2,0);
lcd.print("calculatrice");
lcd.setCursor(3,1);
lcd.print("remy mode");
delay(1900);
}
void loop() {
if(chiffre1>=100000000){
chiffre1=0;
lcd.clear();
}
if(chiffre2>=100000000){
chiffre2=0;
lcd.clear();
}
if(etape!=etatetape){
etatetape=etape;
lcd.clear();
}
switch (operation){
case 1:
resultat=chiffre1+chiffre2;
lcd.setCursor(15,0);
lcd.print("+");
break;
case 2:
resultat=chiffre1-chiffre2;
lcd.setCursor(15,0);
lcd.print("-");
break;
case 3:
resultat=chiffre1*chiffre2;
lcd.setCursor(15,0);
lcd.print("*");
break;
case 4:
resultat=chiffre1/chiffre2;
lcd.setCursor(15,0);
lcd.print("/");
break;
case 5:
resultat=sqrt(chiffre1);
lcd.setCursor(15,0);
lcd.print("r");
break;
case 6:
resultat2=pow(chiffre1,chiffre2);
lcd.setCursor(15,0);
lcd.print("2");
break;
case 7:
resultat=chiffre1*3.14;
lcd.setCursor(14,0);
lcd.print("TT");
}
switch (etape){
case 1:
switch (virgule){
case 0:
if(digitalRead(bouton0)==1&& digitalRead(bouton2)==1){
lcd.clear();
chiffre1=0;
}
if(millis()-temps>500){
temps=millis();
if (irrecv.decode(&results)) {
if(results.value==0xE13DDA28 ){
chiffre1=chiffre1*10+1;
}
if(results.value==0xAD586662 ){
chiffre1=chiffre1*10+2;
}
if(results.value==0x273009C4 ){
chiffre1=chiffre1*10+3;
}
if(results.value==0xF5999288 ){
chiffre1=chiffre1*10+4;
}
if(results.value==0x731A3E02 ){
chiffre1=chiffre1*10+5;
}
if(results.value==0x2C452C6C ){
chiffre1=chiffre1*10+6;
}
if(results.value==0x4592E14C ){
chiffre1=chiffre1*10+7;
}
if(results.value==0x6825E53E ){
chiffre1=chiffre1*10+8;
}
if(results.value==0x8B8510E8 ){
chiffre1=chiffre1*10+9;
}
if(results.value==0xB9F56762 ){
chiffre1=chiffre1*10+0;
}
if(results.value==0x8AF13528 ){
virgule=1;
}
irrecv.resume(); // Receive the next value
}
}
if(digitalRead(boutonmode)!=etatboutonmode){
etatboutonmode=digitalRead(boutonmode);
if(digitalRead(boutonmode)==1){
virgule=1;
}
}
if(digitalRead(bouton0)!=etatbouton0){
etatbouton0=digitalRead(bouton0);
if(digitalRead(bouton0)==1){
chiffre1=chiffre1*10+0;
}
}
if(digitalRead(bouton1)!=etatbouton1){
etatbouton1=digitalRead(bouton1);
if(digitalRead(bouton1)==1){
chiffre1=chiffre1*10+1;
}
}
if(digitalRead(bouton2)!=etatbouton2){
etatbouton2=digitalRead(bouton2);
if(digitalRead(bouton2)==1){
chiffre1=chiffre1*10+2;
}
}
if(digitalRead(bouton3)!=etatbouton3){
etatbouton3=digitalRead(bouton3);
if(digitalRead(bouton3)==1){
chiffre1=chiffre1*10+3;
}
}
if(digitalRead(bouton4)!=etatbouton4){
etatbouton4=digitalRead(bouton4);
if(digitalRead(bouton4)==1){
chiffre1=chiffre1*10+4;
}
}
if(digitalRead(bouton5)!=etatbouton5){
etatbouton5=digitalRead(bouton5);
if(digitalRead(bouton5)==1){
chiffre1=chiffre1*10+5;
}
}
if(digitalRead(bouton6)!=etatbouton6){
etatbouton6=digitalRead(bouton6);
if(digitalRead(bouton6)==1){
chiffre1=chiffre1*10+6;
}
}
if(digitalRead(bouton7)!=etatbouton7){
etatbouton7=digitalRead(bouton7);
if(digitalRead(bouton7)==1){
chiffre1=chiffre1*10+7;
}
}
if(digitalRead(bouton8)!=etatbouton8){
etatbouton8=digitalRead(bouton8);
if(digitalRead(bouton8)==1){
chiffre1=chiffre1*10+8;
}
}
if(digitalRead(bouton9)!=etatbouton9){
etatbouton9=digitalRead(bouton9);
if(digitalRead(bouton9)==1){
chiffre1=chiffre1*10+9;
}
}
break;
case 1:
if(millis()-temps>500){
temps=millis();
if (irrecv.decode(&results)) {
if(results.value==0xE13DDA28 ){
i++;
chiffre1=1*pow(10,-i)+chiffre1;
}
if(results.value==0xAD586662 ){
i++;
chiffre1=2*pow(10,-i)+chiffre1;
}
if(results.value==0x273009C4 ){
i++;
chiffre1=3*pow(10,-i)+chiffre1;
}
if(results.value==0xF5999288 ){
i++;
chiffre1=4*pow(10,-i)+chiffre1;
}
if(results.value==0x731A3E02 ){
i++;
chiffre1=5*pow(10,-i)+chiffre1;
}
if(results.value==0x2C452C6C ){
i++;
chiffre1=6*pow(10,-i)+chiffre1;
}
if(results.value==0x4592E14C ){
i++;
chiffre1=7*pow(10,-i)+chiffre1;
}
if(results.value==0x6825E53E ){
i++;
chiffre1=8*pow(10,-i)+chiffre1;
}
if(results.value==0x8B8510E8 ){
i++;
chiffre1=9*pow(10,-i)+chiffre1;
}
if(results.value==0xB9F56762 ){
i++;
chiffre1=0*pow(10,-i)+chiffre1;
}
if(results.value==0x8AF13528 ){
etape=2;
}
irrecv.resume(); // Receive the next value
}
}
if(digitalRead(boutonmode)!=etatboutonmode){
etatboutonmode=digitalRead(boutonmode);
if(digitalRead(boutonmode)==1){
etape=2;
}
}
if(digitalRead(bouton0)!=etatbouton0){
etatbouton0=digitalRead(bouton0);
if(digitalRead(bouton0)==1){
i++;
chiffre1=0*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton1)!=etatbouton1){
etatbouton1=digitalRead(bouton1);
if(digitalRead(bouton1)==1){
i++;
chiffre1=1*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton2)!=etatbouton2){
etatbouton2=digitalRead(bouton2);
if(digitalRead(bouton2)==1){
i++;
chiffre1=2*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton3)!=etatbouton3){
etatbouton3=digitalRead(bouton3);
if(digitalRead(bouton3)==1){
i++;
chiffre1=3*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton4)!=etatbouton4){
etatbouton4=digitalRead(bouton4);
if(digitalRead(bouton4)==1){
i++;
chiffre1=4*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton5)!=etatbouton5){
etatbouton5=digitalRead(bouton5);
if(digitalRead(bouton5)==1){
i++;
chiffre1=5*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton6)!=etatbouton6){
etatbouton6=digitalRead(bouton6);
if(digitalRead(bouton6)==1){
i++;
chiffre1=6*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton7)!=etatbouton7){
etatbouton7=digitalRead(bouton7);
if(digitalRead(bouton7)==1){
i++;
chiffre1=7*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton8)!=etatbouton8){
etatbouton8=digitalRead(bouton8);
if(digitalRead(bouton8)==1){
i++;
chiffre1=8*pow(10,-i)+chiffre1;
}
}
if(digitalRead(bouton9)!=etatbouton9){
etatbouton9=digitalRead(bouton9);
if(digitalRead(bouton9)==1){
i++;
chiffre1=9*pow(10,-i)+chiffre1;
}
}
lcd.setCursor(1,0);
lcd.print(".");
break;
}
lcd.setCursor(4,0);
lcd.print("number1");
lcd.setCursor(1,1);
lcd.print(chiffre1,i);
break;