Pages: 1 2 [3]   Go Down
Author Topic: Variateur de lumière 8 canaux 230V  (Read 10105 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 92
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ca y est ça fonctionne!! vraiment efficace ton code, merci bcp!

Profitant d'être sur un forum ou l'on manipule du 220V, quelqu'un aurait une idée de quel genre de boitier peut être utilisé pour protéger tout ça? Y a t'il des sites pour en acheter des sur mesure? Peut on en fabriquer un? Quel genre de fils faut il utiliser?

merci d'avance smiley
Logged

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 418
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tant mieux si tu es satisfait.
Rencontres-tu des soucis ? scintillement par exemple ?
Combien de canaux utilises-tu ?

J'envisage d'optimiser le code à l'avenir.

Pour les boitiers, j'utilise les boitiers Railtec C, sur rail DIN, de chez http://www.okatron.fr. Mes PCB sont conçus pour rentrer pile dedans.

Gromain
Logged

"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello

Dans le genre "trucs et astuces pour gagner en perf", tu peux manipuler directement des états des pins en donnant des valeurs (binaires ou hexadécimal) aux variables PORTB PORTC et PORTD. Cela permet de se passer des fonctions  pinMode(pin, mode) et digitalWrite(pin, state). Tu peux faire commuter plusieurs pins en même temps, et grandement gagner en poids et perfs sur le programme compiler.
C'est, je pense, très efficace pour des programmes comme le tient, où il faut définir ou commuter un grand nombre de sorties.
De plus, on peut l'utiliser en complément des fonctions classiques des librairies arduino.

Un petit exemple, pour mieux comprendre, avec ton setup.
Supposons que tu as 6 canaux sur le port B (pins 8 à 13).
( J'utilise exprès 6 canaux au lieu de tes 8 car cela est plus facile a manipuler pour mes exemples. )
Donc, dans ton setup, tu as une boucle for pour sélectionner chaque pin, et définir son statut et son état. Avec la manipulation des ports, ça prend 2 lignes, et cela devrait éliminer le "flash" des ampoules au démarrage de la carte.
Code:
DDRB = B1;
PORTB = 0b0;

Explication :
Première étape, assigner le port en output :
Code:
DDRB = B1; // Définie le port entier en output
// DDRB = B111110;  // Définie les pins 9 à 13 en output et la pin 8 en input
Tu passes ensuite toutes les pins a 0:
Code:
PORTB = 0b000000;
ou
Code:
PORTB = 0;

D'autres exemples :
Si tu ne veux que les pins 8 et 10 en high:
Code:
PORTB = 0b000101;
ou
Code:
PORTB = 0x05;

Tu veux une pin précise (la 10) à HIGH:
Code:
PORTB |= 0b000100;
ou
Code:
PORTB |= 1 << 2;
ou
Code:
PORTB |= _BV(2);
A noter que 2 est la position de la pin sur le port ( donc 0=8, 1=9, 2=10, etc)

La même à l'état LOW:
Code:
PORTB &= ~0b000100
ou
Code:
PORTB &= ~(1<<2)
ou
Code:
PORTB &= ~_BV(PB2);
ou
Code:
PORTB &= ~_BV(2);
ou
Code:
PORTB &= ~0x4;


Pour plus d'info:
http://www.arduino.cc/en/Reference/PortManipulation
http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html
http://www.instructables.com/id/Arduino-is-Slow-and-how-to-fix-it/
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 92
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi, pour l'instant je ne l'ai pas testé sur haute tension donc pas de scintillement... ceux ci ne sont ils pas du au filtre?
Dans des montages de gradateurs comme sur ce site, l'auteur met des filtres de plus haut niveau...
Par ailleurs je n'ai besoin que d'un seul canaux pour chez moi, donc je n'utilise pas tout ton code!
je pense avoir dessiné/gravé/soudé la plaque d'ici deux semaines. Je te fais un compte rendu dans peu de temps!
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dans le genre petite interface 8 voies simple et efficace qui irait bien avec ton code
http://sonelec-musique.com/electronique_realisations_interfaces_lpt_003.html
Manque juste là détection du zéro.
Logged

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