Go Down

Topic: potentiometre (Read 1 time) previous topic - next topic

claas900

bonjour a tous,

pour un petit projet personnel,j aurais aimer savoir si cela est possible d allumer 4 leds les une après les autres jusqu a elles sont les 4 allumer quand le potentiomètre est au max et qu'elles s'éteignent les une après les autres plus on diminue le potentiomètre ?
mais il ne faut pas qu elles s'allume progressivement chaque led! on allume la led 1 puis la 2avec la 1 puis 3 avec la 2 et 1 puis 4 avec 3 la 2 et la 1 et inversement.
merci d'avance pour vos réponses.

J-M-L

#1
Dec 06, 2017, 12:26 am Last Edit: Dec 06, 2017, 12:27 am by J-M-L
Non ce n'est pas possible.

:)

... Réfléchissez un peu vous avez décrit plus ou moins un algo pour le faire (plutôt moins que plus c'est très confus ce que vous avez écrit) donc bien sûr que c'est  possible
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

icare

2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.1 + gEdit + Ubuntu 16.04 LTS

claas900

a l aide d un arduino, j ais oublier de préciser :)  

J-M-L

#4
Dec 06, 2017, 12:33 am Last Edit: Dec 06, 2017, 12:34 am by J-M-L
Non non c'est insurmontable. Il faudrait 4 arduino, un par led :)

Sérieusement - montrez nous un bout de code où vous essayez.  On va pas faire vos devoirs...
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

claas900

bon tres bien,
merci pour vos reponsse rapide ;)
c'etait pour installer un niveau d'eau avec une graduation par led !

elektrax

quelle est la relation entre le potentio et le niveau d'eau ?
basiquement, indiquer la "position" d'un pot par des leds : il suffit de brancher le pot sur une entrée adc et suivant les valeurs récupérées allumer les leds comme on le désire
exemple basique

Leptro

Bonjour, une piste..

Recherche avec les mots clé suivant "vumetre led arduino" à faire



claas900

bonsoir a tous et merci encore pour vos reponces! :)

electrax:je vien de visionner se que tu ma envoyer ses presque ca que je recherche!

sauf que il faut que les 4 leds s'allume de 1 a 4 suivant que l 'on change la valeur du potentiometre,

je vais essayer de m 'expliquer un peu mieux :smiley-confuse:  :)

j aimerais fabriquer comme une petite balance pour un récipient et savoir quand il est plein a la moitié ou presque vide,avec mon potentiomètre je vais l'installer avec une petite biellette et un support a ressort qui fait
que quand le récipient est plein sa bascule le potentiomètre vers une position x donc les 4 leds allumer et quand le récipient est a au 3/4(environ) plus que trois leds ect...

claas900

leptro:je viens juste de voir que vous ma écrit les mots clée " vuemetre"
 
et ses tout a fait sa que je veut faire :)  :)

mais dans l'exemple il tourne le potar énormément voir a fond de celui ci ! avec moin d 'angle je pourrait également allumer 4 leds,?

claas900

je post la combinaison de deux programme mais j ais beau essayer plusieur manipulation

mais je n 'arrive pas a installer le deuxieme potentiometre sur l entrée a1 :smiley-confuse:

je n'arrive pas a compilé il bloque en m affichant "exit status 1    redefinition of ' const int analog pin "

merci pour  vos renseignement.



const int analogPin = A1;  //entrer du potar 1
const int ledCount = 4;    // 4 leds
const int analogPin = A0;  // entrer du potar 2
const int ledCount = 4;  // 4 leds pour le deuxieme aussi

int ledPins[] = { // led pour le potar 2
  9, 10, 11, 12
};

int ledPins[] = { // led le potar 1
  8, 7, 6, 5
};   
const int APPUI=0;
const int PAS_APPUI=1;
const int BP=2;
const int LED3=3;
const int LED4=4;
int ETAT_BP;

void setup() {
  {
  pinMode (LED3,OUTPUT);
  pinMode (LED4,OUTPUT);
  pinMode (BP,INPUT);
  digitalWrite (LED3,LOW);
  digitalWrite (LED4,LOW);
  digitalWrite (BP, HIGH);
}

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}

void loop() {
  ETAT_BP=digitalRead(BP);
  if (ETAT_BP==APPUI){//si l'eta du bouton est appuier alors
    delay (800);
   digitalWrite(LED3,HIGH);//allume la led 3 s'allume
    delay (3500);//attend 5 secondes
    digitalWrite (LED3,LOW);//eteint la led 3
    delay (1000);//attend 2 secondes
    digitalWrite (LED4,HIGH);// allume la led 4
    delay (5250);//attend 9 secondes
    digitalWrite (LED4,LOW);
    delay (5000);
  }
  else {//sinon si le bp o est ouvert
    digitalWrite(LED3,0);
    digitalWrite(LED4,0);
  } // read the potentiometer:
  int sensorReading = analogRead(analogPin);
 
  int ledLevel = map(sensorReading, 0, 100, 0, ledCount);

 
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
   
   
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    }
   
    else {
      digitalWrite(ledPins[thisLed], LOW);
    }
  }
}

Leptro

#11
Dec 08, 2017, 04:30 am Last Edit: Dec 08, 2017, 04:38 am by Leptro
Oui avec moins d'angle on peu allumer les quatres leds, ce n'est que du codage.

Avez-vous essayé de compiler ce sketch?


Code: [Select]


const int analogPin = A1;  //entrer du potar 1
const int ledCount = 4;    // 4 leds
const int analogPin = A0;  // entrer du potar 2
const int ledCount = 4;  // 4 leds pour le deuxieme aussi
int ledPins[] = { // led pour le potar 2
  9, 10, 11, 12
};

int ledPins[] = { // led le potar 1
  8, 7, 6, 5
};   


Déclaration redondante pour ledcount, analogpin,ledpins .. si plusieurs variable ont le même nom ça va pas aller.

A corriger donc avant d'aller plus loin.


claas900

bonjour LEPTRO

oui j'ais essayer de compiler mais il m'indique une erreure

je ne vois pas ce que vous voulez dire par meme nom?

les deux doivent faire la meme chose mais avec des leds different,

comme il y aura deux récipient je vois pas ou est mon erreurs  :(

J-M-L

#13
Dec 08, 2017, 09:23 am Last Edit: Dec 08, 2017, 09:24 am by J-M-L
je ne vois pas ce que vous voulez dire par meme nom?
C'est simple
 const int analogPin = A1;  //entrer du potar 1
const int ledCount = 4;    // 4 leds
const int analogPin = A0;  // entrer du potar 2


D'après vous comment le compilateur va savoir si analogPin c'est A1 ou A0 puisque vous avez le même nom de Variable pour les 2....

Et quitte à modifier le code, Pour les pins utilisez des const byte
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Leptro

et l'erreur disais : "redefinition off 'const int analogpin'"
et ce n'est qu'un début.
Chaque variable doit avoir un nom différent . 1 pour réservoir 1 et 1 pour réservoir 2.




Go Up