Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Idée, bugs, propositions .......
liaison serie (uart)-excel
francknvs
Débutant
Débutant
Messages : 82
Enregistré en : septembre 2017
Localisation : Paca-toulon

#61 Message par francknvs » dim. 3 mars 2024 10:56

RE,
merci bcp
je suis entrain de regarder de mon coté via le debug ICD3 en analysant chaque variable de sortie avant/apres conversion dans mon prog ci-dessous:

Code : Tout sélectionner

//--> 1ere Conversion A/D sur AN00
        digital_Adc = ADC_Read(0); // Appel de la Fct de Lecture du canal 0   
        voltage = digital_Adc * ((float) V_Ref / (float) 1023); //Calcul de la Conversion des valeurs Analogique en Numerique
        sprintf(data_Capt_An00, "%.2f", voltage); //Conversion de la valeur Entiere en Chaine ASCII
        USART_SendString(data_Capt_An00);// Appel de la Fct USART de Transmission de la chaine ASCII 
        USART_TxChar(0x0D); // Appel de la Fct USART de Transmission du Caractere (\r), de retour chariot comme separateur
        MS_delay(1000); 

liaison serie (uart)-excel
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2599
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#62 Message par paulfjujo » dim. 3 mars 2024 11:45

bonjour,

pour Afficher directement ce que tu envoies , au lieu des codes ascii

Code : Tout sélectionner


Sub CoolBtn2Click
(Sender as QCoolBtn)    'visualisation de loscilloscope

 if utilisation = 1 then exit sub

 if Coolbtn1.Caption = "OFF" then
     call CoolBtn1Click(Sender)
     Fonctionner = 0                   '
si Fonctionner = 0 le port n'a pas était activé
  else
     Fonctionner = 1
  end if

  if Complication = 1 then             '
 complication sur le port
     exit sub
  end if

     Utilisation 
= 1
     Clearbuffer
     Buffersize 
= 65535

  do
       doevents
      
    A
$= ReadString()                        
    if
(len(A$)>1) then
       listbox1
.AddItems A$
    end if

  loop until Utilisation 
= 0
  
  
......etc ..

 


Capture.JPG



Dommage que ton excel refuse la RScom.dll
sinon, envoyer tes données avec un sepateur , ou ; pour creer un fichier *.csv dans rapidQ
lisible diretcement par excel
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

liaison serie (uart)-excel
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#63 Message par Temps-x » dim. 3 mars 2024 13:36

Re
paulfjujo a écrit :Source du message Dommage que ton excel refuse la RScom.dll

Ouvrir une usine à gaz, je suis pas sur que c'est la solution

Suppprime le dossier "ico" qui va être recréé au fois le zip extrait avec cette version ICI

Tu appuies sur le bouton configuration, et tu rentres les mêmes valeur que l'image ci-dessous

Comme ça.jpg


==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

liaison serie (uart)-excel
francknvs
Débutant
Débutant
Messages : 82
Enregistré en : septembre 2017
Localisation : Paca-toulon

#64 Message par francknvs » dim. 3 mars 2024 18:54

merci paul et temps-x

Paul: je suis desolé mais tes modif sont incomplete ou erronée, j'ai n'obtien aucune data dans le terminal.

Temps-x:
la modif faisant intervenir un coeficient (0.02, ....) ne donne pas de bons resultat sur le terminal:
voici un copie comparative sur une 3 valeurs:
0.03 volts-->3.86
2.85 volts-->4.1
5.00 volts-->4.24

Capture d'écran 2024-03-03 184801.png
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

liaison serie (uart)-excel
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#65 Message par Temps-x » dim. 3 mars 2024 19:33

Re

Résultat bizare sur le terminal, faut vérifier avec un multimètre pour être sur de ce que dit le terminal.

Quelle est ta tension de référence ?

1 pas correspond à quoi ?


==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

liaison serie (uart)-excel
gwion
Passionné
Passionné
Messages : 212
Enregistré en : février 2022

#66 Message par gwion » dim. 3 mars 2024 19:57

Bonsoir,
Depuis le programme du MCU, envoyer une valeur fixe (genre 1.23) pour voir ce qui arrive côté PC. Ceci pour localiser avec certitude le problème.

liaison serie (uart)-excel
francknvs
Débutant
Débutant
Messages : 82
Enregistré en : septembre 2017
Localisation : Paca-toulon

#67 Message par francknvs » dim. 3 mars 2024 20:01

Re,

ok , en fait je pense que l'on aborde le pbm différemment sur mon projet...
la Pin d'entrée AN0 est configurée en entrée analogique (5 volt max)
un potar fait varier une tension de 0 à 5 volt.
cette tension est lue ( via ADC_Read(0))puis convertis en Numerique (0-1023) par le convertisseur interne du pic et la met dans une variable de type int degital_Adc.

