bonjour aidez-moi svp programmation pic 16f877
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

bonjour aidez-moi svp programmation pic 16f877



  1. #1
    dosmp

    bonjour aidez-moi svp programmation pic 16f877


    ------

    bonjour, je demande au expert de m'aider a finir mon mini-projet,
    le mini-projet consiste à automatiser une serre (greenhouse) mais ça concerne juste la température et l'humidité du sol.
    j'utilise MikroC pour programmer le PIC (16f877) et proteus pour simulation et réalisation de la PCB.
    voilà une description de l'automatisation:

    On suppose que le voltage est de 2.9V à 15°C et 3.2v à 18°C ils correspondent aux deux valeurs numériques de: 2.9*51=148 et 3.2*51=163.

    Donc mon programme doit contrôler AN0 lorsqu'elle est au-dessus de de 163 et au-dessous de 148.

    Concernant l'humidité du sol, on sait que sa résistance augmente lorsqu'il est mouillé et on va supposer qu'il va donner une lecture de 2.6V (dans AN1) =====> 2.6*51=133 on considère donc le sol est mouillé à ce voltage.

    voilà un description succincte de mon mini-projet, et voici mon programme en mikroC que j'ai écrit: (veuillez me le corrigerr SVP) et il me reste comment déclarer les dex variables (température & humidité) afin de les afficher sur un afficheur LCD.

    merci d'avance ^^

    Code:
    void main()  // programme principal
    {
    trisa=0;
    trisc=1;
    while (1)
     {
     if (porta.f0<148) // si la temmpératue est inférieure à 15°C
      {
      portc.f1=1; // alors on allume le chauffage
      }
      else if (148<porta.f0<163) // sinon, si la température est entre 15°C et 17°C
      {
      portc.f1=0; // alors on éteint le chauffage
      portc.f2=0; // et on laisse le ventilateur éteint
      }
      else if (porta.f0>163) // si la température est supérieur à 17°C
      {
      portc.f2=1; // alors on allume le ventilateur
      }
     if (porta.f1>133) // si la terre est sèche
      {
      portc.f2=1; // alors on ouvre l'électrovanne
      delay_ms(500); // pendant 5 seconde
      portc.f2=0; // et on la ferme
      delay_ms(500); // pendant 5 seconde
      }
     }
    }
    // Lcd pinout settings
    sbit LCD_RS at RB0_bit;
    sbit LCD_EN at RB1_bit;
    sbit LCD_D4 at RB2_bit;
    sbit LCD_D5 at RB3_bit;
    sbit LCD_D6 at RB4_bit;
    sbit LCD_D7 at RB5_bit;
    // Pin direction
    sbit LCD_RS_Direction at TRISB0_bit;
    sbit LCD_EN_Direction at TRISB1_bit;
    sbit LCD_D4_Direction at TRISB2_bit;
    sbit LCD_D5_Direction at TRISB3_bit;
    sbit LCD_D6_Direction at TRISB4_bit;
    sbit LCD_D7_Direction at TRISB5_bit;
    void affichage() // programme d'affichage
    {
    Lcd_Init();
    Lcd_Out(1, 1, "La température est:");
    Lcd_Out(2, 1, "Le taux d'humidité est:");
    Lcd_Cmd(_LCD_CURSOR_OFF);
    }
    
    :)

    -----
    Dernière modification par gienas ; 19/05/2013 à 20h45. Motif: Ajouté les balises code, obligatoires pour les programmes

  2. #2
    spown

    Re : bonjour aidez-moi svp programmation pic 16f877

    Bonjour/bonsoir et bienvenu sur FUTURA,

    remplace ça : else if (148<porta.f0<163)

    par
    Code:
    else if ((148<=porta.f0) && (porta.f0<=163))
    ( mais c'est quoi f0 ? )

    Pour les variables, Tu peux les déclarer comme " unsigned char " puis infecter les valeurs du buffer analogue. afin de les utilisées dans les conditions if.

  3. #3
    Gérard

    Re : bonjour aidez-moi svp programmation pic 16f877

    Pourquoi multiplier par 51 ?
    C'est quoi "porta.f0" ?
    Si tu dois lire une valeur analogique, tu dois configurer ADCONx

    delay_ms 500 ne correspond pas à 5s mais à 0,5s

Discussions similaires

  1. envoyer un signal binaire par un pic aidez moi svp
    Par invite08063aee dans le forum Électronique
    Réponses: 4
    Dernier message: 10/05/2012, 14h07
  2. svp aidez moi sur le pic 16f877
    Par invited30404a0 dans le forum Électronique
    Réponses: 2
    Dernier message: 27/09/2010, 22h45
  3. bonjour svp aidez moi a trouver la solution le plus vite possible
    Par invite09566485 dans le forum Biologie
    Réponses: 8
    Dernier message: 09/03/2006, 20h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...