begin process at 2008 09 06 09:10:06
1 237 663 membres
60 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ecrire un programme qui gerer un signal MLI pr¨¦-calcul¨¦e dont en annule ou on diminue de certain harmonique de rang bas. [ Divers / Aide et documentation ] (7000)

ecrire un programme qui gerer un signal MLI pr¨¦-calcul¨¦e dont en annule ou on diminue de certain harmonique de rang bas. le 29/05/2008 17:18:35

7000

je suis un etudiant , je suis entrain de preparer monj projet de fin d'etude (onduleur monophas¨¦ ), le probleme c'est que je suis debutant pour la programmation des pics et je me demande l'aide pour cr¨¦es se programme .
le probleme c : avoir un signal MLI(PWM) en eleminat certain angles harmoniques a partir du developpemnt de fourier pour un pic 16f877 ou 16f876.
par exeple dans ce cas-ci on dispose de quatre angles (et dans ce cas on ne cherche plus ¨¤ construire la MLI par voie analogique ). on peut choisir la desparition des de la serie de fourier par resolution de:

1+2cos3¦Á2+2cos3¦Á4-2cos3¦Á1 -2cos3¦Á5 =0

1+2cos5¦Á2+2cos5¦Á4-2cos5¦Á1 -2cos5¦Á5=0

1+2cos7¦Á2+2cos7¦Á4-2cos7¦Á1 -2cos7¦Á5=0
1+2cos11¦Á2+2cos11¦Á4-2cos11¦Á1 -2cos11¦Á5=0

 Cette r¨¦solution ne peut ¨ºtre men¨¦e que par voie num¨¦rique ¨¤ l¡¯aide de cale ¨¦limine les harmoniques 3, 5, 7,11.
comment je peut introduire l'elimination de c'est angle dans ce programme est l'affich¨¦ sur un afficheur LCD.
le cercuit utiliser est un pic 16f877 ou bien 16f876 .
voici le programme:*********************************************************************

#include "f:\program.h"
#include <LCD.C>
#define Bouton1 PIN_C3
#define BOUTON2 PIN_C4


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[i]=(BYTE)temp+'0';
     temp=div*(BYTE)temp;
     data=data-temp;
     div=div/10;
                     }

}

void display_data( long int data ) {
     char volt_string[6];
     convert_to_pourcent( data, volt_string );
     printf(lcd_putc,volt_string);
     lcd_putc(" % ");
}
void main()
{byte s,a;
long int r;
   r=500;a=1;
   output_c(0xF8);
   set_tris_c(0xF8);
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
  // setup_spi(FALSE);
  // setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_2(T2_DIV_BY_1, 250, 1);
   lcd_init();

  lcd_gotoxy(1,1);
  printf(lcd_putc,"demarrage");

   s=1; lcd_gotoxy(7,2);a=0;
   printf(lcd_putc,"sens avant");delay_ms(500);

   do{
   {setup_ccp1(CCP_PWM);set_pwm1_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);
**************************************************************
et je vous remerciez infeniment pour votre aide.



Classé sous : data, setup, temp, div, lcd

Participer à cet échange

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS