Bonjour,
Je souhaiterai faire un programmer qui m'indique sur un LCD 16x2 la valeur d'une entrée analogique multiplexer avec un 4051.
Le schema est le suivant
en fait j'arrive a afficher la valeur du premier potar mais je voudrai que lorsque j'en bouge un autre le LCD m'affiche le numéro du potar et ca valeur.
Voici ou en ai mon code qui fonctionne mais ai loin d'etre complet
/*
Le but du circuit est de lire la valeur d'un des huits potentiometre sur
l'afficheur LCD en passant par un multiplexage analogique des entrées
*/
// include the library code:
#include <LiquidCrystal.h>
#include <EEPROM.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Initialsé le 4051 avec les pins de sorti
int AnalogIn = 0; // valeur de la Pin analogique d'entrée
byte AnalogInValue1 = 0; // valeur du potar 1
byte AnalogInValue2 = 0; // valeur du potar 2
int oldAnalogInValue = 0; // valeur lu a l'entrée de la Pin
int r0 = 0; //value select pin at the 4051 (s0)
int r1 = 0; //value select pin at the 4051 (s1)
int r2 = 0; //value select pin at the 4051 (s2)
int row = 0; // storeing the bin code
int count = 0; // just a count
int bin [] = {000, 1, 10, 11, 100, 101, 110, 111};//bin = binär, some times it is so easy
byte val1; // valeur enreg dans l'eeprom du potar 1
byte val2; // valeur enreg dans l'eeprom du potar 2
void setup() {
// set le bon LCD
lcd.begin(16, 2);
// ecrire message sur LCD
lcd.print("valeur Pot");
// initialise les pins de sorti pour 4051
pinMode(8, OUTPUT); // s0
pinMode(9, OUTPUT); // s1
pinMode(10, OUTPUT); // s2
}
void loop() {
// set the cursor to column 0, line 1
//scanner les entrées du 4051
for (count=0; count<=7; count++) {
row = bin[count];
r0 = row & 0x01;
r1 = (row>>1) & 0x01;
r2 = (row>>2) & 0x01;
digitalWrite(8, r0);
digitalWrite(9, r1);
digitalWrite(10, r2);
delay (0);
// enreg la valeur du potar 1 dans l'eeprom add 1
if (count == 0){
AnalogInValue1 = analogRead (AnalogIn)/ 4;
EEPROM.write (1, AnalogInValue1);
val1 = EEPROM.read (1);
}
// enreg la valeur du potar 2 dans l'eeprom add 2
if (count == 1){
AnalogInValue2 = analogRead (AnalogIn)/ 4;
EEPROM.write (2, AnalogInValue2);
val2 = EEPROM.read (2);
}
// mettre le curseur en 2 ligne
lcd.setCursor(0, 1);
//print vlaeur du potar 1
lcd.print(val1, DEC);
}
}
merci pour votre aide
je sais que le code n'est pas très avancer mais comme je suis un Newbie j'ai encore du mal avec les automatismes de la programmation
:-? :-?