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