Go Down

Topic: [résolu] IR parasité par lampe basse consommation (Read 960 times) previous topic - next topic

zerko

Jan 14, 2012, 05:42 pm Last Edit: Jan 15, 2012, 08:03 pm by Jean-François Reason: 1
Bonjour,
Je commence à m'initier à Arduino.
J'ai fait plusieurs essais basiques en suivant les tutos éxistants.
J'ai une carte Arduino Uno V2, un module relais un récepteur et une télécommande infrarouge.
Je veux tout simplement allumer et éteindre un spot avec la télécommande.J'ai utilisé ce script :
Code: [Select]

//allumage et arret d une lumiere avec telecommande quelle que soit la touche
//Led sur 9 et IR sur A0 ( 3.3V)
int rel = 9;
int analogPin = 0;
int val =0;
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
digitalWrite (rel,HIGH);
}
void loop()
{
val = analogRead(analogPin);
Serial.println(analogRead(A0));
if (val == 0 && digitalRead(9) == HIGH)
{
digitalWrite(9, LOW);
delay(250);
}
val = analogRead(analogPin);
if (val == 0 && digitalRead(9) == LOW)
{
digitalWrite(9, HIGH);
delay(250);
}
}

Tout va bien jusqu'à ce que j'allume la lumière basse consommation du fond de la même pièce, ça clignote en permanence.

Voyez-vous une solution pour enlever ce parasitage ?
Merci et bonne fin de journée


Edit de Jean-François : merci de mettre le code entre les balises

68tjs

Relis bien ton script :
Tu utilises les pin A0 et 9 mais aussi la pin 0 (Rx) et ça je pense à une erreur d'inattention.
Code: [Select]
int analogPin = 0;
Il y a aussi un seul pinmode pour deux pins utilisées, par défaut après un reset les pins sont toutes dans le même état (lequel je ne sais plus) mais par principe même si l'état par défaut convient il est préférable de fixer l'état de chaque pin par programmation.
Pour les parasites saches qu'une lampe basse consommation c'est un néon et un néon fonctionne avec une tension bien supérieure à 220V : dans le culot il y a un convertisseur de tension qui est la source de tes parasites.

Pour en minimiser son pouvoir de nuisance deux actions simples:
1) Ne jamais laisser une entrée flottante il faut soit une résistance de tirage à la masse soit au Vcc (des anglophones diraient pull-down et pull-up). Pour une pin configurée en entrée ecrire un "digitalWrite(pin, HIGH)" a pour propriété de mettre en circuit une résistance de tirage au Vcc dont la valeur fait 50 kOhms +/-20%. Voir Le Guide Arduino épinglé en tête du forum.
2) Faire un câblage propre, éviter les longueurs de fils de liaisons inutiles ce sera autant d'antennes en moins.

Si la résistance de tirage et un câblage propre ne suffisent pas utiliser des fils blindés en reliant le blindage à la masse en 1 seul point coté arduino , en remplacement du fil blindé tu peux utiliser deux fils tordadés et tu en relies un à la masse comme pour le blindage.

zerko

Merci,
Je vais suivre tes conseils et essayer de résoudre ce problème.

skywodd

Bonjour,

Je dois t'avouer que c'est un miracle que ton code marche lumière eteinte :smiley-sweat:

En faite c'est le principe même de ton code qui pose probléme, tu ne détecte pas un code IR mais uniquement une activé sur le capteurs IR, donc il est normale que tu capte les parasites de la lampe basse conso puisse que celle ci émet des IR.

Pour résoudre ton probléme il faut utiliser une librairie comme IRREMOTE qui va ce charger de détecter/décoder les codes IR de ta télécommande en laissant de coté les parasites ;)
-> http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

chabot380

salut
les lampes basse consommation n'émettent pas des IR mais un peu de rayon ultraviolet !
Elles émettent de fréquences diverses avec toutes leurs harmoniques !!!
Tu n'as pas une lampe basse consommation made in china ?  :smiley-mr-green:

Changes ta lampe pour essai.

A+
chabot380
ORDINAUSORE 2Ghz AMD64 QUI S'ALLUME EN 48 SECONDES AVEC UBUNTU 12.04
ARDUINO UNO / Shield Ethernet / RTC DS1307
Programmation Python et j'apprends le C
Technicien Télé Vidéo à la retraite.

skywodd


les lampes basse consommation n'émettent pas des IR mais un peu de rayon ultraviolet !
Elles émettent de fréquences diverses avec toutes leurs harmoniques !!!

Ouai, enfin les lampes basse conso font quand même bien bugger les trucs contrôle en IR :smiley-mr-green:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

zerko

Merci,
Je vais suivre aussi cette piste;

zerko

#7
Jan 15, 2012, 03:30 pm Last Edit: Jan 15, 2012, 04:43 pm by zerko Reason: 1
Bonjour,
Suite à vos conseils et en fouillant vos liens sur le forum j'ai essayé celà:

La del N°13 s'allume si j'appuie sur la touche 1 de la télécommande

Code: [Select]
<IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(13, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    if(results.value == 0xFF30CF) {
      digitalWrite(13, HIGH);
    }
    irrecv.resume(); // Receive the next value
  }
}




Plus de problème d'interférence !

J'essaierai cette semaine la fonction télérupteur par cette télécommande.
J'appuie , la del s'allume
J'appuie, la del s'éteint

Bonne journée.

skywodd


J'essaierai cette semaine la fonction télérupteur par cette télécommande.
J'appuie , la del s'allume
J'appuie, la del s'éteint

Ok tient nous au courant ;)

Ps: met ton code entre balises "code" (le # dans l'éditeur) ;)
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

zerko


Go Up