Show Posts
Pages: 1 [2] 3
16  International / Français / Re: Retrouver quel bit est a 1 sans Log (RESOLU) on: May 14, 2011, 05:15:32 am
Merci Grag38

cela fonctionne parfaitement
17  International / Français / Re: Retrouver quel bit est a 1 sans Log on: May 14, 2011, 04:58:14 am
Merci pour toutes vos reponses

J'ai essayer comme cela :

for (int i =0; i< 8; i++){
     x = x >>i;
     if ( x & 1){
       SelectPattern = i;
     }

x est le nombre binaire dont je veux savoir quel bit est a 1 mais ca ne marche pas j'ai un decalage
en sachant que dans mon programme seul un Bit sera a 1 a la fois


En ce qui concerne BitRead la fonction ne retourne pas le numero du bit qui est a 1 il faut lui donner le Numero du bit a lire.
18  International / Français / Retrouver quel bit est a 1 sans Log on: May 14, 2011, 04:37:00 am
Bonjour,

Je cherche une operation qui me permettrai de retrouver quel bit est a 1 dans un octet sans utiliser la fonction log
Par exemple si j'ai:

B00010000 comment savoir que le bit 5 est a 1 sans faire :

B00010000 = 16
x = log16/log2

mais en utilisant les operations binaires.

merci pour votre aide
19  International / Français / Re: Faire tourner deux boucles a vitesses differentes on: May 01, 2011, 01:56:27 pm
Merci pour ta reponse
j'ai utilise la fonction millis et ça marche

J'ai un peu modifier le programme pour utilise le PORTD en binaire
Et j'aimerai pouvoir stocker dans une variable les different octet que j'ai en entre puis les afficher suivant le compteur incrementer par la Pin 15.
J'ai donc cree un array pour stocker mes octet d'entree mais je n'arrice pas a les afficher
En fait dans la derniere ligne de mon programme je voudrai que CurretPattern prenne la valeur de Pattern[compte]

pourriez vous m'aidez??
voici le code

Code:
// Mini Midi Drum sequencer //

int LedPin [6] = {2, 3, 4, 5, 6, 7};  //Pin ou sont connecter les leds
int BoutonPin [7] = {9, 10, 11, 12, 13, 14, 15}; //Pin ou sont connecter les boutons
int LedBinaire[6] ={4, 8, 16, 32, 64, 128};  //Valeur de chaque led en bianire
byte Pattern [16] = {0};
byte CurrentPattern = 0;



int BoutonState[7] = {0}; //etat de chaques boutons 0=FAUX 1=VRAI
int BoutonPressed[7] = {0};
int BoutonBounce[7] = {0};

int Step = -1; // compteur de la sequence
boolean LedState[6] = {0}; // etat des 6 leds 0=eteint 1=allumer
int count[7] = {0}; // variable qui compte le nombre de fois qu'on a appuyer sur le bouton
unsigned long Currenttime = 0;
unsigned long Pasttime = 0;
int bpm =0;
int compte = 0; // compte le nombre de fois qu'on appuie sur menu


void setup(){
 
  for (int i =0; i <6; i++){
    pinMode(LedPin[i], OUTPUT); //initialise les sortis
    digitalWrite(LedPin[i], LOW);
  }
  for (int i =0; i <7; i++){
    pinMode(BoutonPin[i], INPUT); // intialise les entrees   
  }
}

void loop(){
   
 // Fonction pour le BPM
 
  Currenttime = millis();
  if (Currenttime - Pasttime >= bpm){
    Pasttime = Currenttime;
    bpm = 300;
      Step++;
      if (Step >5){
        Step =0;
      }
     
   }
   
  // Savoir quels boutons est appuyer
 
  for (int i =0; i <6; i++){
    BoutonPressed[i] = digitalRead(BoutonPin[i]);
    delay(10);
    BoutonBounce[i] = digitalRead(BoutonPin[i]);
      if (BoutonBounce[i] = BoutonPressed[i]){
         if (BoutonPressed[i] != BoutonState[i]){
           if (BoutonPressed[i]){
            count[i]++;
             if (count[i]==1){
             CurrentPattern = CurrentPattern + LedBinaire[i];
             LedState[i] =1;         
             }
             if (count[i] >1){
             count[i] = 0;
             CurrentPattern = CurrentPattern - LedBinaire[i];
             LedState[i]=0;           
             }
           } 
         }
       }
                 
    BoutonState[i] = BoutonPressed[i];   
   }
   if (compte = 1){
   Pattern[1] = CurrentPattern;
   }
   if (compte = 0){
     Pattern[0] = CurrentPattern;
   }
   
   // Set le bouton menu choix de pattern
  BoutonPressed[7] = digitalRead(15);
    delay(50);
    BoutonBounce[7] = digitalRead(15);
      if (BoutonBounce[7] = BoutonPressed[7]){
         if (BoutonPressed[7] != BoutonState[7]){
           if (BoutonPressed[7], HIGH){
             compte++;         
               if (compte >1){
                 compte =0;
               }
               
           }
         }
      }
   BoutonState[7] = BoutonPressed[7];
     
   
   
 
   //Metter les Leds dans l'etat souhaite
   
 PORTD = CurrentPattern| LedBinaire[Step];
}
20  International / Français / Faire tourner deux boucles a vitesses differentes on: April 29, 2011, 06:47:26 am
Salut à tous,

Voila mon projet est un petit séquenceur de 6 leds et 7 boutons
Six des boutons correspondent respectivement au Led (CàD que si j'appuie sur le bouton la Led s'allume et s’éteindra que si je reappuie sur le bouton).
Lorsque je lance le programme le "sequenceur" demarre (les leds font un chenillard de gauche a droite)

Mon souci est que quand j'augmente les delay de ma fin de loop ( ce qui correspond au tempo) mes boutons ne reponde plsu aussi bien que quand les delay est plus petit du fait que les infos soit traites entre chaque allumage de led du chenillard

Est il possible de faire tourner deux boucles simultanément mais pas a la même vitesse pour que je puisse augmenter le delay de fin de loop sans perdre en precision sur les botons??

Voici le programme

Code:
// Mini Midi Drum sequencer //

int LedPin [6] = {3, 4, 5, 6, 7, 8};  //Pin ou sont connecter les leds
int BoutonPin [7] = {9, 10, 11, 12, 13, 14, 15}; //Pin ou sont connecter les boutons

int BoutonState[7] = {0}; //etat de chaques boutons 0=FAUX 1=VRAI
int BoutonPressed[7] = {0};
int BoutonBounce[7] = {0};

int Step = -1; // compteur de la sequence
boolean LedState[6] = {0}; // etat des 6 leds 0=eteint 1=allumer
int count = {0}; // variable qui compte le nombre de fois qu'on a appuyer sur le bouton
int i =0; //compteur de synchro

void setup(){
 
  for (int i =0; i <6; i++){
    pinMode(LedPin[i], OUTPUT); //initialise les sortis
    digitalWrite(LedPin[i], LOW);
  }
  for (int i =0; i <7; i++){
    pinMode(BoutonPin[i], INPUT); // intialise les entrees
   
  }
}


void loop(){
 
  Step++;
   if (Step > 5){
     Step = 0;
   }
 
 

  for ( i =0; i <6; i++){
    BoutonPressed[i] = digitalRead(BoutonPin[i]);
    delay(1);
    BoutonBounce[i] = digitalRead(BoutonPin[i]);
      if (BoutonBounce[i] = BoutonPressed[i]){
         if (BoutonPressed[i] != BoutonState[i]){
           if (BoutonPressed[i]){
            count++;
             if (count==1){
             LedState[i] =1;
             }
             if (count >1){
             count = 0;
             LedState[i]=0;
             }
           } 
         }
      }
   BoutonState[i] = BoutonPressed[i];   
  }

 
  SetLeds((Step+3), (i+3));
   delay (30);
}

void SetLeds (int StepLed, int LedBouton)
{
  for (int j =0; j <6; j++){
    digitalWrite(LedPin[j], LOW);
  }
  for (int x =0; x <6; x++){
    LedBouton = LedPin[x];
    if (LedState[x] == true){
      digitalWrite(LedBouton, HIGH);
    }
    if (LedState[x] == false){
      digitalWrite(LedBouton, LOW);
    }
  }
  digitalWrite(StepLed, HIGH);
}

21  Community / Exhibition / Gallery / Re: Finished Arduinoboy THX trash80 on: April 19, 2011, 03:17:20 am
Quote
1 question: What does it do?

With this little box i can use the Gameboy like a synthesizer and control all parameter via MIDI
22  Community / Exhibition / Gallery / Finished Arduinoboy THX trash80 on: April 18, 2011, 04:44:58 am
Dear Diyers,

I finished my Arduinoboy on my DMG07 BOx with Arduino Pro mini
If you have some question about this project, tell me

best regard,

Xarolium



23  International / Français / simplifier un programme ? on: February 25, 2011, 03:59:55 pm
Bonjour,

J'ai fait ce petit programme qui me permet de lire la valeur de huit potentiomètres multiplexer sur un LCD et je voudrai le simplifier, mais je ne sais pas comment.
Dans ce programme j'ai repeter la même operation pour les huits potentiometres, n'y a t'il pas un moyen de simplifier cela ?
Merci pour votre aide

Voici le programme:

/*
 Le but du circuit est de lire la valeur d'un des huits potentiometre
 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);


int analogIn = 0;  // valeur de la Pin  analogique d'entrée

int valuepot1 = 0; //  valeur du potar 1
int valuepot2 = 0; //  valeur du potar 2
int oldvaluepot1 = 0;
int oldvaluepot2 = 0;
int valuepot3 = 0; //  valeur du potar 3
int valuepot4 = 0; //  valeur du potar 4
int oldvaluepot3 = 0;
int oldvaluepot4 = 0;
int valuepot5 = 0; //  valeur du potar 5
int valuepot6 = 0; //  valeur du potar 6
int oldvaluepot5 = 0;
int oldvaluepot6 = 0;
int valuepot7 = 0; //  valeur du potar 7
int valuepot8 = 0; //  valeur du potar 8
int oldvaluepot7 = 0;
int oldvaluepot8 = 0;

// Initialsé le 4051 avec les pins de sorti

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 up the LCD's number of rows and columns:
  lcd.begin(16, 2);
 
 
 
  // initialise les pins de sorti pour 4051
  pinMode(10, OUTPUT);    // s0
  pinMode(9, OUTPUT);    // s1
  pinMode(8, 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); //Serial.println(bin[count]);
    delay (0);
 
 
   
  // enreg la valeur du potar 1 dans une variable
    if (count==0){
      valuepot1 = analogRead (analogIn);
      if (valuepot1 != oldvaluepot1){
        valuepot1 = analogRead (analogIn);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot1");
        lcd.setCursor(0,1);
        lcd.print(valuepot1,DEC);
      }
    }
    oldvaluepot1 = (valuepot1);
   
    // enreg la valeur du potar 2 dans une variable
    if (count==4){
      valuepot2 = analogRead (analogIn);
      if (valuepot2 != oldvaluepot2){
        valuepot2 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot2");
        lcd.setCursor(0,1);
        lcd.print(valuepot2,DEC);
      }
    }
    oldvaluepot2 = (valuepot2);
   
    // enreg la valeur du potar 3 dans une variable
    if (count==2){
      valuepot3 = analogRead (analogIn);
      if (valuepot3 != oldvaluepot3){
        valuepot3 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot3");
        lcd.setCursor(0,1);
        lcd.print(valuepot3,DEC);
      }
    }
    oldvaluepot3 = (valuepot3);
   
    // enreg la valeur du potar 4 dans une variable
    if (count==6){
      valuepot4 = analogRead (analogIn);
      if (valuepot4 != oldvaluepot4){
        valuepot4 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot4");
        lcd.setCursor(0,1);
        lcd.print(valuepot4,DEC);
      }
    }
    oldvaluepot4 = (valuepot4);
   
    // enreg la valeur du potar 5 dans une variable
    if (count==1){
      valuepot5 = analogRead (analogIn);
      if (valuepot5 != oldvaluepot5){
        valuepot5 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot5");
        lcd.setCursor(0,1);
        lcd.print(valuepot5,DEC);
      }
    }
    oldvaluepot5 = (valuepot5);
   
    // enreg la valeur du potar 6 dans une variable
    if (count==5){
      valuepot6 = analogRead (analogIn);
      if (valuepot6 != oldvaluepot6){
        valuepot6 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot6");
        lcd.setCursor(0,1);
        lcd.print(valuepot6,DEC);
      }
    }
    oldvaluepot6 = (valuepot6);
   
    // enreg la valeur du potar 7 dans une variable
    if (count==3){
      valuepot7 = analogRead (analogIn);
      if (valuepot7 != oldvaluepot7){
        valuepot7 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot7");
        lcd.setCursor(0,1);
        lcd.print(valuepot7,DEC);
      }
    }
    oldvaluepot7 = (valuepot7);
   
    // enreg la valeur du potar 8 dans une variable
    if (count==7){
      valuepot8 = analogRead (analogIn);
      if (valuepot8 != oldvaluepot8){
        valuepot8 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot8");
        lcd.setCursor(1,1);
        lcd.print(valuepot8,DEC);
      }
    }
    oldvaluepot8 = (valuepot8);
  }
}
     
   
   
24  Forum 2005-2010 (read only) / Français / Arduino à la Réunion on: December 09, 2010, 12:04:04 pm
Salut à tous les Diyers,

Je viens de m'installer a la Réunion et je voulais savoir s'il y avait d'autres Diyers sur l'iles pour organiser des WorkGroup chez moi par exemple.
Je suis pas caler au point de faire des programmes de fou mais j'ai de très bonne base en Hardware musical et j'aimerai les faire partager donc voila
Contact: xarolium@hotmail.com

A plus
25  Forum 2005-2010 (read only) / Français / Re: Arduino simulator avec Proteus ISIS on: September 18, 2010, 10:14:27 am
je viens de trouver d'ou venait le probleme
avec la version 0019 de arduino je n'avais pas le ficvhier applet qui se crée
je suis repasser a la version 0017 et tout est ok
Merci Noirand pour ton aide
26  Forum 2005-2010 (read only) / Français / Re: Arduino simulator avec Proteus ISIS on: September 18, 2010, 08:38:05 am
Comment fait il pour justement eviter la suppression automatique du fichier HEX car apres compilation je ne le retrouve nul part
27  Forum 2005-2010 (read only) / Français / Re: Arduino simulator avec Proteus ISIS on: September 18, 2010, 06:27:32 am
Je viens d'installer WinAVR mais rien ne se passe lorsque je "upload" avec arduino

Un peu aide SVP je suis sur que je ne suis pas le seul à vouloir simuler arduino sur Proteus ISIS
Merci
28  Forum 2005-2010 (read only) / Français / Arduino simulator avec Proteus ISIS on: September 18, 2010, 03:00:57 am
Bonjour à tous les Diyers,
Voila j'aimerai simuler mes circuits sur ISIS de proteus mais je n'arrive pas a compiler mes programmes en fichier HEX pour les intégrer à ISIS.
J'ai vu sur Youtube deux vidéo dont voici les liens




Elles montrent que cela est possible de compiler directement depuis les logiciels Arduino dans ISIS
Sur la vidéo on voit que quand on "upload" le programme un dossier applet se crée avec le fichier HEX et tous les autres fichiers sources mais le gas n'explique pas comment comment mettre en place l'environnement de programmation

Je voulais savoir si quelqu'un pouvais m'expliquer comme t mettre en place cette environnement
Merci pour votre aide
29  Forum 2005-2010 (read only) / Français / Re: Voir la valeur des entrées analogiques sur LCD on: October 03, 2010, 02:38:36 am
Merci B@tto pour ton aide ,
J'ai réussi a faire ce petit programme qui fonctionne en émulation mais je voudrai savoir s'il était possible de simplifié avec un switch ou un Array.

/*
  
 
 Le but du circuit est de lire la valeur d'un des huits potentiometre
 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);


int analogIn = 0;  // valeur de la Pin  analogique d'entrée

int valuepot1 = 0; //  valeur du potar 1
int valuepot2 = 0; //  valeur du potar 2
int oldvaluepot1 = 0;
int oldvaluepot2 = 0;
int valuepot3 = 0; //  valeur du potar 3
int valuepot4 = 0; //  valeur du potar 4
int oldvaluepot3 = 0;
int oldvaluepot4 = 0;
int valuepot5 = 0; //  valeur du potar 5
int valuepot6 = 0; //  valeur du potar 6
int oldvaluepot5 = 0;
int oldvaluepot6 = 0;
int valuepot7 = 0; //  valeur du potar 7
int valuepot8 = 0; //  valeur du potar 8
int oldvaluepot7 = 0;
int oldvaluepot8 = 0;

// Initialsé le 4051 avec les pins de sorti

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

void setup() {
  
  // set up the LCD's number of rows and columns:
  lcd.begin(16, 2);
  
  
  
  // initialise les pins de sorti pour 4051
  pinMode(8, OUTPUT);    // s0
  pinMode(9, OUTPUT);    // s1
  pinMode(10, OUTPUT);    // s2
  
}

void loop() {
    
  //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); //Serial.println(bin[count]);
    delay (0);
  
  
    
  // enreg la valeur du potar 1 dans une variable
    if (count==0){
      valuepot1 = analogRead (analogIn);
      if (valuepot1 != oldvaluepot1){
        valuepot1 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot1");
        lcd.setCursor(0,1);
        lcd.print(valuepot1,DEC);
      }
    }
    oldvaluepot1 = (valuepot1);
    
    // enreg la valeur du potar 2 dans une variable
    if (count==4){
      valuepot2 = analogRead (analogIn);
      if (valuepot2 != oldvaluepot2){
        valuepot2 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot2");
        lcd.setCursor(0,1);
        lcd.print(valuepot2,DEC);
      }
    }
    oldvaluepot2 = (valuepot2);
    
    // enreg la valeur du potar 3 dans une variable
    if (count==2){
      valuepot3 = analogRead (analogIn);
      if (valuepot3 != oldvaluepot3){
        valuepot3 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot3");
        lcd.setCursor(0,1);
        lcd.print(valuepot3,DEC);
      }
    }
    oldvaluepot3 = (valuepot3);
    
    // enreg la valeur du potar 4 dans une variable
    if (count==6){
      valuepot4 = analogRead (analogIn);
      if (valuepot4 != oldvaluepot4){
        valuepot4 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot4");
        lcd.setCursor(0,1);
        lcd.print(valuepot4,DEC);
      }
    }
    oldvaluepot4 = (valuepot4);
    
    // enreg la valeur du potar 5 dans une variable
    if (count==1){
      valuepot5 = analogRead (analogIn);
      if (valuepot5 != oldvaluepot5){
        valuepot5 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot5");
        lcd.setCursor(0,1);
        lcd.print(valuepot5,DEC);
      }
    }
    oldvaluepot5 = (valuepot5);
    
    // enreg la valeur du potar 6 dans une variable
    if (count==5){
      valuepot6 = analogRead (analogIn);
      if (valuepot6 != oldvaluepot6){
        valuepot6 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot6");
        lcd.setCursor(0,1);
        lcd.print(valuepot6,DEC);
      }
    }
    oldvaluepot6 = (valuepot6);
    
    // enreg la valeur du potar 7 dans une variable
    if (count==3){
      valuepot7 = analogRead (analogIn);
      if (valuepot7 != oldvaluepot7){
        valuepot7 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot7");
        lcd.setCursor(0,1);
        lcd.print(valuepot7,DEC);
      }
    }
    oldvaluepot7 = (valuepot7);
    
    // enreg la valeur du potar 8 dans une variable
    if (count==7){
      valuepot8 = analogRead (analogIn);
      if (valuepot8 != oldvaluepot8){
        valuepot8 = analogRead (analogIn);
        lcd.setCursor(0,0);
        lcd.print("Valeur Pot8");
        lcd.setCursor(0,1);
        lcd.print(valuepot8,DEC);
      }
    }
    oldvaluepot8 = (valuepot8);
  }
}
      
    
  
30  Forum 2005-2010 (read only) / Français / Voir la valeur des entrées analogiques sur LCD on: September 24, 2010, 05:32:55 am
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
 :-? :-?
Pages: 1 [2] 3