Code : Tout sélectionner

/*****************************Lecture du Convertisseur A/D***********************/
int ADC_Read(int channel) 
{
    int digital_Adc;
    ADCON0 = (ADCON0 & 0b11000011) | ((channel << 2) & 0b00111100); //Inibition de la conversion ( ADON=0) et Canal 'int channel'selectionné ex:(CHS3CHS2CHS1CHS0=0000)                                                        
    ADCON0 |= ((<< ADON) | (<< GO)); //Validation de ADC et debut de conversion
    while (ADCON0bits.GO_nDONE == 1); // Delai d'attente de Fin de Conversion: Go/done=0 Conversion Terminée
    digital_Adc = ((ADRESH * 256) | ADRESL); //Combinaison des 8-bit de poids faibles et des 2-bit de poids forts
    return (digital_Adc);
}


puis la data contenu dans digital_Adc est convertis en numerique avec pour tension de ref 5 volt sur 1023 bit.
le resultat obtenu est mis dans une variable appelée "voltage"....on va ensuite convertir cette data de valeur entiere en ascii
le resultat va rentrer dans un tableau de char nommée " data_Capt_An00"
puis on va envoyer cette data via l uart du pic

Code : Tout sélectionner

//--> 1ere Conversion A/D sur AN00
        digital_Adc = ADC_Read(0); // Appel de la Fct de Lecture du canal 0   
        voltage = digital_Adc * ((float) V_Ref / (float) 1023); //Calcul de la Conversion des valeurs Analogique en Numerique
        sprintf(data_Capt_An00, "%.2f", voltage); //Conversion de la valeur Entiere en Chaine ASCII
        USART_SendString(data_Capt_An00);// Appel de la Fct USART de Transmission de la chaine ASCII 
        USART_TxChar(0x0D); // Appel de la Fct USART de Transmission du Caractere (\r), de retour chariot comme separateur
        MS_delay(1000);


voici les differentes variable utilisées est le type:
//--> Déclaration des variables
int digital_Adc; //Variable de lecture directe
float voltage; //Variable de type Float pour la conversion
char data_Capt_An00[6];// Tableau de 06 Char

liaison serie (uart)-excel
francknvs
Débutant
Débutant
Messages : 82
Enregistré en : septembre 2017
Localisation : Paca-toulon

#68 Message par francknvs » dim. 3 mars 2024 20:17

re,

bonsoir gwion...
je viens de faire cet essai
Capture d'écran 2024-03-03 201209.png


pour plus de précision, j'ai modifier mon code du MCU

Code : Tout sélectionner

//--> 1ere Conversion A/D sur AN00
        digital_Adc = ADC_Read(0); // Appel de la Fct de Lecture du canal 0   
        voltage = 251 * ((float) V_Ref / (float) 1023); //Calcul de la Conversion des valeurs Analogique en Numerique
        sprintf(data_Capt_An00, "%.2f", voltage); //Conversion de la valeur Entiere en Chaine ASCII
        USART_SendString(data_Capt_An00);// Appel de la Fct USART de Transmission de la chaine ASCII 
        USART_TxChar(0x0D); // Appel de la Fct USART de Transmission du Caractere (\r), de retour chariot comme separateur
        MS_delay(1000);


j'ai shooté la lecture du convertisseur "digital_Adc" pour mettre la valeur arrondie sur 10 bit "251"
soit:
251*(5/1023)=1.226==1.23
j’obtiens bien cette valeur sur le terminal mais sur le programme RapidQ, j'obtiens 0.784 :mur:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

liaison serie (uart)-excel
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2599
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#69 Message par paulfjujo » dim. 3 mars 2024 20:45

francknvs a écrit : je suis desolé mais tes modif sont incomplete ou erronée, j'ai n'obtien aucune data dans le terminal.


oups!
j'ai oublié de te dire de rajouter, definir en tete de programme :
la variable A$

Dim A$ as string

depuis le PIC, tu envoies bien des strings (pas les ficelles !) à l'appli rapidQ ...

--------------------------------------------------------------------------------
sprintf(data_Capt_An00, "%.2f", voltage);

tu peux inclure le CR dans le sprintf
sprintf(data_Capt_An00, "%.2f\r", voltage);
ou un CR LF
sprintf(data_Capt_An00, "%.2f\r\n", voltage);
Aide toi, le ciel ou FantasPic t'aidera

liaison serie (uart)-excel
gwion
Passionné
Passionné
Messages : 212
Enregistré en : février 2022

#70 Message par gwion » dim. 3 mars 2024 21:13

Côté RapidQ, tout est correct dans la configuration du port série (nombre de bits, parité) ?


Retourner vers « Le forum Fantas-PIC »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités