Produire un son avec une PWM (langage C)
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Produire un son avec une PWM (langage C)



  1. #1
    gecko15

    Produire un son avec une PWM (langage C)


    ------

    Bonjour,

    J'aimerai produire une musique a l'aide d'une PWM, pour ca j'utilise un pic16F18877 et un buzzer seulement j'ai un programme sur MPLAB X qui compile bien mais qui ne marche pas je comprend pas pourquoi.

    Si quelqu'un a une solution pour moi ce serait vraiment gentil de sa part !

    Merci d'avance.programme_buzzer.txt

    -----

  2. #2
    JPL
    Responsable des forums

    Re : Produire un son avec une PWM (langage C)

    Les programmes doivent être inclus dans le texte des messages entourés par les balises [Code]...[/Code]
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    gecko15

    Re : Produire un son avec une PWM (langage C)

    Bonjour,

    Je n'ai pas compris votre message.

  4. #4
    JPL
    Responsable des forums

    Re : Produire un son avec une PWM (langage C)

    Ce que je veux dire c’est que ton programme ne doit pas être dans une pièce jointe, mais dans le message lui-même.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  5. A voir en vidéo sur Futura
  6. #5
    gecko15

    Re : Produire un son avec une PWM (langage C)

    Code:
    //PWM sur RC5
    //buzzer sur RA2
    
    #define FOSC 8000000L 
    
    #include <pic.h>
    #include <stdio.h>
    #include <htc.h>
    
    #ifndef _XTAL_FREQ
     #define _XTAL_FREQ FOSC	
    #endif
    
    
    
    // definition pour le paramétrage de la PWM
    #define TOSC_ns (1000000000ul / FOSC)
    #define PWM_PERIOD_us ((TOSC_ns * 4ul * TMR2_PRESCALE * PWM_MAX) / 1000ul)
    #define out RB4
    #define LED RC0   
    
    
    
    
    
    //*
    Déclaration des prototypes et variables
    //*
    void T2_init(void);
    static void interrupt isr(void);
    void DO(void);
    void DOp(void);
    void RE(void);
    void REp(void);
    void MI(void);
    void FA(void);
    void SOL(void);
    void LA(void);
    void SI(void);
    void SIb(void);
    void gamme(void);
    void ronde(void);
    void blanche(void);
    void noire(void);
    void croche(void);
    void Dcroche(void);
    void Qsoupir(void);
    void Dsoupir(void);
    void claire_de_lune(void);
    void tetris(void);
    void tetris1(void);
    void tetris2(void);
    void mario(void);
    
    
    int i;
    int j;
    int tempo=1;
    
    //*
     Programme principal
    //*
    
    void main(void)
    {
    
      	  OSCFRQ=0x70;         // 0x70 Select 8 MHz internal clock
       
          INTCON = 0x00;  // disable all interrupt sources
          T2CON  = 0x01;  // Turn off Timer2, prescale 1:4, postscale 1:1
          ADCON0 = 0x00;  // turn off ADC module
          ANSELD = 0x00;  // make all Analog pins I/O digital
          ANSELC = 0x00;  // make all Analog pins I/O digital
          ANSELB = 0x00;  // make all Analog pins I/O digital
          ANSELE = 0x00;  // make all Analog pins I/O digital
          ANSELA = 0x00;  // make all Analog pins I/O digital 
          CM1CON0 = 0x00; // Turn off comparator 1
          CM2CON0 = 0x00; // Turn off comparator 2
          PIE1 = 0x00;	//turn off peripheral interrupt
          PIE2 = 0x00;	//turn off peripheral interrupt
    
          
        /*  OPTION = 0b11011110;  // PORTB weak pull ups disabled
                                // Interrupt on rising edge of RB0/INT pin
                                // T0 internal clock source
                                // T0 clock edge high-to-low
                                // Prescaler assigned to WDT
                                // Prescale 1:64 for WDT*/
          
          // initialize my interrupt handlers
          T2_init();
          
          // turn on the interrupt system
          PEIE = 1;
          GIE  = 1;
          
    
    TRISB4=0;	//audio en sortie RA2
    TRISC0=0;	//LED en sorties RC0
    out=0;
    LED=0;
    i=0;
    
    
    //claire_de_lune();
    //fort_boyard();
    //mario();
    
    while(1)
    {
    	mario();
    
    /*	LED=~LED;
    	__delay_ms(200);
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2*/
    }
          
    }
      
    
     
    
    
    
    //*
    Timer2 initialisation de la PWM (T2 overflow)
    //*
    
      void T2_init(void)
      { 
        TMR2IE = 0;             // turn off TMR2 interrupt
        TRISC &= (0b11011110);  // make RC5 output for PWM and RC0 output
          
        TMR2 = 0;	//init de trm2
    
    	PR2 = 0b00110001 ;
    	T2CON = 0b00000100 ;
    	CCPR1L = 0b00011000 ;
    	CCP1CON = 0b00111100 ;
            
        TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
      }
          
    
    
    //*
     Interrupt vector starts here 
    //*
    
      static void interrupt isr(void)
      {
    		if (TMR2IF) // test if T2 interrupt is asserted
            {
    			i++;
    			if(i>3) {out=~out; i=0;}
             	TMR2IF = 0;  // reset T2 assertion
            }
     } 
    
    
    //*
     Definition des tempo de note 
    //*
    
    void ronde(void)
    {
    	for(j=0;j<=tempo;j++)	__delay_ms(1000);
    }
    
    void blanche(void)
    {
    	for(j=0;j<=tempo;j++)	__delay_ms(500);
    }
    
    void noire(void)
    {
    	for(j=0;j<=tempo;j++)	__delay_ms(250);
    }
    
    void croche(void)
    {
    	for(j=0;j<=tempo;j++)	__delay_ms(125);
    }
    
    void Dcroche(void)
    {
    	for(j=0;j<=tempo;j++)	__delay_ms(64);
    }
    
    //*
     Definition des tempo de silence 
    //*
    
    void Qsoupir(void)
    {
        TMR2ON = 0;   // turn on TMR2
        TMR2IE = 0;   // turn on TMR2 interrupt
    	for(j=0;j<=tempo;j++)	__delay_ms(64);
    }
    
    void Dsoupir(void)
    {
        TMR2ON = 0;   // turn on TMR2
        TMR2IE = 0;   // turn on TMR2 interrupt
    	for(j=0;j<=tempo;j++)	__delay_ms(125);
    }	
    
    void soupir(void)
    {
        TMR2ON = 0;   // turn on TMR2
        TMR2IE = 0;   // turn on TMR2 interrupt
    	for(j=0;j<=tempo;j++)	__delay_ms(250);
    }
    
    
    //*
    Definition de frequences de notes 
    //*
    
    
    
    
    void DO(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b10111110 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b01011111 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    void DOd(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b10110100 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b01011010 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    
    void DOp(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b00010111 ;
    	T2CON = 0b00000111 ;
    	CCPR1L = 0b00001011 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    void DOdp(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b01011001 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b00101100 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    void RE(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b10101001 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b01010100 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    void REp(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b01010100 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b00101010 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    void MI(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b00100101 ;
    	T2CON = 0b00000111 ;
    	CCPR1L = 0b00010010 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    void MIp(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b00010010 ;
    	T2CON = 0b00000111 ;
    	CCPR1L = 0b00001001 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    void FA(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b10001110 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b01000111 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    void FAp(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b00010001 ;
    	T2CON = 0b00000111 ;
    	CCPR1L = 0b00001000 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    
    void SOL(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b00011111 ;
    	T2CON = 0b00000111 ;
    	CCPR1L = 0b00001111 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    
    void LA(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b01110001 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b00111000 ;
    	CCP1CON = 0b00111100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    void SI(void)
    { 
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b01100100 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b00110010 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    void SIb(void)
    {
    	TMR2IE = 0;             // turn off TMR2 interrupt
    	TMR2 = 0;	//init de trm2
    
    	PR2 = 0b01101010 ;
    	T2CON = 0b00000101 ;
    	CCPR1L = 0b00110101 ;
    	CCP1CON = 0b00011100 ;
    	
    	TMR2ON = 1;   // turn on TMR2
        TMR2IE = 1;   // turn on TMR2 interrupt
    }
    
    
    
    void gamme(void)
    {
    	DO();
    	__delay_ms(300);
    	RE();
    	__delay_ms(300);
    	MI();
    	__delay_ms(300);
    	FA();
    	__delay_ms(300);
    	SOL();
    	__delay_ms(300);
    	LA();
    	__delay_ms(300);
    	SI();
    	__delay_ms(300);
    }
    
    
    
    
    void claire_de_lune(void)
    {
    DO(); noire(); DO(); noire(); DO(); noire(); RE(); noire(); MI(); blanche(); RE(); blanche();
    DO(); noire(); MI(); noire(); RE(); noire(); RE(); noire(); DO(); ronde();
    DO(); noire(); DO(); noire(); DO(); noire(); RE(); noire(); MI(); blanche(); RE(); blanche();
    DO(); noire(); MI(); noire(); RE(); noire(); RE(); noire(); DO(); ronde();
    }
    
    void tetris (void)
    {
    	tempo=0;
    	tetris1();
    	tetris1();
    	tetris2();
    }
    void tetris1(void)
    {
    //1iere ligne
    LA();	noire();
    MI();	croche();
    FA();	croche();
    SOL();	croche();
    LA();	Dcroche();
    SOL();	Dcroche();
    FA();	croche();
    MI();	croche();
    RE();	noire();
    RE();	croche();
    FA();	croche();
    LA();	noire();
    SOL();	croche();
    FA();	croche();
    MI();	noire();
    Dsoupir();
    FA();	croche();
    SOL();	noire();
    LA();	noire();
    
    //2ieme ligne
    FA();	noire();
    RE();	noire();
    RE();	noire();
    soupir();
    Dsoupir();
    SOL();	noire();
    SIb();	croche();
    REp();	noire();
    DOp();	croche();
    SIb();	croche();
    LA();	noire();
    Dsoupir();
    FA();	croche();
    LA();	croche();
    SIb();	Dcroche();
    LA();	Dcroche();
    SOL();	croche();
    FA();	croche();
    
    //3ième ligne
    MI();	noire();
    MI();	croche();
    FA();	croche();
    SOL();	noire();
    LA();	noire();
    FA();	noire();
    RE();	noire();
    RE();	noire();
    soupir();
    }
    
    void tetris2(void)
    {
    //fin 3ieme ligne
    LA();	blanche();
    FA();	blanche();
    SOL();	blanche();
    MI();	blanche();
    FA();	blanche();
    RE();	blanche();
    
    //4ieme ligne
    DOd();	blanche();
    MI();	noire();
    soupir();
    LA();	blanche();
    FA();	blanche();
    SOL();	blanche();
    MI();	blanche();
    FA();	noire();
    LA();	noire();
    REp();	blanche();
    DOdp();	blanche();
    soupir();
    soupir();
    
    //5ieme ligne
    LA();	noire();
    MI();	croche();
    FA();	croche();
    SOL();	croche();
    LA();	Dcroche();
    SOL();	Dcroche();
    FA();	croche();
    MI();	croche();
    RE();	noire();
    RE();	croche();
    FA();	croche();
    LA();	noire();
    SOL();	croche();
    FA();	croche();
    MI();	noire();
    Dsoupir();
    FA();	croche();
    SOL();	noire();
    LA();	noire();
    FA();	noire();
    RE();	noire();
    RE();	noire();
    soupir();
    
    //6ieme ligne
    Dsoupir();
    SOL(); noire();
    SIb();	croche();
    REp();	noire();
    DOp();	croche();
    SIb();	croche();
    LA();	noire();
    Dsoupir();
    FA();	croche();
    LA();	croche();
    SIb();	Dcroche();
    LA();	Dcroche();
    SOL();	croche();
    FA();	croche();
    
    //7ieme ligne
    MI();	noire();
    MI();	croche();
    FA();	croche();
    SOL();	noire();
    LA();	noire();
    FA();	noire();
    RE();	noire();
    RE();	noire();
    soupir();
    Dsoupir();
    SOL();	noire();
    SIb();	croche();
    REp();	noire();
    DOp();	croche();
    SIb();	croche();
    
    //8ième ligne
    LA();	noire();
    Dsoupir();
    FA();	croche();
    LA();	croche();
    SIb();	Dcroche();
    LA();	Dcroche();
    SOL();	croche();
    FA();	croche();
    MI();	noire();
    MI();	croche();
    FA();	croche();
    SOL();	noire();
    LA();	noire();
    RE();	noire();
    soupir();
    soupir();
    soupir();
    soupir();
    soupir();
    }
    
    
    
    void mario(void)
    {
    tempo=1;
    //1ier ligne
    LA();	Dcroche();
    LA();	Dcroche();
    Qsoupir();	
    LA();	Dcroche();
    Qsoupir();
    FA();	Dcroche();
    LA();	Dcroche();
    Qsoupir();
    DOp();	Dcroche();
    Qsoupir();
    Dsoupir();
    soupir();
    
    //2ieme ligne
    DOp();	Dcroche();
    Dsoupir();
    LA();	Dcroche();
    Dsoupir();
    FA();	Dcroche();
    Qsoupir();
    Dsoupir();
    SIb();	Dcroche();
    Qsoupir();
    DOp();	Dcroche();
    Qsoupir();
    SI();	Dcroche();
    SIb();	Dcroche();
    soupir();
    soupir();
    
    //3ième ligne
    DOp();	Dcroche();
    Dsoupir();
    LA();	Dcroche();
    Dsoupir();
    FA();	Dcroche();
    Qsoupir();
    Dsoupir();
    SIb();	Dcroche();
    Qsoupir();
    DOp();	Dcroche();
    Qsoupir();
    SI();	Dcroche();
    SIb();	Dcroche();
    soupir();
    soupir();
    
    //4ième ligne
    FAp();	Dcroche();
    Dsoupir();
    DOp();	Dcroche();
    Dsoupir();
    LA();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    Qsoupir();
    MIp();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    DOdp();	croche();
    Qsoupir();
    
    //5ieme ligne
    DOp();	Dcroche(); 
    LA();	Dcroche();
    DOp();	Dcroche();
    REp();	Dcroche();
    Qsoupir();
    Qsoupir();
    SIb();	Dcroche();
    DOp();	Dcroche();
    Qsoupir();
    LA();	Dcroche();
    Qsoupir();
    FA();	Dcroche();
    SOL();	Dcroche();
    MI();	croche();
    Qsoupir();
    
    //6ieme ligne
    FAp();	Dcroche();
    Dsoupir();
    DOp();	Dcroche();
    Dsoupir();
    LA();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    Qsoupir();
    MIp();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    DOdp();	croche();
    Qsoupir();
    
    //7ieme ligne
    DOp();	Dcroche(); 
    LA();	Dcroche();
    DOp();	Dcroche();
    REp();	Dcroche();
    Qsoupir();
    Qsoupir();
    SIb();	Dcroche();
    DOp();	Dcroche();
    Qsoupir();
    LA();	Dcroche();
    Qsoupir();
    FA();	Dcroche();
    SOL();	Dcroche();
    MI();	croche();
    Qsoupir();
    
    //8ieme ligne
    FA();	Dcroche();
    FA();	Dcroche();
    Qsoupir();
    FA();	croche();
    FA();	Dcroche();
    SOL();	croche();
    LA();	Dcroche();
    FA();	croche();
    RE();	Dcroche();
    DO();	Dcroche();
    Qsoupir();
    Dsoupir();
    
    //9ieme ligne
    FA();	Dcroche();
    FA();	Dcroche();
    Qsoupir();
    FA();	croche();
    FA();	Dcroche();
    SOL();	croche();
    LA();	Dcroche();
    Qsoupir();
    Dsoupir();
    soupir();
    
    //10ieme ligne
    FA();	Dcroche();
    FA();	Dcroche();
    Qsoupir();
    FA();	croche();
    FA();	Dcroche();
    SOL();	croche();
    LA();	Dcroche();
    FA();	croche();
    RE();	Dcroche();
    DO();	Dcroche();
    Qsoupir();
    Dsoupir();
    
    
    //11ieme ligne
    LA();	Dcroche();
    LA();	Dcroche();
    Qsoupir();
    LA();	croche();
    FA();	Dcroche();
    LA();	croche();
    DOp();	Dcroche();
    Qsoupir();
    Dsoupir();
    soupir();
    
    //12ieme ligne
    FAp();	Dcroche();
    Dsoupir();
    DOp();	Dcroche();
    Dsoupir();
    LA();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    Qsoupir();
    MIp();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    DOdp();	croche();
    Qsoupir();
    
    //13ieme ligne
    DOp();	Dcroche(); 
    LA();	Dcroche();
    DOp();	Dcroche();
    REp();	Dcroche();
    Qsoupir();
    Qsoupir();
    SIb();	Dcroche();
    DOp();	Dcroche();
    Qsoupir();
    LA();	Dcroche();
    Qsoupir();
    FA();	Dcroche();
    SOL();	Dcroche();
    MI();	croche();
    Qsoupir();
    
    //14iem
    FAp();	Dcroche();
    Dsoupir();
    DOp();	Dcroche();
    Dsoupir();
    LA();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    Qsoupir();
    MIp();	Dcroche();
    Qsoupir();
    REp();	Dcroche();
    DOdp();	croche();
    Qsoupir();
    
    //15ieme ligne
    DOp();	Dcroche(); 
    LA();	Dcroche();
    DOp();	Dcroche();
    REp();	Dcroche();
    Qsoupir();
    Qsoupir();
    SIb();	Dcroche();
    DOp();	Dcroche();
    Qsoupir();
    LA();	Dcroche();
    Qsoupir();
    FA();	Dcroche();
    SOL();	Dcroche();
    MI();	croche();
    Qsoupir();
    
    //16ieme
    FA();	Dcroche();
    FA();	Dcroche();
    Qsoupir();
    FA();	Dcroche();
    soupir();
    soupir();
    soupir();
    soupir();
    
    }
    programme_buzzer.txt
    Dernière modification par JPL ; 28/11/2021 à 22h33. Motif: ajout de la balise Code (#) pour garder l’indentation

  7. #6
    gecko15

    Re : Produire un son avec une PWM (langage C)

    Je ne sais pas si c'est ce que vous vouliez dire mais voici le programme dans le message du dessus.

  8. #7
    JPL
    Responsable des forums

    Re : Produire un son avec une PWM (langage C)

    Tu n’avais pas mis les balises Code.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  9. #8
    umfred

    Re : Produire un son avec une PWM (langage C)

    déjà tester une seule note en continu (par exemple le LA qui doit sortir du 440Hz) et vérifier que tu as bien le bon signal en sortie de ton pic (port C5 = sortie PWM et port B4, ton out).
    (mais bon en principe les notes sont sinusoïdales, pas en signal carré)

Discussions similaires

  1. produire du 5V avec le max1703
    Par Raphael2 dans le forum Électronique
    Réponses: 7
    Dernier message: 10/12/2013, 07h03
  2. Produire du 5v avec aimant
    Par invitec322720a dans le forum Physique
    Réponses: 8
    Dernier message: 15/02/2013, 16h49
  3. Produire hydrogene avec H2O
    Par hiliter1 dans le forum Chimie
    Réponses: 3
    Dernier message: 27/05/2009, 13h58
  4. produire 12 V avec panneau 24 V ?
    Par invite1695c2ce dans le forum Électronique
    Réponses: 7
    Dernier message: 21/11/2008, 23h26
  5. Produire de l'énergie avec un pet ?
    Par ananda dans le forum Physique
    Réponses: 5
    Dernier message: 24/08/2007, 19h00