Oui, pour faire un truc simple :
Je vous ai mis la simulation que j'obtiens.
Pour la diode prenez une 1N4007.
-----
Oui, pour faire un truc simple :
Je vous ai mis la simulation que j'obtiens.
Pour la diode prenez une 1N4007.
Attention les 6.8K doivent être des 1W minimum, 2W c'est mieux.
Je commande les diode et les résistance d'ici quelque jour les résistance sont des 1W aussi ?
Merci
J'ai tout commandé j'aurais sa d'ici 2 semaine. Sinon en attendant qu'elle était le problème avec le cablage du max ,485 ?
Il faut prévoir quelques sécurités sur sa sortie pour éviter de détruire le transceiver (court-circuit et surtensions).
Et s'assurer que la sortie est chargée par une résistance de fin de ligne si ce que vous allez brancher n'en possède pas.
Ce qui donne:
![]()
J'ai tout reçu et je viens d'esseyer le shema coter "puissance" Je me retrouve avec 9V au multimètre sur les borne 1 et deux du 4n25. Est ce que c'est bon ? (le 4n25 n'est pas sur le socle) sa me parait beaucoup
Dernière modification par Twcd ; 06/02/2018 à 13h34.
Par ailleur si je le laisse allumer un petit moment les resistance devienne asser chaude ... (j'ai verifier pas de court circuit ou que ce soit)
Si le 4N25 n'est pas sur le support il n'y a pas suffisamment de consommation, que vous ayez 9V n'est pas surprenant.
Que les résistances soient chaudes c'est normal, il y a de la puissance perdue par effet Joule.
C'est bien ce que je penser mais j'ai vue sur d'autre site que 9V n'etait pas trop quoi qui l'arrive je met le 4n35 et j'esseye tout sa je vous tiens au courant dans un p'tit moment.
Bon j'ai tout fait mais sa fonctionne moyennement. J'ai l'impression que je ne peut pas dimmer a fond ma lampe ce bloque a la moitie a peut prêt. Je suspecte clairement le zero cross de mal fonctionner car lorsque je le debranche sa marche quand meme... Mais il me semble bien cabler car la function s'execute comme il faut
Voici le script : (pas de moi)
Savez vous ou je devrait me pencher pour trouver le problème ?Code:/* AC Voltage dimmer with Zero cross detection Author: Charith Fernanado <a href="http://www.inmojo.com"> http://www.inmojo.com </a> Adapted by DIY_bloke License: Creative Commons Attribution Share-Alike 3.0 License. Attach the Zero cross pin of the module to Arduino External Interrupt pin Select the correct Interrupt # from the below table (the Pin numbers are digital pins, NOT physical pins: digital pin 2 [INT0]=physical pin 4 and digital pin 3 [INT1]= physical pin 5) check: <a href="http://arduino.cc/en/Reference/attachInterrupt"> http://www.inmojo.com </a> Pin | Interrrupt # | Arduino Platform --------------------------------------- 2 | 0 | All -But it is INT1 on the Leonardo 3 | 1 | All -But it is INT0 on the Leonardo 18 | 5 | Arduino Mega Only 19 | 4 | Arduino Mega Only 20 | 3 | Arduino Mega Only 21 | 2 | Arduino Mega Only 0 | 0 | Leonardo 1 | 3 | Leonardo 7 | 4 | Leonardo The Arduino Due has no standard interrupt pins as an iterrupt can be attached to almosty any pin. In the program pin 2 is chosen */ int AC_LOAD = 3; // Output to Opto Triac pin int dimming = 128; // Dimming level (0-128) 0 = ON, 128 = OFF void setup() { pinMode(AC_LOAD, OUTPUT);// Set AC Load pin as output attachInterrupt(0, zero_crosss_int, RISING); // Choose the zero cross interrupt # from the table above } //the interrupt function must take no parameters and return nothing void zero_crosss_int() //function to be fired at the zero crossing to dim the light { // Firing angle calculation : 1 full 50Hz wave =1/50=20ms // Every zerocrossing thus: (50Hz)-> 10ms (1/2 Cycle) // For 60Hz => 8.33ms (10.000/120) // 10ms=10000us // (10000us - 10us) / 128 = 75 (Approx) For 60Hz =>65 int dimtime = (75*dimming); // For 60Hz =>65 delayMicroseconds(dimtime); // Wait till firing the TRIAC digitalWrite(AC_LOAD, HIGH); // Fire the TRIAC delayMicroseconds(10); // triac On propogation delay // (for 60Hz use 8.33) Some Triacs need a longer period digitalWrite(AC_LOAD, LOW); // No longer trigger the TRIAC (the next zero crossing will swith it off) TRIAC } void loop() { for (int i=5; i <= 128; i++){ dimming=i; delay(10); } }
Dernière modification par Antoane ; 07/02/2018 à 13h43. Motif: Ajout balises code
Ne mettez pas la charrue avant les boeufs.
Déjà il faut vous assurer que le transistor "voit" bien les passages au zéro.
Avez-vous un oscilloscope?
Si vous n'en avez pas, vous pouvez faire un bout de programme qui va détecter le passage au zéro.
Vous pouvez utiliser une entrée analogique.
Vous fixez un seuil, si c'est un ADC 10 bits vous prenez par exemple 100 (soit 0.5V environ), et vous mettez une led sur une sortie.
Le code sur un PIC donnerait ça,à vous de l'adapter à votre µC:
Code:unsigned int adc_value; adc_value = ADC_Read(1); if(adc_value < 100) LATC2_bit = 1; // si ADC < 100 alors led sur port C2 "on". else LATC2_bit = 0; // sinon la led est éteinte
Le code que vous montrez est un véritable charabia, aucune structure, que des fonctions opaques avec des arguments bien peu parlants, bref c'est nul, on ne programme pas ainsi.
Le C ce n'est pas du tout cela, c'est un code structuré et avec des règles.
Par exemple on distingue les variables signées ou non signées, c'est bien plus propre et surtout lisible, on met un main() qui est l'entrée du programme et dans lequel le programme principal tourne, on identifie clairement la routine d'interruption et si possible en tête de programme pour s'y retrouver.
Dernière modification par Chtulhu ; 06/02/2018 à 23h20.