segunda-feira, 27 de setembro de 2010

Segundo TESTE

 Nesse teste continuamos com os leds só que implementamos um modulo bluetooth que converte a entrada serial em cmunicação bluetooth. Com isso é possivel o envio das infromações para um computador.

#include "main.h"
//#device <16F877a.h>
//#device ADC=10
#include <math.h>
#include <string.h>
#include <stdio.h>
//#FUSES NOWDT, XT, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
//#use delay(clock=4000000)
#int_AD
void  AD_isr(void)
{

}

//#include"C:\Documents and Settings\Euclerio\Meus documentos\teste\main.h"

void main()
{
   float vx;
   float vy;
   float vz;
   long int x;
   long int y;
   long int z;
 
   setup_adc_ports(AN0_AN1_AN2_AN3_AN4);//Setando as portas analógicas do MCU.
   setup_adc_ports(ANALOG_RA3_REF); //Setando as portas analógicas do MCU.
   //setup_adc_ports( AN0_AN1_AN4_VREF_VREF );//Setando as portas analógicas do MCU.
   setup_adc(ADC_CLOCK_DIV_32 );
   //setup_adc(ADC_CLOCK_INTERNAL ); //Setando clock interno para uso com o ADC
   delay_ms(1000); //Pausa de 1 segundo
  
   //indica que está ligado
   output_bit(PIN_B3, 1);  
   //ao iniciar
   output_bit(PIN_D3, 1);
   delay_ms(500);
   output_bit(PIN_D2, 1);
   delay_ms(500);
   output_bit(PIN_C5, 1);
   delay_ms(500);
   output_bit(PIN_C4, 1);
   delay_ms(500);
   output_bit(PIN_D4, 1);
   delay_ms(500);
   output_bit(PIN_C7, 1);
   delay_ms(500);
  
   output_bit(PIN_D3, 0);
   delay_ms(500);
   output_bit(PIN_D2, 0);
   delay_ms(500);
   output_bit(PIN_C5, 0);
   delay_ms(500);
   output_bit(PIN_C4, 0);
   delay_ms(500);
   output_bit(PIN_D4, 0);
   delay_ms(500);
   output_bit(PIN_C7, 0);
   delay_ms(500);
   //fim
  
   //mandar valor alto para sleep
   output_bit(PIN_D5, 1);
   //selecionar sensibilidade
   output_bit(PIN_D7, 0);
   output_bit(PIN_D6, 0);
  
    /*
         
          channel 0  EIXO x          +g D3  -g D2
          channel 1  EIXO y          +g C5  -g C4
          channel 4  EIXO z          +g D4  -g C7
          sleep   D5
          select1 D7
          select2 D6
         
          */ 
  
   while(true){
  
                 
            //LENDO EIXO X
          x=0;
          set_adc_channel(0); 
          delay_ms(1);
          x=read_adc();
         
         
          if(x>=745){
                        output_bit(PIN_D3, 1);
                        delay_ms(2000);
                        output_bit(PIN_D3, 0);
          }
          if(x<=292){
                        output_bit(PIN_D2, 1);
                        delay_ms(2000);
                        output_bit(PIN_D2, 0);
          }
          delay_ms(1);
         
          //LENDO EIXO Y
          y=0;
          set_adc_channel(1); 
          delay_ms(1);
          y=read_adc();
         
          if(y>=745){
                        output_bit(PIN_C5, 1);
                        delay_ms(2000);
                        output_bit(PIN_C4, 0);
          }
          if(y<=292){
                        output_bit(PIN_C5, 1);
                        delay_ms(2000);
                        output_bit(PIN_C4, 0);
          }
         
          //LENDO EIXO Z
          delay_ms(1);
                       
          z=0;
          set_adc_channel(2); 
          delay_ms(1);
          z=read_adc();
         
          if(z>=745){
                        output_bit(PIN_D4, 1);
                        delay_ms(2000);
                        output_bit(PIN_D4, 0);
          }
           if(z<=292){
                        output_bit(PIN_C7, 1);
                        delay_ms(2000);
                        output_bit(PIN_C7, 0);
          }
        
          delay_ms(1);
  
    
      //Converte o valor lido em voltz
     
      vx=((((x)*3.36)/1023)-0.06);
      vy=(((y)*3.36)/1023);
      vz=(((z)*3.36)/1023);
     
      //Enviar via Bluetooth
          //valor
          //printf ("\n X = %ld   \t", x );
          //printf ("\t Y = %ld   \t", y );
         // printf ("\t Z = %ld   \n", z );
          //volt
         
          printf ("\n X = %f V | Y = %f V | Z = %f V \n", vx,vy,vz );
          printf("\n");
          printf("\t");
          printf("\n");
          //printf ("\t Y = %f V  \t", vy );
          //printf ("\t Z = %f V    ", vz );
         
   }//fecha o while
}
  

Nenhum comentário:

Postar um comentário