Pages: 1 [2] 3   Go Down
Author Topic: Une LED qui mesure l'éclairement et qui éclaire !  (Read 5439 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon, alors, résultat de mes premières expérimentations :
Dans ce qui circule dans la console Arduino, la valeur semble effectivement varier quand j'approche mon doigt.
Par contre, dans le patch PureData, impossible de la récupérer, il m'affiche une valeur presque constante, aux alentours de 50, quoi que je fasse:(

Cela dit, une remarque sur le programme que tu as posté : chez moi, la LED n'est pas allumée constamment : elle clignote.
Et bizarrement, la fréquence du clignotement augmente avec la luminosité - elle diminue quand j'approche mon doigt, et à l'inverse la diode s'allume en continu si je l'éclaire...
Logged

Poitiers (France)
Offline Offline
Full Member
***
Karma: 0
Posts: 136
Ca va j'vais le faire !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

Dans ce qui circule dans la console Arduino, la valeur semble effectivement varier quand j'approche mon doigt.
Au pasage, si tu es sous Windows, utilise la console HyperTerminal.

Par contre, dans le patch PureData, impossible de la récupérer, il m'affiche une valeur presque constante, aux alentours de 50, quoi que je fasse
Je ne sais que te dire, jamais utilisé PureData avec l'Arduino. Qu'attends le patch PureData comme format de transmission. Quel protocole utilise t'il ?

Cela dit, une remarque sur le programme que tu as posté : chez moi, la LED n'est pas allumée constamment : elle clignote.

Oui, c'est bien là le but smiley. Ce n'est qu'un démonstrateur. Dans les faits, en simplifiant : quand on allume la LED, on charge sa capacité qui existe du fait de sa construction. Comme toutes les diodes, les lED sont sensibles à la lumière et il se trouve que l'éclairement décharge la capacité précédement chargée. Plus la LED est éclairée, plus sa capa se décharge vite. Le programme mesure le temps de décharge de la capa en attendant que la tension aux bornes de la LED soit celle du seuil de basculement l'entrée de l'Arduino. Une fois la LED déchargée, on la recherge un temps constant.
Dans ce cas, si l'éclairement est faible, la LED clignote très lentement car la capa se décharge lentement car elle mets lontemps à arriver au seuil de basculment.

Et bizarrement, la fréquence du clignotement augmente avec la luminosité
rien de bizarre voir explication ci-dessus.

- elle diminue quand j'approche mon doigt,
oui, jusqu'a un certain point, car tu crées une ombre. Si vraiment tu approche ton doigt, au contraire elle clignotera plus vite.

et à l'inverse la diode s'allume en continu si je l'éclaire...
Oui, et d'ailleurs elle n'est pas allumée en continu, mais elle clignote trop vite pour que nos yeux humains percoive le cligotement. C'est la persistence rétinienne qui fait que tu la allumée fixement.
Logged

Cordialement,
Benoît ROUSSEAU

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
I just tried to run the code on an Atmega168.
The problem is that i dont get the pull-up resistors deactivated. :'(
according to the a168 manual the code for switching off the resistors is the same as in the atmega8
does anyone know how to deactivate the resistors in the a168?

thank you.
max.
Logged

Poitiers (France)
Offline Offline
Full Member
***
Karma: 0
Posts: 136
Ca va j'vais le faire !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,

I don't have a solution ! smiley-sad I will try it since the end of the week.

Bonjour,

Je n'ai pas de solution ! smiley-sad J'essaierai d'ici la fin de semaine...
Logged

Cordialement,
Benoît ROUSSEAU

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

i already tried to use the 5V power supply and control it by a relais connected to the digital pins, so there wasnt any resistor i had to turn off - but the relais was just too slow. :-/
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

did you try:
MCUCR=(PUD<<1)
at the moment iam not able to try it myself cause i dont have my arduino with me.

max
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 ;D
It works.

  _SFR_IO8(0x35) |= 4;
  _SFR_IO8(0x35) |= (1<<4);

instead of _SFR_IO8(0x30) |= 4; according to the atmega168 documentation the MCUCR is located at 0x35.
i didnt check wich of both rules is the matching one, but at least one of both is working, cause my led is flashing in short terms an is i have a look into my serial console i receive the data of illumination.
if i take it into my hand and close is (100% dark) i get "0".
if there is minimal light i get "1". and so on. :o

max
Logged

