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 ---
- 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 ---
Modérateur : Jérémy
Conversion fichier
-
RETRAITE128

Amateur- Messages : 125
- Enregistré en : août 2021
Bonjour,
J'ai trouvé sur le NET un article qui traite de la mesure Température-Humidité avec un DHT22.
Hélas le fichier fourni est en langage C et je ne dispose pas de logiciel pour le convertir en fichier .HEX pour le PIC.
Pourriez-vous me venir en aide pour réaliser celui-ci s'il vous plaît ?
PIC16F84A + Simulation Proteus du capteur DHT22 (AM2302, RHT03) (simple-circuit.com)
Dans l'attente de vous lire,
Alain
J'ai trouvé sur le NET un article qui traite de la mesure Température-Humidité avec un DHT22.
Hélas le fichier fourni est en langage C et je ne dispose pas de logiciel pour le convertir en fichier .HEX pour le PIC.
Pourriez-vous me venir en aide pour réaliser celui-ci s'il vous plaît ?
PIC16F84A + Simulation Proteus du capteur DHT22 (AM2302, RHT03) (simple-circuit.com)
Dans l'attente de vous lire,
Alain
Conversion fichier
Conversion fichier
Bonjour,
https://simple-circuit.com/pic16f84a-dh ... imulation/
Le compilateur CCS est un logiciel commercialisé, peu utilisé sur ce forum, peut être quelqu'un se manifestera. J'avais installé la démo de durée 45 jours de ce compilateur, elle est périmée donc inutilisable.
Piloter un DHT22 est assez simple à réaliser quel que soit le langage. A ce stade il serait intéressant d'installer MPLABX et xc8 pour pouvoir compiler à la fois des sources assembleur et C.
Quel est le but de ce montage, apprentissage ou produit fini ?
https://simple-circuit.com/pic16f84a-dh ... imulation/
Le compilateur CCS est un logiciel commercialisé, peu utilisé sur ce forum, peut être quelqu'un se manifestera. J'avais installé la démo de durée 45 jours de ce compilateur, elle est périmée donc inutilisable.
Piloter un DHT22 est assez simple à réaliser quel que soit le langage. A ce stade il serait intéressant d'installer MPLABX et xc8 pour pouvoir compiler à la fois des sources assembleur et C.
Quel est le but de ce montage, apprentissage ou produit fini ?
Conversion fichier
Bonjour,
J'ai la version démo installée il y a quelques jours, donc encore fonctionnelle. Je viens d'essayer de compiler : 19 erreurs. Comme je ne connais pas du tout CCS je ne sais pas en dire plus.
Si le but est d'apprendre comment ça fonctionne, il faudrait mieux partir d'un projet prévu pour le compilateur XC8 et non pour des logiciels payants (et chers).
J'ai la version démo installée il y a quelques jours, donc encore fonctionnelle. Je viens d'essayer de compiler : 19 erreurs. Comme je ne connais pas du tout CCS je ne sais pas en dire plus.
Si le but est d'apprendre comment ça fonctionne, il faudrait mieux partir d'un projet prévu pour le compilateur XC8 et non pour des logiciels payants (et chers).
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Conversion fichier
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
A voir avec la version MikroC qui est gratuite jusqu'à 2K de code
Avec un 16F84 et en reduisant au maximum le code ça devrait le faire !
ci dessous un code pour 18F26K22 et DHT22 ( AM2302)
A voir avec la version MikroC qui est gratuite jusqu'à 2K de code
Avec un 16F84 et en reduisant au maximum le code ça devrait le faire !
ci dessous un code pour 18F26K22 et DHT22 ( AM2302)
Code : Tout sélectionner
unsigned int Temp, RH ;
unsigned long value;
const char degree[] = {14,10,14,0,0,0,0,0}; // char special pour LCD
// DHT22 sensor connections
sbit DHT22_Pin at PORTC.B0;
sbit DHT22_Pin_Direction at TRISC0_bit;
sbit DHT22_Pin_Out at LATC.B0 ;
unsigned short DHT22_Check_Presence, Temp_1, Temp_2, RH_1, RH_2, DHT22_Checksum;
unsigned long DHT22_All;
//-------------------------------------------
// rev 06-09-2017
unsigned char DHT22_Read_Byte(void)
{ char i,j;
for(j = 0; j < 8; j++)
{
while(!DHT22_Pin);
Delay_us(30);
if(DHT22_Pin == 0)
i&= ~(1<<(7 - j));
else
{
i|= (1 << (7 - j));
while(DHT22_Pin);
}
}
return(i);
}
unsigned long DHT22_Read_All_Data()
{
DHT22_Pin_Direction = 0;
DHT22_Pin_Out = 0;
Delay_ms(20);
DHT22_Pin_Out = 1;
Delay_us(40);
DHT22_Pin_Direction = 1;
DHT22_Check_Presence = 0;
Delay_us(20);
if (DHT22_Pin == 0)
{
Delay_us(80);
if (DHT22_Pin == 1) DHT22_Check_Presence = 1;
Delay_us(40);
}
if (DHT22_Check_Presence == 1)
{
RH_1 = DHT22_Read_Byte();
RH_2 = DHT22_Read_Byte();
Temp_1 = DHT22_Read_Byte();
Temp_2 = DHT22_Read_Byte();
DHT22_Checksum = DHT22_Read_Byte();
if(DHT22_Checksum == ((RH_1+RH_2+Temp_1+Temp_2) & 0XFF))
{
DHT22_All = RH_1;
DHT22_All = (DHT22_All << 8) | RH_2;
DHT22_All = (DHT22_All << 8) | Temp_1;
DHT22_All = (DHT22_All << 8) | Temp_2;
}
else
{
DHT22_All = 0x58585858;
}
}
else
{
DHT22_All = 0x63636363;
}
return DHT22_All;
}
dans le main()
....Inits divererses
// usage
value = DHT22_Read_All_Data();
// affichage sur LCD et sur terminal (UART)
if (value == 0x63636363){
LCD_Out(1, 1, " No response ");
LCD_Out(2, 1, "from the sensor ");
}
if (value == 0x58585858){
LCD_Cmd(LCD_CLEAR);
Delay_ms(25);
LCD_Out(1, 1, "Check sum error ");
}
if ((value != 0x63636363) && (value != 0x58585858)) {
Temp = value & 0xFFFF;
value = value >> 16;
RH = value & 0xFFFF;
LCD_Out(1, 1, " Temp.Amb : . C ");
LCD_Out(2, 1, " Humidite : . % ");
if (Temp > 0X8000)
{
LCD_Out(1, 10, "-");
Temp = Temp & 0X7FFF;
}
LCD_Chr(1, 13, 48 + ((Temp / 100) % 10));
LCD_Chr(1, 14, 48 + ((Temp / 10) % 10));
LCD_Chr(1, 16, 48 + (Temp % 10));
degreeChar(1, 18);
if (RH == 1000) LCD_Chr(2, 12, 48 + ((RH / 1000) % 10));
LCD_Chr(2, 13, 48 + ((RH / 100) % 10));
LCD_Chr(2, 14, 48 + ((RH / 10) % 10));
LCD_Chr(2, 16, 48 + (RH % 10));
}
// 01234567890123456789012345678901234567890
strConstRamCpy(txt,"Temp.Ambiante= . °C Humidite= . %\r\n");
WordToStr(Temp,CRam1);
k=strlen(CRam1);
*(txt+18)=*(CRam1+k-1) ;
*(txt+16)=*(CRam1+k-2);
*(txt+15)=*(CRam1+k-3);
UART1_Write(TAB);
WordToStr(RH,CRam1);
k=strlen(CRam1);
*(txt+37)=*(CRam1+k-1) ;
*(txt+35)=*(CRam1+k-2);
*(txt+34)=*(CRam1+k-3);
UART1_Write_Text(txt);
Delay_ms(1000);
Conversion fichier
Il manque une ligne au début #include <lcd.c> fichier à récupérer je ne sais où.gwion a écrit :Source du message Je viens d'essayer de compiler : 19 erreurs
La version avec MPLAB xc8, c'est pas un 16F84 mais le code change peu, surtout les lignes CONFIG à adapter. Le fichier LCD_Lib.c est bien présent lui. https://simple-circuit.com/mplab-xc8-dh ... 2-pic-mcu/
Conversion fichier
Conversion fichier
-
RETRAITE128

Amateur- Messages : 125
- Enregistré en : août 2021
Bonjour,
Merci à tous pour votre aide,
Je vous laisse mon adresse mail pour l'envoi du fichier.
Cordialement,
Alain
alain.eve8@orange.fr
Merci à tous pour votre aide,
Je vous laisse mon adresse mail pour l'envoi du fichier.
Cordialement,
Alain
alain.eve8@orange.fr
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités

