disturbance detection from a signal using microcontroller

Status
Not open for further replies.

aswathymohan

Member level 4
Joined
Nov 11, 2012
Messages
68
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,288
Visit site
Activity points
1,727
hi

I want to calculate the duration of a disturbance signal,what i have done so far,i coded the program for adc interfacing with pic16f877a,capture all the samples and stored it in a text file.

for disturbance detection,i used wavelet decomposition in matlab,simulated the disturbance and reference signal there and from there i calculated the duration.My plan is to import the parameters from text file to matlab,there by do the procedure which i have done for simulation.


But i m not getting the samples correctly,each time,the samples should be diffrent,how to fix the issue,
pl hlp,
 

do you read the same value all time from the ADC?
is the input signal in a valid range for the ADC?
Have you checked it with an oscilloscope?

it could be you have not configured the ADC correctly - post your code?
 

do you read the same value all time from the ADC?
is the input signal in a valid range for the ADC?
Have you checked it with an oscilloscope?

it could be you have not configured the ADC correctly - post your code?


I have done the coding in mikroc,and after that i run hyperterminal,thereby captured the values.My signal is 230V 50Hz and i m using pic16f877a adc 10bit delay of 10ms

Code:
//      POWER QUALITY MONITORING SYSTEM
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

char txt1[] = "DISRURBANCE";
char txt2[] = "DETECTION";

                            // Loop variable


float val,val1;//Declare the adcvalue stored variables
char uart_rd[50],uart_rd1[50];

void rmsv();
void adc_uart();//adc read and uart write
void main()
{
    TRISA=0XFF;//porta as input
    // ADCON1=0X81;
     UART1_Init(9600);               // Initialize UART module at 9600 bps
     //ADC_Init();
  Lcd_Init();                        // Initialize LCD

  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
  Lcd_Out(1,1,txt1);                 // Write text in first row
  Lcd_Out(2,1,txt2);                 // Write text in first row

    while(1)
    {

           val= ADC_Read(0);
       val1=(val*318.0)/1023.0;
        FloatToStr(val1,uart_rd1);
       strncpy(uart_rd,uart_rd1,6);
       UART1_Write_Text(uart_rd1);

       //UART1_Write(10);
      UART1_Write(13);
      delay_ms(5);
    }

 }
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…