Code Complet

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

#include <Wire.

h>
#include <LiquidCrystal_I2C.h>
#define NumberOf(arg) ((unsigned int) (sizeof (arg) /
sizeof (arg [0])))
LiquidCrystal_I2C lcd(0x27,16,02);
#define SELU
#include <NeuralNetwork.h>
NeuralNetwork *R;

#define LEFT 3
#define RITCH 4
#define OK 5
#define RETURN 6

#define LED 12
#define LDR A0
#define CHARGE A1

void Return();
int stat_left= 0;
int last_stat_left =0;
int stat_ritch = 0;
int last_stat_ritch =0;
int menu = 0;
int pin_charge = 0;
unsigned long actual_time=0;
unsigned long current_times=0;
unsigned long chrono=0;

const unsigned int couches[] = {2,3,1};


float *sortie;
const float entree[2][2] = {
{random(0,500)},
{random(501,1023)}
};
const float Sortie[4][1] = {{0},{1},{1},{0}};

void setup(){
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(" PROJET");
lcd.setCursor(0,1);
lcd.print(" ELECTRONIQUE");
delay(2000);
lcd.clear();
pinMode(LEFT ,INPUT);
pinMode(RITCH,INPUT);
pinMode(OK ,INPUT);
pinMode(LDR,INPUT);
// pinMode(CHARGE,INPUT);
pinMode(LED,OUTPUT);
R = new NeuralNetwork(couches,NumberOf(couches));

do{
for (int j = 0; j < NumberOf(entree); j++)
{
R->FeedForward(entree[j]);
R->BackProp(Sortie[j]);
}

}while(R->getMeanSqrdError(NumberOf(inputs)) > 0.5);


R->print();
}

float Entree[2];
void loop()
{
Return();
stat_left=digitalRead(LEFT);
if(((stat_left!=last_stat_left) && (stat_left==1))
&& (menu>=1)&&(menu<=4)){
menu=menu-1;
delay(100);
}
stat_ritch=digitalRead(RITCH);
if(((stat_ritch!=last_stat_ritch) &&
(stat_ritch==1)) && (menu>=0)&&(menu<=3)){
menu=menu+1;
delay(100);
}

last_stat_ritch = stat_ritch;
last_stat_left = stat_left;
switch(menu){
case 0:

lcd.setCursor(0,0);
lcd.print("[ POMME ]");
if(digitalRead(OK)==1){
digitalWrite(LED,HIGH);
int ldr = analogRead(LDR);
int surcre=map(ldr,0,1023,45,85);
lcd.setCursor(0,1);
lcd.print(" [ loading ]");
delay(4000);

Serial.println(ldr);

if(ldr<4){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("[ POMME ]");
lcd.setCursor(0,1);
lcd.print("NON MATURE");
lcd.setCursor(11,1);
lcd.print("T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}

else{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("[ POMME ]");
lcd.setCursor(0,1);
lcd.print("MATURE ");
lcd.setCursor(11,1);
lcd.print("T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}

digitalWrite(LED,LOW);
}

break;

case 1:

lcd.setCursor(0,0);
lcd.print("[ ORANGE ]");
if(digitalRead(OK)==1){
digitalWrite(LED,HIGH);
int ldr = analogRead(LDR);
int surcre=map(ldr,0,1023,45,85);
lcd.setCursor(0,1);
lcd.print(" [ loading ]");
delay(4000);
Serial.println(ldr);
if(ldr<4){
lcd.clear();

lcd.print("[ ORANGE ]");


lcd.setCursor(0,1);
lcd.print("NON MATURE");
lcd.setCursor(11,1);
lcd.print(" T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}
else{

lcd.clear();
lcd.setCursor(0,0);
lcd.print("[ ORANGE ]");
lcd.setCursor(0,1);
lcd.print("MATURE ");
lcd.setCursor(11,1);
lcd.print(" T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}

digitalWrite(LED,LOW);
}

break;

case 2:
lcd.setCursor(0,0);
lcd.print("[ BANANE ]");
if(digitalRead(OK)==1){
digitalWrite(LED,HIGH);
int ldr = analogRead(LDR);
int surcre=map(ldr,0,1023,45,85);
lcd.setCursor(0,1);
lcd.print(" [ loading ]");
delay(4000);
if(ldr<4){
lcd.clear();
lcd.print("[ BANANE ]");
lcd.setCursor(0,1);
lcd.print("NON MATURE");
lcd.setCursor(11,1);
lcd.print(" T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}

else{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("[ BANANE ]");
lcd.setCursor(0,1);
lcd.print("MATURE ");
lcd.setCursor(11,1);
lcd.print(" T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}
digitalWrite(LED,LOW);
}

break ;
case 3:
lcd.setCursor(0,0);
lcd.print("[ PAPAYE ]");
if(digitalRead(OK)==1){
digitalWrite(LED,HIGH);
int ldr = analogRead(LDR);
int surcre=map(ldr,0,1023,45,85);
lcd.setCursor(0,1);
lcd.print(" [ loading ]");
delay(4000);
Serial.println(ldr);
if(ldr<4){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("[ PAPAYE ]");
lcd.setCursor(0,1);
lcd.print("NON MATURE");
lcd.setCursor(11,1);
lcd.print(" T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}

else{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("[ PAPAYE ]");
lcd.setCursor(0,1);
lcd.print("MATURE ");
lcd.setCursor(11,1);
lcd.print(" T:");
lcd.setCursor(13,1);
lcd.print(surcre);
lcd.setCursor(15,1);
lcd.print("%");
}
digitalWrite(LED,LOW);
}
break ;

}
Entree[0] = random(2);
Entree[1] = random(2);

sortie = R->FeedForward(input);

void Return(){
if(digitalRead(RETURN)==1){
lcd.clear();
menu=0;
}
}

You might also like