diff --git a/src/main.cpp b/src/main.cpp index 3452140..371e0b7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,17 +1,16 @@ /* -Hlabs controle de volume et de gain -par Clément SAILLANT +Hlabs controle de volume et de gain pour préampli stéréo avec fonction de contrôle constant output + +https://www.hlabs.audio +https://www.facebook.com/hlabs.audio +contact@hlabs.audio + +code par Clément SAILLANT pour Hlabs - 2023 c.saillant@gmail.com +0625334420 02/2023 */ -/* -tableau de valeurs (i) pour les relais, les valeurs de potentiomètre et les valeurs de lissage -0 : vol_0 volume gauche -1 : gain_0 gain gauche -2 : vol_1 volume droite -3 : gain_1 gain droite -*/ #include // ******************************************************************************************************* @@ -19,6 +18,7 @@ tableau de valeurs (i) pour les relais, les valeurs de potentiomètre et les val // ******************** // #define DEBUG = INACTIF ******************************************************* // ******************** #define DEBUG = ACTIF ************************************************************ // ******************************************************************************************************* + // #define DEBUG #ifdef DEBUG // si DEBUG activé @@ -26,12 +26,6 @@ tableau de valeurs (i) pour les relais, les valeurs de potentiomètre et les val #include "app_api.h" // only needed with flash breakpoints #endif -// ******************************************************************************************************* -// **************************** Activation ou non LEFT & RIGHT ******************************************* -// ******************************************************************************************************* -#define ENABLE_LEFT -// #define ENABLE_RIGHT - // ******************************************************************************************************* // ****************************************** include *************************************************** // ******************************************************************************************************* @@ -109,14 +103,14 @@ void loop() { if (stereo_link_state != true && const_out_L_state != true && const_out_R_state != true) // si pas de contrôle constant output { - valeurs_set(i); // controle des valeurs et des relais + valeurs_set(i); // controle des valeurs et des relais en mode normal } - else if (motor_change[i] != true) // si contrôle constant output et moteur arrêté + else if (motor_change[i] != true) // si contrôle constant output ou stereo link, et moteur arrêté { consigne_set(i); // mise à jour des consignes for (int i = 0; i <= 3; i++) { - valeurs_const_set(i); // controle des valeurs et des relais + valeurs_const_set(i); // controle des valeurs et des relais en mode constant output } } save_pot(i); // sauvegarde position potentiomètre diff --git a/src/notepad.txt b/src/notepad.txt index ee6684b..ef6a437 100644 --- a/src/notepad.txt +++ b/src/notepad.txt @@ -1,14 +1,3 @@ /* -Faire un calcul de consigne pour toujours avoir un écart définit entre les deux potar - -faire PID avec analogRead pour voir si plus réactif - - -pour avoir les valeur de PID faire un code de test pour connaitre les valeurs -Set PID value : -Le PID semble mal fonctionner car le temps de boucle est trop long pour qu'il puisse faire correctement son calcul -#define __Kp 260 // Proportional constant -#define __Ki 2.7 // Integral Constant -#define __Kd 2000 // Derivative Constant */ \ No newline at end of file diff --git a/src/variables.h b/src/variables.h index 855425e..b9b66b8 100644 --- a/src/variables.h +++ b/src/variables.h @@ -12,17 +12,17 @@ // définition PIN curseur potentiomètre #define gain_0_pot A1 // entrée pot gain gauche #define vol_0_pot A0 // entrée pot volume gauche -#define gain_1_pot A2 // entrée pot gain droite -#define vol_1_pot A3 // entrée pot volume droite +#define gain_1_pot A3 // entrée pot gain droite +#define vol_1_pot A2 // entrée pot volume droite // ******************************************************************************************************* // ****************************************** potentiomètre ********************************************** // ******************************************************************************************************* // adresse moteur -#define gain_0_motor 0xC8 // A0 = open, A1 = 1 -#define vol_0_motor 0xCE // A0 = open, A1 = open -#define gain_1_motor 0xD0 // A0 = 1, A1 = open -#define vol_1_motor 0xCA // A0 = 1, A1 = 1 +#define gain_0_motor 0xC8 // A0 = open, A1 = open +#define vol_0_motor 0xCE // A0 = open, A1 = 1 +#define gain_1_motor 0xC2 // A0 = open, A1 = 0 +#define vol_1_motor 0xC6 // A0 = 0, A1 = open // variables potentiomètre int position_lue[4] = {0, 0, 0, 0}; // tableau des valeur lus sur les potentiomètre @@ -32,12 +32,12 @@ int position_memory[4] = {0, 0, 0, 0}; // tableau bool position_change[4] = {false, false, false, false}; // tableau de flag de changement de position des potentiomètre bool motor_change[4] = {false, false, false, false}; // tableau de flag pour moteurs des potentiomètre byte analog_pot[4] = {gain_0_pot, vol_0_pot, gain_1_pot, vol_1_pot}; // tableau de PIN des potentiomètre -#define max_pot 1000 // valeur max potentiomètre pour calibrage ADC -#define min_pot 10 // valeur min potentiomètre pour calibrage ADC -// variable pour gestion du temps +#define max_pot 1023 // valeur max potentiomètre pour calibrage ADC +#define min_pot 0 // valeur min potentiomètre pour calibrage ADC + +// variable de gestion du temps unsigned long last_change_time = millis(); // remise à zéro du compteur de temps unsigned long current_time = millis(); // variable de temps courant - #define bounce_time_pot 150 // interval de temps entre 2 lecture de l'état du potentiomètre // ******************************************************************************************************* @@ -46,8 +46,9 @@ unsigned long current_time = millis(); // variable de temps courant // adresse carte relais #define gain_0_relais 0x39 // A0 = 0, A1 = 1, A2 = 1 #define vol_0_relais 0x38 // A0 = 1, A1 = 1, A2 = 1 -#define gain_1_relais 0x00 -#define vol_1_relais 0x00 +#define gain_1_relais 0x3B // A0 = 0, A1 = 0, A2 = 1 +#define vol_1_relais 0x3A // A0 = 1, A1 = 0, A2 = 1 + // variables relais byte relais_gain_val[2] = {0, 0}; // tableau de valeur des relais gain byte relais_vol_val[2] = {0, 0}; // tableau de valeur des relais volumes