Voltage divider i merenje napona na PIC-u
Moderators: pedja089, stojke369, [eDo], trax
Voltage divider i merenje napona na PIC-u
Pozdrav društvo. Treba mi šema za merenje napona na ADC PIC reda veličina 0-300v DC. Radi se o merenju napona izlaza sa plazma aparata za sečenje. Trebao bi neki voltage divider, koje vrednosti otpornika najbolje izabrati? Izlazi sa plazme se kreću do 300V DC. Da li treba jos nesto, sta vi predlažete?
- Attachments
-
- VoltageDevider_copy_400x228.png (28.61 KiB) Viewed 9134 times
-
- 20210430_071910_copy_400x316.jpg (36.04 KiB) Viewed 9135 times
-
- Voltage_divider.png (21.2 KiB) Viewed 9136 times
Re: Voltage divider i merenje napona na PIC-u
10K i 660K. To ti daje 5V na izlazu za ulaz od 335V.
660K napravis od 2 otpornika 330R, i to 1 ili 2W. Ova snaga nije potrebna zbog disipacije, nego je potrebna zbog napona na otporniku. Da nozice otpornika fizicki budu dalje jedna od druge.
Mogao bi i 680K, recimo 5W. Ali ja sam uvek za varijantu od 2 komada da sastavis.
Zener bi ti trebala verovatno 5V7, da smanjis curenje kroz nju. Ne znam da li je na plazmi AC ili DC, pa mozda ce ti trebati jedna dioda na ulazu. Taj pad napona od 0.7V slobodno mozes zanemariti.
Kondezatori 100nF i 10nF obavezno. U zavisnosti od potrebne brzine odziva, ako ima mesta mozda i neki tantal 1uF ili tako nesto. I ne bi bilo lose staviti koju feritnu perlicu izmedju kondezatora i razdelnika.
I ono sta ostaje kao potencijalni problem i to moras proveriti je napon za start plazme. Koliko znam(a ne znam) plazme imaju visoki napon za start. Tipa par impulsa od 5KV.
Ako je ovo slucaj ti bi napon morao da pokupis pre tog transformatora.
660K napravis od 2 otpornika 330R, i to 1 ili 2W. Ova snaga nije potrebna zbog disipacije, nego je potrebna zbog napona na otporniku. Da nozice otpornika fizicki budu dalje jedna od druge.
Mogao bi i 680K, recimo 5W. Ali ja sam uvek za varijantu od 2 komada da sastavis.
Zener bi ti trebala verovatno 5V7, da smanjis curenje kroz nju. Ne znam da li je na plazmi AC ili DC, pa mozda ce ti trebati jedna dioda na ulazu. Taj pad napona od 0.7V slobodno mozes zanemariti.
Kondezatori 100nF i 10nF obavezno. U zavisnosti od potrebne brzine odziva, ako ima mesta mozda i neki tantal 1uF ili tako nesto. I ne bi bilo lose staviti koju feritnu perlicu izmedju kondezatora i razdelnika.
I ono sta ostaje kao potencijalni problem i to moras proveriti je napon za start plazme. Koliko znam(a ne znam) plazme imaju visoki napon za start. Tipa par impulsa od 5KV.
Ako je ovo slucaj ti bi napon morao da pokupis pre tog transformatora.
Re: Voltage divider i merenje napona na PIC-u
Plazma nema HF start, nego novija tehnologija tzv.kapacitivno praznjenje unutar primarnog kola, DC napon je u pitanju, operativno radi na 120-160v, napon otvorenog kola je 300-315v po specifikacijama....
Znaci 2x 330k 1-2w i 10k isto 1-2w za razdelnik napona. Koji tip z diode da ubacim od 5.7v, kao i koju,feritnu perlicu i gde tačno ubaciti?
Znaci 2x 330k 1-2w i 10k isto 1-2w za razdelnik napona. Koji tip z diode da ubacim od 5.7v, kao i koju,feritnu perlicu i gde tačno ubaciti?
Re: Voltage divider i merenje napona na PIC-u
Ferit koji god da nadjes, ide ti izmedju razdelnika(spoj 10K i 330K) i ovih kondezatora do pica.
U sustini nece mnogo da promeni stvar, a nije na odmet da bude tu.
A ovo nisam skontao za tip zenerke. Ako mislis dal obicna zener, ili TVS, il sta vec. Ne igra neku veliku ulogu. Vidi da joj je struja curenja mala. Da ti ne kvari merenje.
Naravno opet moras dobro paznju obratiti na izvodjenje mase, da ne pravis one petlje, da ti ne resetuju pic, itd...
U sustini nece mnogo da promeni stvar, a nije na odmet da bude tu.
A ovo nisam skontao za tip zenerke. Ako mislis dal obicna zener, ili TVS, il sta vec. Ne igra neku veliku ulogu. Vidi da joj je struja curenja mala. Da ti ne kvari merenje.
Naravno opet moras dobro paznju obratiti na izvodjenje mase, da ne pravis one petlje, da ti ne resetuju pic, itd...
Re: Voltage divider i merenje napona na PIC-u
E da, da li je bolje 7 segmentni display ili lcd. Da mi plazma ne resetuje jos i LCD
Re: Voltage divider i merenje napona na PIC-u
Sam si dao odgovor...
Re: Voltage divider i merenje napona na PIC-u
Kako bi ovo izgledalo u PicBasicu? Da li neko zna? Na sajtu je u MPAB XC8 Code i u MikroC Code
https://microcontrollerslab.com/digital ... roller/amp
Code: Select all
#include <xc.h>
#define _XTAL_FREQ 20000000 //define crystal frequency to 20MHz
#define digit1 PORTBbits.RB0
#define digit2 PORTBbits.RB1
#define digit3 PORTBbits.RB2
#define digit4 PORTBbits.RB3
// This array stores binary bit pattern that will be send to PORTD
unsigned char binary_pattern[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char display1[10]= {0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xE7}; // with dp turn on
unsigned int a1,a2,a3,a4;
unsigned int counter = 0;
int adc_value; //store output value from Analog Read functoion
unsigned int number;
long tlong;
unsigned int voltage;
void Analog_setting(){
ADCON0 = 0x81;
ADCON1 = 0x02;
}
unsigned int Analog_read(unsigned char channel){
int aadc,bbdc, ccdc;
if(channel>7)return 0;
ADCON0 = ADCON0 & 0xC5;
ADCON0 = ADCON0 | (channel << 3);
__delay_ms(2);
ADCON0bits.GO_DONE = 1;
while(ADCON0bits.GO_DONE);
aadc = ADRESH;
aadc = aadc<<2;
bbdc = ADRESL;
bbdc = bbdc >>6;
ccdc = aadc|bbdc;
return ccdc;
}
void main(void)
{
Analog_setting();
TRISD = 0x00; //define PORTD as a output pin
PORTD=0X00; // initialize PORTD pins to active low
TRISB=0X00;
digit1 = 1;
digit2 = 1;
digit3 = 1;
digit4 = 1;
while(1)
{
adc_value = Analog_read(0); // read data from channel 0
tlong = (float)adc_value*0.488768555;
voltage = tlong;
a1 = voltage / 1000; // holds 1000's digit
a2 = ((voltage/100)%10); // holds 100's digit
a3 = ((voltage/10)%10); // holds 10th digit
a4 = (voltage%10); // holds unit digit value
PORTD=binary_pattern[a2]; // send 1000's place data to fourth digit
digit1=0; // turn on forth display unit
__delay_ms(3);
digit1=1; // turn off forth display unit
PORTD=display1[a3]; // send 100's place data to 3rd digit
digit2=0; // turn on 3rd display unit
__delay_ms(3);
digit2=1; // turn off 3rd display unit
PORTD=binary_pattern[a4]; // send 10th place data to 2nd digit
digit3 = 0; // turn on 2nd display unit
__delay_ms(3);
digit3 = 1; // turn off 2nd display unit
PORTD=binary_pattern[a1]; // send unit place data to 1st digit
digit4 = 0; // turn on 1st display unit
__delay_ms(3);
digit4 = 1; // turn off 1st display unit
}
return ;
}
Re: Voltage divider i merenje napona na PIC-u
Ovaj kod, ali prikaz na 7 segmetnom displeju:
Code: Select all
' Name : VMETERX.pbp
' Compiler : PICBASIC PRO Compiler 2.6
' Assembler : PM or MPASM
' Target PIC : 40-pin 16F877 or similar
' Hardware : LAB-X1 Experimenter Board
' Oscillator : 4MHz external
' Keywords : ADCIN, LCDOUT
' Description : PICBASIC PRO program to measure voltage (0-5VDC)
' and display on LCD with 2 decimal places.
'
' This program uses the */ operator to scale the ADC result from 0-1023
' to 0-500. The */ performs a divide by 256 automatically, allowing math
' which would normally exceed the limit of a word variable.
' Connect analog input to channel-0 (RA0)
' Define LOADER_USED to allow use of the boot loader.
' This will not affect normal program operation.
Define LOADER_USED 1
' Define LCD registers and bits
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
' Define ADCIN parameters
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
adval Var Word ' Create adval to store result
TRISA = %11111111 ' Set PORTA to all input
ADCON1 = %10000010 ' Set PORTA analog and right justify result
Low PORTE.2 ' LCD R/W line low (W)
Pause 500 ' Wait .5 second
mainloop:
Adcin 0, adval ' Read channel 0 to adval (0-1023)
adval = (adval */ 500)>>2 ' Equates to: (adval * 500)/1024
LCDOut $fe, 1 ' Clear LCD
LCDOut "DC Volts= ",DEC (adval/100),".", DEC2 adval ' Display the decimal value
Pause 100 ' Wait .1 second
Goto mainloop ' Do it forever
End
Re: Voltage divider i merenje napona na PIC-u
Treba u prve 2 teme u ovoj sekciji da ima objasnjeni primeri sa 7 seg LCD...
Re: Voltage divider i merenje napona na PIC-u
Za razdelnik napona ulaz 0-10v , izlaz prema Picu 0-5v koje otpornike staviti 100k i 100k 1/4w?
Re: Voltage divider i merenje napona na PIC-u
Ne. Impedansa koju pic "vidi" treba da je ispod 10K. Ako se dobro secam.
Tako da mozes uzeti 2 komada od 10K, pa pic "vidi" 5K, sto je sasvim ok...
Tako da mozes uzeti 2 komada od 10K, pa pic "vidi" 5K, sto je sasvim ok...
Re: Voltage divider i merenje napona na PIC-u
Hvala, ako nesto zapne, javim se
Re: Voltage divider i merenje napona na PIC-u
Kako da mi racuna, tj prikazuje priblizno 0-300V recimo, ili 315v, 350v ...?
Code: Select all
adval Var Word ' Create adval to store result
TRISA = %11111111 ' Set PORTA to all input
Low PORTA.6 ' LCD R/W line low (W)
Pause 500 ' Wait .5 second
mainloop:
Adcin 2, adval ' Read channel 0 to adval (0-1023)
adval = (adval */ 500)>>2 ' Equates to: (adval * 500)/1024
Pause 100 ' Wait .1 second
LCDOut $FE, $80, "DC Volts= ",DEC (adval/100),".", DEC2 adval ' Display the decimal value
Goto mainloop ' Do it forever
End
Re: Voltage divider i merenje napona na PIC-u
Poigraj se malo sa matematikom...
Npr
adval = adval *10 '0-10240
adval = adval /32 '0-320
Konkretni brojevi zavise od upotrebljenog razdelnika.
Npr
adval = adval *10 '0-10240
adval = adval /32 '0-320
Konkretni brojevi zavise od upotrebljenog razdelnika.
Re: Voltage divider i merenje napona na PIC-u
Slično sam i uradio, ali mi na displeju ludeo prikaz kada sam simulirao potenciometrom, pogotovo kad brzo menja vrednosti
Rešio sam tako što sam napisao
LCDOut $FE, $80, "DC Volts= ",DEC3... umesto DEC
Rešio sam tako što sam napisao
LCDOut $FE, $80, "DC Volts= ",DEC3... umesto DEC
Re: Voltage divider i merenje napona na PIC-u
Super. Bitno da je reseno.