Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

allumer et eteindre une led avec un timer



  1. #1
    Bamsmike68

    allumer et eteindre une led avec un timer


    ------

    Bonjour,
    Je suis débutant en programmation. Mon programme consiste a allumer et éteindre une led selon un capteur de luminosite (LDR).
    Je cherche une solution pour pouvoir allumer et éteindre une led avec délais de 9s pour chaque changement d'état.
    Mon problème c'est que je souhaite le réaliser avec un timer au lieu d'un delay_ms. Quand j'exécute le programme la led fait du tout tout-rien au lieu d'attendre 9s pour passer d'un état a l'autre.
    Y aurait-il une âme charitable pour venir à mon aide svp

    Voila mon programme:
    Code:
    #include<18F4580.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
    #include <LCD_v3.c>
    unsigned char valeur;
    unsigned int valmax = 90;  seuil de luminosité
    unsigned int valmin=20;  deuxième seuil de luminosité  
    unsigned int nb_timer; 
    float tension;
    
    #int_timer0
    tmr0()
    {
        nb_timer++;
        if (nb_timer==3) //  pour obtenir nos 10s (3*3)
        {
          
           nb_timer=0;
        }
       set_timer0(6942); calcule valeur pour un période 3s 
    }
    
    
    void main() {
        
        enable_interrupts(INT_TIMER0);                                  //
        enable_interrupts(GLOBAL) ;                                       //
        setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);        // Configuration de mon timer 
        set_timer0(6942);                                                     //
    
        while(TRUE)                                                              //
        setup_adc(ADC_CLOCK_DIV_64);                               //  Convertisseur analogique
        setup_adc_ports(AN0);
        lcd_init();                                                                   
        {
            set_adc_channel(0);
            valeur=read_adc();
            tension = (valeur/51.);
            lcd_gotoxy(2,1);
            printf(lcd_putc,"Tension=%f",tension);
            delay_ms(1000);
    
            if (valeur>= valmax)
            {
                lcd_putc("\f");
                lcd_gotoxy(2,1);
                printf(lcd_putc,"valeur=%u",valeur);
                lcd_gotoxy(2,2);
                printf(lcd_putc,"Phare eteint");
                delay_ms(2000);
                output_low(PIN_D7);
            }
            if (valeur<=valmin)
            {
                lcd_putc("\f");
                lcd_gotoxy(2,1);
                printf(lcd_putc,"valeur=%u",valeur);
                lcd_gotoxy(2,2);
                printf(lcd_putc,"Phare allume");
                delay_ms(2000);
                output_high(PIN_D7);
            }
        }
    }

    -----
    Dernière modification par Antoane ; 22/12/2017 à 16h11. Motif: Ajout des balises Code

Discussions similaires

  1. Réponses: 18
    Dernier message: 03/11/2016, 09h10
  2. [Autre] [débutant] allumer/éteindre une led avec un bouton poussoir
    Par dorian09 dans le forum Électronique
    Réponses: 15
    Dernier message: 20/06/2016, 08h37
  3. Petite minuterie avec relais allumer/éteindre en boucle ?
    Par qcastl32 dans le forum Électronique
    Réponses: 5
    Dernier message: 10/10/2015, 15h29
  4. Allumer / Eteindre une LED avec Arduino
    Par moha698 dans le forum Électronique
    Réponses: 2
    Dernier message: 02/04/2014, 19h39
  5. Allumer et éteindre une lampe avec un seul bouton
    Par jima12 dans le forum Électronique
    Réponses: 15
    Dernier message: 30/01/2012, 15h00
Découvrez nos comparatifs produits sur l'informatique et les technologies.