Merci pour votre aide, en regardant les documents techniques de mon écran, le caractère € n'apparait pas, donc je pense qu'il soit possible "facilement" de l'afficher, j'ai maintenant pas mal avancé, et je suis bloqué à une temporisation, j'aimerais qu'au quatrième, quand j'appuie longtemps, celui-ci m'affiche un menu, sauf que moyen de temporiser un appuie, sur le programme j'ai repris des informations sur le net mais j'ai l'impression que c'est un peu n'importe quoi ><
Ah, j'ai aussi une autre question y'a pas moyen de mettre un if dans un else if ?
Le programme pas vraiment fonctionnel avec la temporisation:
#define int0PushButton 2
#include <Wire.h>
#define THRESHOLD 3000 //ms
#include <LiquidCrystal_I2C.h>
const int buttonPin = 2; // the number of the pushbutton pin
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 6;
LiquidCrystal_I2C lcd(0x27, 16, 4);
int x=0;
int verif=0;
int prix=0;
int amande=18;
int cajou=15.5;
int objet;
int state= -1;
unsigned long millisStart;
boolean longPush;
void Reagir() {
state = digitalRead(int0PushButton);
}
// variables will change:
int buttonState = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
void setup() {
attachInterrupt(0, Reagir, CHANGE);
lcd.begin();
lcd.backlight();
lcd.print("Entrez une masse:");
delay(2000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: 18E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if(buttonState == HIGH) {
x+=10;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.print(x);
lcd.print(" g");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: ");
lcd.print(amande);
lcd.print("E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
}
else if(buttonState2 == HIGH){
x+=100;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.print(x);
lcd.print(" g");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: ");
lcd.print(amande);
lcd.print("E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
}
else if(buttonState3 == HIGH){
verif=x;
lcd.clear();
lcd.setCursor( 0, 1);
lcd.print("Votre masse: ");
lcd.print(verif);
lcd.print(" g");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: ");
lcd.print(amande);
lcd.print("E");
lcd.setCursor(0, 3);
lcd.print("Votre prix: ");
lcd.print((verif*pow(10,-3))*18);
lcd.print("E");
lcd.setCursor( 0, 0);
lcd.print("Amandes");
}
else if (buttonState4 == 1) {
state = -1;
millisStart = millis();
lcd.print("Afficher quelue chose");
if (state == 1) {
state = -1;
longPush = (millis() - millisStart) > THRESHOLD;
x=0;
verif=0;
lcd.clear();
lcd.print("Entrez une masse:");
delay(2000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: 18E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
}
}
delay(210);
}
et le programme fonctionnel sans tempo:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int buttonPin = 2; // the number of the pushbutton pin
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 6;
LiquidCrystal_I2C lcd(0x27, 16, 4);
int x=0;
int verif=0;
int prix=0;
int amande=18;
int cajou=15.5;
int objet;
// variables will change:
int buttonState = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
void setup() {
lcd.begin();
lcd.backlight();
lcd.print("Entrez une masse:");
delay(2000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: 18E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if(buttonState == HIGH) {
x+=10;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.print(x);
lcd.print(" g");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: ");
lcd.print(amande);
lcd.print("E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
}
else if(buttonState2 == HIGH){
x+=100;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.print(x);
lcd.print(" g");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: ");
lcd.print(amande);
lcd.print("E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
}
else if(buttonState3 == HIGH){
verif=x;
lcd.clear();
lcd.setCursor( 0, 1);
lcd.print("Votre masse: ");
lcd.print(verif);
lcd.print(" g");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: ");
lcd.print(amande);
lcd.print("E");
lcd.setCursor(0, 3);
lcd.print("Votre prix: ");
lcd.print((verif*pow(10,-3))*18);
lcd.print("E");
lcd.setCursor( 0, 0);
lcd.print("Amandes");
}
else if (buttonState4 == 1) {
x=0;
verif=0;
lcd.clear();
lcd.print("Entrez une masse:");
delay(2000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Poids: ");
lcd.setCursor(0, 2);
lcd.print("Prix/kg: 18E");
lcd.setCursor(0, 0);
lcd.print("Amandes");
}
delay(210);
}