Poitiers (France)
Offline Offline
Full Member
***
Karma: 0
Posts: 136
Ca va j'vais le faire !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry for my too late response,

 It's normal that when take your LED in your hand you have 0. The LEd is used like a capacitive sensor wich could be discharge by light or a proximitive (is that word exist ?) of a human body part.

(pff c'est dur l'anglais smiley)

Désolé pour ma réponse tradive

Il est normal que ta LED se comporte dans ta main comme en pleine lumière. La LED est utilisé en capteur capacitif qui peut être déchargé par la lumière où par la proximité d'une partie de corp humain.
Logged

Cordialement,
Benoît ROUSSEAU

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à toutes et à tous,

Je déterre ce vieux post : quelqu'un a t-il essayé ce truc sur une Duemillanove ?

En dehors des "évolutions" de langage concernant le serial monitor, pas d'anomalie lors de la compilation et en execution, ça semble rester bettement bloqué en cours de route !!!
J'ai l'impression que la Led ne se "décharge" pas mais sans certitude ...

Merci d'avance pour vos avis et idées.
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La led reste allumée, ou est-ce quelle ne s'allume pas du tout ?
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alors, elle s'allume, un certain temps ... qui dure, ... qui dure, ... qui dure puis elle s'éteint et se rallume pendant un certain temps ... qui dure, ... qui dure, ... qui dure .

J'ai mis une ligne pour envoyer sur le terminal une info en début de boucle setup et loop mais je ne vois rien? J'ai comme l'impression que ça bloque de proc.
La manip n'est peut être pas directement compatible avec un 328?


Pour la led, j'ai mis une resistance de 100 ohms comme c'est indiqué sur le playground.

Je n'ai gardé que les lignes pour simplement allumer et éteindre la led et ça fait pareil ( sensation de blocage ou de ralentissement du proc ).

Merci pour ton aide
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Tu as utilisé le code de Benoit Rousseau tel quel ?

Comment as tu branché ta led ?

Entre quelles pins ?

Ensuite fait un serialPrint entre chaque ligne ou fonction, avec "ok1", "ok2","ok... etc, comme cela si ça viens de la prog tu peux déjà situer ou ça bloque ou ralenti.
« Last Edit: March 14, 2010, 10:53:49 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon, j'ai trouvé où ça bloque : c'est au "while (digitalRead (pinB) != 0)" qui reste à 1.

Pour le branchement de la led, elle est en série avec une resistance de 100 ohms et l'anode est sur Digital 2 et la cathode sur Digital 3.

Voici le programme :

int pinA = 2; // + Anode de la LED
int pinB = 3; // - Cathode de la LED
int val = 0;  // valeur de l'éclairement

void setup()
{
  Serial.begin(9600); // connect to the serial port
  // désactivation des résistances pull-up
  //_SFR_IO8(0x30) |= 4;
  // Les deux broches connectées à la LED en sorties
  pinMode(pinA, OUTPUT);
  pinMode(pinB, OUTPUT);
  // On allume la LED
  digitalWrite(pinA, HIGH);
  digitalWrite(pinB, LOW);
}

void loop()
{
  // RAZ valeur d'éclairement
   val = 0;
  // phase a - led allumée durant 80 ms
  digitalWrite(pinA, HIGH);
  digitalWrite(pinB, LOW);
  delay (80);
  // phase b - mise a niveau
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, HIGH);

  // phase c - décharge & mesure
  pinMode(pinB, INPUT);
  while (digitalRead (pinB) != 0)
  {
    Serial.print("valeur de PinB en entrée =");
    Serial.println(digitalRead (pinB),DEC);
  }
  val++;
  pinMode(pinB, OUTPUT); // on repasse la sortie B en sortie

  // on réallume la LED le temps de la transmisssion plus bouclage, mais rien d'obligatoire
  Serial.println("réallumage");
  digitalWrite(pinA, HIGH);
  digitalWrite(pinB, LOW);

  // transmission valeur
  Serial.print("Valeur lue = ");
  Serial.println(val,DEC);
}
 
Merci pour ton aide
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Essaye de mettre la phase "b" en commentaire.
« Last Edit: March 14, 2010, 12:55:39 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est pas mieux, ça bloque toujours au même endroit ...
Je laisse tomber pour ce soir. Je ferais un autre éssai demain avec d'autre diodes ... Je dois avoir des diodes infrarouges au boulot, ce sera peut être mieux ?

Merci pour ton aide et bonne soirée
Logged

Pages: 1 [2] 3   Go Up
Jump to: