Code Complet
Code Complet
Code Complet
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;
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]);
}
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.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;
}
}