Mini projet Contrôle de température à base PIC16F877

< Sujet précédent  Sujet suivant >
Index du Forum -> Forum des Projets fin d'études, mini-projets et des réalisations electroniques -> Mini-projets
AuteurMessage
Tunisia.png Che AhMeD
Newbie



Messages : 7
Inscrit(e) le: 25/01/2010
Posté le 06/02/2010 20:50  
1265485802.rar (24 Ko)
Mini projet Contrôle de température à base PIC16F877
Salam

Je suis un étudiant en électronique et j'ai comme mini-projet à réliser une carte de contrôle de température

Cahier de charge :
Le PIC16F877 lue la valeur actuelle de la température à l'aide d'un thermocouple puis commande la vitesse d'un moteur CC (VAN) selon une consigne enregistrée à l'eeprom du PIC.


Montage :





Programme :


Code :

//----------------------------------------------------------------------------| //****************************************************************************| //****************** procedure de commande de rotation du moteur *************| //********************** courant continu dans les deux sens ******************| //*********************** + commande variation de vitesse ********************| //*************************** PROGRAMME en C ( CCS ) *************************| //*********************** Réalisé par : Chehaibi Ahmed ***********************| //********************* Mastère Pro ISSAT Kairouan 2010 **********************| //----------------------------------------------------------------------------| //----------------------------------------------------------------------------| //******************* Paramétrage du PIC (Initialisation) ********************| //----------------------------------------------------------------------------| #include <16F876.h> #device adc=8 #use delay(clock=4000000) #fuses NOWDT,XT, NOPUT, NOPROTECT, BROWNOUT, LVP, NOCPD, NOWRT, NODEBUG #include <LCDB.C> //j'ai modifié le LCD.C original afin de le brocher sur le portb //allez dans LCD.C et cherchez ces deux lignes : // Un-comment the following define to use port B // #define use_portb_lcd TRUE //uncommenter la deuxiéme ligne (enlevez les //) #define Bouton1 PIN_C3 #define Bouton2 PIN_C4 //----------------------------------------------------------------------------| //********************** Procédure de conversion en % ************************| //----------------------------------------------------------------------------| void convert_to_pourcent( long int data, char volts[6]) { BYTE i; long int temp,div; div=1000; for(i=0;i<=2;i++) { temp=data/div; volts=(BYTE)temp+'0'; temp=div*(BYTE)temp; data=data-temp; div=div/10; } } //----------------------------------------------------------------------------| //******************* Procédure d'affichage de la vitesse ********************| //----------------------------------------------------------------------------| void display_data( long int data ) { char volt_string[6]; convert_to_pourcent( data, volt_string ); printf(lcd_putc,volt_string); lcd_putc(" % "); } //----------------------------------------------------------------------------| //**************************** Programme Initiale ****************************| //----------------------------------------------------------------------------| void main() {byte s,a; long int r; r=500;a=1; // r est nombre de tour du moteur output_c(0xF8); set_tris_c(0xF8); // définition des entrées sorties portC setup_adc_ports(NO_ANALOGS); //Pas besoin des entrées analogiques setup_adc(ADC_OFF); // Pas besoin du CAN sinon setup_adc(ADC_ON) setup_spi(FALSE); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); //Initialisation du Timer1 setup_timer_2(T2_DIV_BY_16, 127, 1); //Initialisation du Timer2 lcd_init(); //Initialisation du LCD //------------------------------ Choix du sens ------------------------------| do { lcd_gotoxy(1,1); printf(lcd_putc,"Choix du sens:"); //Demande du choix du sens if (input(bouton1) ==0) { s=1; lcd_gotoxy(7,2);a=0; printf(lcd_putc,"sens avant");delay_ms(500);} //Si le pin C3 est à 1 (Bouton1 à 0) démarrer le sens avant if (input(bouton2) ==0) { s=0;lcd_gotoxy(7,2);a=0; printf(lcd_putc,"sens ariere");delay_ms(500);} //Si le pin C4 est à 1 (Bouton2 à 0) démarrer le sens arriére } while (a==1); //---------------------------- génération des MLI ---------------------------| //----------------------- et affichage du pourcentage -----------------------| do{ if (s==1) {setup_ccp1(CCP_PWM);set_pwm1_duty(r);lcd_gotoxy(1,2);display_data(r);} if (s==0) {setup_ccp2(CCP_PWM);set_pwm2_duty(r);lcd_gotoxy(1,2);display_data(r);} if (input(bouton1) ==0) { r=r+10;lcd_gotoxy(1,2);display_data(r);delay_ms(50);} if (input(bouton2) ==0) { r=r-10;lcd_gotoxy(1,2);display_data(r);delay_ms(50);} if (r> 1000 ) {r=0;} } while (true); } //----------------------------------------------------------------------------| //************************************* FIN **********************************| //----------------------------------------------------------------------------|



J'ai un probléme dans le programme mais j'arrive pas à le connaitre
j'ai besoin de vos aides.

Et merci d'avance



Cordialement CheAhMeD

Revenir en haut | Permalien
Tunisia.png Che AhMeD
Newbie



Messages : 7
Inscrit(e) le: 25/01/2010
Posté le 10/02/2010 20:30  
RE : Mini projet Contrôle de température à base PIC16F877
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres ...

Revenir en haut | Permalien

Haut de page

© 2019 Technologue pro, cours électricité électronique informatique · © 2007 - 2019 Technologue pro - Ressources pédagogiques pour l'enseignement technologique en Tunisie
Usage dans un cadre strictement académique

Technologue: cours en ligne gratuit en électricité, électronique, informatique industrielle et mécanique pour l'enseignement technologique en Tunisie et offre des cours en ligne en génie électrique, informatique, mécanique, une base de données de TP, projets fin d'études et un annuaire de ressources pédagogiques
Licence - Sitemap - Qui somme nous ? - confidentialité- Tunisie Index
J'accepte
Ce site web utilise des cookies. Nous utilisons des cookies pour vous offrir la meilleure expérience sur notre site Web. Plus d'infos