Op 19 februari 2010 19:08:21 schreef shiptronic:
en via de parpoort sturen ;) Tja, maar dat is ook kopen en niets zelf maken .

Nee, via de seriele poort. En er staat een link naar het schema en de code, dus je kan het zelf nabouwen. Dat ding van mij kopen is voor mensen die niet zelf willen solderen. Die bestaan ook, maar meestal niet op CO.

De sensor uitlezen is inmiddels gelukt. Nu wil ik gaan kijken naar het verwarmingselement. ik wil dit gaan maken a.d.h.v. spanningsregulators of weerstanden. Heeft iemand ervaring met de RCH50?

Tja kun je er zelf even een paar links bij doen, bv naar de DS van het element ?

of de RCH50 ? ,als je die van motorola neemt heb je in ieder geval een warm oor >:) : http://www.motorola.com/Business/US-EN/Business+Product+and+Services/A…

[Bericht gewijzigd door Shiptronic op (60%)]

Haha sorry voor late reactie maar kon van het weekend niet op internet.
Ik bedoelde eigenlijk de RCH50 van vishay en niet van motorola.
Echter heb ik van hun een mail gekregen dat dit component niet compatible was voor de gestelde eisen. Nu heb ik wel een mail van hun ontvangen over het volgende component:
http://www.vishay.com/docs/50013/rh.pdf

Echter weet ik hier zelf weinig van af. Is er hier iemand die al eens met dit component gewerkt heeft of die weet ik hoe zelf een verwarmingselement kan nabootsen? Een hint in de goede richting, componenten ofzo is al genoeg, dan kan ik daar zelf mee gaan stoeien.

Op 29 maart 2010 12:45:05 schreef Raymond Goossens:
Is er hier iemand die al eens met dit component gewerkt heeft of die weet ik hoe zelf een verwarmingselement kan nabootsen?

Ehm, het is gewoon een dikke weerstand, hebben we daar niet allemaal weleens mee gewerkt? En wat wil je 'nabootsen' aan een verwarmingselement dan? Gewoon stroom door die weerstand jassen...

Wat was de motivatie van Vishay om te zeggen dat het component niet 'compatible was voor de gestelde eisen'?

Hieronder staat de reactie van vishay:
Dear Sir,

We cannot use RCH to control temperature. Derating will limit power dissipation.

I suggest RH50, see http://www.vishay.com/docs/50013/rh.pdf

Best regards

Ik denk dat het moeilijker word omdat er een regelsysteem voor moet komen, dus bij een bepaalde spanning / stroom moet de weerstand eigenlijk een constante temperatuur hebben, weet niet of dit bij allemaal die weerstanden zo is? Het is de bedoeling dat de temperatuur van kamertemperatuur tot +85 graden wordt geregeld. Is het mogelijk om een weerstand zo constant te houden qua temp bij een bepaalde spanning / stroom?

Ik ben zelf ook nog met onderzoek bezig en ben uitgekomen op een ptc.
Zou het mogelijk zijn om een ingestelde temperatuur hiermee vast te houden. Hoe ik kan op maken uit onderstaande link moet het mogelijk zijn. Als iemand hier ervaring mee heeft laat dan aub even weten, dan kan ik een bestellen en gaan testen ermee.

http://www.specsensors.com/ptc-apps.asp

Jij gaat toch juist regelen? Dan hoef je toch niet iets te hebben dat van zichzelf de temperatuur constant houdt?

En Vishay heeft het over derating, oftewel, de specs (qua power) moeten omlaag bijgesteld worden vanwege de hogere temperatuur. Kennelijk heeft de RH-serie daar minder last van (zie grafiekje in temp/power dat ongetwijfeld in de datasheet te vinden is).

Ja maar ik snap het niet zo goed hoe ik nu precies de stroom kan gaan regelen om bijv. een weerstand op te stoken. ik heb een fpga en daar komt het regel systeem in te staan. Echter heeft die fpga uitgangen van 5V en enkele mA. Ik kan hiermee wel een relais laten open of dicht schakelen. Echter echt stroom regelen, hoe moet dat? Dit moet namelijk in combinatie met het element gebeuren. Ik zit dus te een beetje te dubben over het element en hoe dit aan te sturen.

Je kunt gewoon een dikke tor pakken (of relais als jij dat wilt) en hard aan danwel uit sturen. Dat houdt je regeling ook lekker simpel. Als je die weerstand aan het stoken zet is het echt niet binnen de milliseconde tig graden warmer hoor.

Oke dus wat jij me aanraad is eigenlijk om een weerstand te pakken van 50W en hieraan te gaan meten. Kijken of die de gewenste temperaturen bereikt. Als dit werkt een regeling gaan verzinnen die de voedingsspanning in, dan wel uitschakelt.

Dus volgens mijn gedachten:

Spanningsbron op een weerstand zetten. Deze bron is in staat om deze weerstand tot de max gewenste temp (85 graden) te sturen. Dan middels een simpel programma in de fpga een relais aansturen. Dit relais schakelt dicht zodra de temperatuur te laag word waardoor er spanning over de weerstand gaat vloeien. Dan zodra de gewenste spanning bereikt is slaat deze weer open. Klopt dit?

Je wilt een beperkte ruimte warmstoken met een weerstand. Op een bepaald punt moet het dan een ingestelde temperatuur worden. Je meet op het punt waar je die temperatuur wilt bereiken. Misschien is je weerstand wel 100 graden op het moment dat het elders in de ruimte (of op de motor, of weet ik hoe het zit) 75 graden is. Dat is toch het hele idee van je temperatuursregeling?

Ruimte/motor te koud: weerstand 'aan'
Ruimte/motor warm genoeg: weerstand 'uit'

Ja klopt. Ik ga eens kijken om 50W weerstanden te bestellen en daar mee te testen. Dan kan ik kijken welke waardes voor deze toepassing van waarde zijn. De bedoeling is dat de temperatuursregeling zo kort mogelijk bij de motor komt te zitten, maar er tegen aan precies gaat toch niet lukken. Vandaar dat de weerstanden waarschijnlijk warmer zullen worden. Maar dan is het inderdaad een goed idee om gewoon een soort aan uit schakelaar te bouwen. De temperatuur hoeft toch niet binnen enkele seconden te zakken of te stijgen.

De bedoeling is gewoon dat deze nagenoeg constant blijft als hij zijn waarde heeft bereikt.

Ik ben van plan om een weerstand te gaan halen en testen van 47ohm en 50W. Echter zijn dit best prijzige weerstanden. Heeft iemand misschien al eens met deze power resistors gewerkt? Ik heb een voeding van 24V DC die een paar ampere kan leveren. Volgens mij moet deze weerstand qua waarden wel voldoen om goed op te kunnen stoken??

Op 30 maart 2010 10:36:19 schreef Raymond Goossens:
Ik ben van plan om een weerstand te gaan halen en testen van 47ohm en 50W.

Waarom?

Volgens mij moet deze weerstand qua waarden wel voldoen om goed op te kunnen stoken??

Vraag of stelling? Ik zou bij god niet weten wat jij bedoet met 'qua waarden voldoen om goed op te kunnen stoken'.

Gissen is missen.

  • Reken uit welke temperatuursverandering in welke tijd je wilt bewerkstelligen
  • Bereken de benodigde energie
  • Bereken de benodigde stroom/spanning en weerstand

En topic-kicken mag niet binnen 24 uur, zeker niet als je zo weinig relevante inbreng hebt als nu.

Nou ik heb zelf wat berekeningen gedaan.

De spanning is 24V DC.
Het vermogen van de weerstand is 50W.

Feitelijk zou ik dan een stroom hebben van: 2.083A.
De weerstandswaarde word dan: 11.52Ohm.

Echter zijn deze weerstanden bij mijn leverancier alleen te krijgen in varianten van 1, 47 en 100Ohm. Vandaar dat het mij het veiligste lijkt om weerstanden te pakken van 47 Ohm.

De weerstanden hoeven niet zozeer binnen enkele seconden op de gewenste temperatuur te zitten, maar ze moeten wel de gewenste temperatuur gedurende langere tijd vasthouden. Vandaar dat de waarde van 47Ohm mij gepast lijkt voor deze toepassing.

Uiteraard moet ik deze wel nog bestellen en testen of het daadwerkelijk zo is. Maar ik dacht misschien heeft iemand hier al ervaring mee en kan hij / zij mij op de hoogte brengen of deze beredenatie klopt.

Op 30 maart 2010 11:26:58 schreef Raymond Goossens:
Vandaar dat de waarde van 47Ohm mij gepast lijkt voor deze toepassing.
[...]
of deze beredenatie klopt.

Je beredeneert niks. Je stelt dat het niet zo snel hoeft, dus dat 47 ohm dan wel goed zal zijn. Dat is een of andere niet-onderbouwde aanname.

Bereken de warmteafgifte, kijk welke isolatie je moet hebben, etc.

Een kamer van bijvoorbeeld 1 m3 krijg jij met je 12,5W niet opgewarmd tot +85°C hoor. Ik weet niet hoe groot die kamer daadwerkelijk is en hoe goed hij isoleert, maar je bent nu echt maar wat in het wilde weg aan het gokken.

Doe toch in ieder geval een berekening. Misschien wat (reele) aannames over isolatie, soortelijke warmte, etc doen, maar niet maar zo wat roepen.

Oke ik ben aan de slag gegaan met de formules en ben op het volgende uitgekomen:

De afmetingen uit dit voorbeeld zijn:
L = 20cm, B = 5cm, H = 5cm.
De oppervlakte van het geheel is:
20 * 5 * 5 = 500cm3.
De massa van lucht is: 1293 kg/m3.
Hierdoor wordt de te verwarmen massa hier:
1.293g/cm3 * 500 = 0,6465kg.
Q = c * m * delta t
Q = 710 * 0,6465 * 65 = 29.835,5J
Dit is de energie die nodig is om het geheel te verwarmen.

De energie van 1 47ohm weerstand bepaal ik als volgt:
I = U / R = 24 / 47 = 0,51A
P = u * I = 24 * 0,51 = 12.26W
E = P * t

Er van uitgaande dat het 1 minuut mag duren eer de temperatuur bereikt is:

E = 12.26 * 60 = 735.32J

Dit is dus veel te weinig.

Nu wil ik meerdere weerstanden gaan gebruiken en deze parallel schakelen.

Ik had gedacht aan 8 weerstand van ieder 47Ohm.
8 parallel weerstanden van 47 leveren een vervangingsweerstand op van 5.875 Ohm.
I = U / R = 24 / 5.875 = 4.085A
P = u * I = 24 * 4.085 = 98.04W
E = P * t
29835,975 = 98.04 * t
t = +/- 5 min

Met deze waardes duurt het dus max 5 eer mijn gewenste temperatuur bereikt is.

Dit ervan uitgaande dat de kamertemperatuur 20 graden is en ik moet verwarmen tot 85 graden (maximum geeist).

Deze berekening moet zo kloppen, of zie ik iets over het hoofd?

Verder edit: aangezien kostprijs duur is kan ik ook andere leverancier zoeken die weerstanden korter bij de gewenste 5Ohm regio ongeveer kan leveren. Maar dit is zaak voor later. Eerst kijken of berekening klopt zo.

Kijk, nu komen we ergens.

Op 30 maart 2010 13:14:57 schreef Raymond Goossens:
De oppervlakte van het geheel is:
20 * 5 * 5 = 500cm3.

Inhoud van de ruimte neem ik aan, cm3 is geen oppervlaktemaat. Besteed aandacht aan wat je typt.

De massa van lucht is: 1293 kg/m3.
Hierdoor wordt de te verwarmen massa hier:
1.293g/cm3 * 500 = 0,6465kg.
Q = c * m * delta t
Q = 710 * 0,6465 * 65 = 29.835,5J

Die soortelijke warmte neem ik even van aan dat je hem hebt opgezocht.

Er van uitgaande dat het 1 minuut mag duren eer de temperatuur bereikt is:

E = 12.26 * 60 = 735.32J

Dit is dus veel te weinig.

Zeer juiste conclusie.

Nu wil ik meerdere weerstanden gaan gebruiken en deze parallel schakelen.

Ik had gedacht aan 8 weerstand van ieder 47Ohm.
8 parallel weerstanden van 47 leveren een vervangingsweerstand op van 5.875 Ohm.
I = U / R = 24 / 5.875 = 4.085A

Je voeding kan dat leveren?

P = u * I = 24 * 4.085 = 98.04W
E = P * t
29835,975 = 98.04 * t
t = +/- 5 min

Met deze waardes duurt het dus max 5 eer mijn gewenste temperatuur bereikt is.

Dit ervan uitgaande dat de kamertemperatuur 20 graden is en ik moet verwarmen tot 85 graden (maximum geeist).

Deze berekening moet zo kloppen, of zie ik iets over het hoofd?

Theoretisch ben je leuk op weg, je berekeningen lijken aardig te kloppen.

In de praktijk zal je je 8 weerstanden van 50 Watt misschien niet eens in je ruimte kwijt kunnen. Ook kan het zijn dat de weerstanden te warm worden, terwijl voor het DUT (device under test) de temperatuur nog niet is bereikt. Je hebt echter een flinke derating met 12,5W op je 50W weerstand, dus dit kan nog weleens gunstig uitpakken.
Tenslotte is je kamer misschien wel geïsoleerd, maar niet tot aan het ideale. De buitenkant wordt misschien wel sneller warm dan je DUT, die energie wil je niet weggeven. Vergis je niet in dit soort feiten, je hebt hierover nog helemaal geen informatie losgelaten.

Ik ken de situatie niet, een foto zou misschien leuk zijn, maar ik kan me voorstellen dat je die weerstand aan het DUT vast kunt schroeven, zodat de warmteoverdracht heel direct kan, in plaats van de lucht in een kamer te verwarmen.

Je kunt al met al dus nog wat nieuwe berekeningen maken, maar ik vind dat je met je laatste post een goede stap hebt gemaakt en je kunt er nu ook voor kiezen om eens wat te gaan experimenteren.

Verder edit: aangezien kostprijs duur is kan ik ook andere leverancier zoeken die weerstanden korter bij de gewenste 5Ohm regio ongeveer kan leveren.

Dan heb je dus ook ineens weerstanden met een veel groter vermogen nodig, dat gaat ook snel duur worden. De kostprijs van jouw 50W weerstanden zou zelfs bij afname van enkele stuks niet veel meer dan een euro of 4 mogen zijn, anders moet je even een andere leverancier pakken.
Daarbij hoeft je natuurlijk voor een paar vermogensweerstanden ook niet krampachtig aan Vishay vast te houden, er zijn ook andere merken.

Ik ben inderdaad op de goede weg. Maar heb nog genoeg te doen zo te zien. De echte afmetingen zijn nu bekend en ik ga er verder aan werken en verder met de door jullie gestelde vragen. Ik hou jullie op de hoogte.

De daadwerkelijke afmetingen zijn bekend en deze bleken nog een stuk kleiner te zijn. Dit komt mijn schakeling ten goede. Hieronder staan de afmetingen en de berekeningen.

De afmetingen zijn:
L = 150mm
B = 25mm
H = 25mm

De inhoud wordt hierdoor 25 * 25 * 150 = 93,75cm3
De massa van lucht is: 1293kg/m3
Dus in mijn geval: 121,21875 gram.

Q = C * M * delta T
Q = 710 * 0,212 * 65
Qmax = 5594,3J

E = P * t
5594,3 = P * t

oplaadtijd mag 2 minuten duren, dus:

5594,3 = P * 120
P = 46.619W

P = U * I
46.619 = 24 * I
I = 1.94A

U = I * R
24 = 1.94 * R
R = 12.37Ohm

Mijn keuze is nu gevallen op 4 parallelweerstanden van 50Ohm.
Deze hebben specificatie van 15W en vallen dus ruim binnen de grens.

Deze ga ik verder testen om te kijken of de berekende waarden idd overeen komen.

Mijn bedoeling uiteindelijk is om een soort kap te maken die over de motor heen valt met aan beide zijde twee weerstanden. Deze weerstanden staan parallel aan elkaar geschakeld en verhitten de binnenste lucht. De plaats voor de sensor wordt aan de boven kant van de motor, maar dan wel tegen de motor aan. Ik hou jullie op de hoogte van de test resultaten.

Op 30 maart 2010 15:47:55 schreef Raymond Goossens:
Mijn keuze is nu gevallen op 4 parallelweerstanden van 50Ohm.
Deze hebben specificatie van 15W en vallen dus ruim binnen de grens.

Heb je de datasheet bekeken van de weerstand die je nu wilt gebruiken? Heb je rekening gehouden met derating bij bepaalde hotspot temperaturen? Als je een 15W weerstand op >10W wil gebruiken dan gaat het hard hoor!

Mijn bedoeling uiteindelijk is om een soort kap te maken die over de motor heen valt met aan beide zijde twee weerstanden.

Hoe ga je dat nu binnen die ruimte passen? En al nagedacht over m'n vorige vragen m.b.t. bijvoorbeeld de isolatie?

Op 30 maart 2010 11:21:43 schreef Jochem:
En topic-kicken mag niet binnen 24 uur, zeker niet als je zo weinig relevante inbreng hebt als nu.

Blijf dat nou niet doen, als een moderator dat ziet kun je de komende 24 uur helemaal niks meer posten.

Na vele weken van programmeren en testen werkt de temperatuursregeling. Iedereen bedankt voor de hulp.

Echter is er nu op stage besloten om het geheel om te schrijven van de FPGA naar een microprocessor. De ATmega 324P. Ik heb een print ontworpen die werkt.

Nu hang ik echter vast bij het programmeren. Heeft iemand hier ervaring mee?


	while (1)
    {   
    LcdClear();
    a = PINB;
        
    if (a == 0x02)
    {
        i = 0;
        temp_instel = temp_instel - 1;
        sprintf(text, "Temp wanted:%02d", temp_instel);
        LcdGotoXY(0, 0);
        LcdPutStr(text);
        
        while(a == 0x02)
        {    
            LcdGotoXY(0, 0);
            LcdPutStr(text);
            a = PINB;
        }
    }
    else
    {
        if (a == 0x04)
        {
            i = 0;
            temp_instel = temp_instel + 1;
            sprintf(text, "Temp wanted:%02d", temp_instel);
            LcdGotoXY(0, 0);
            LcdPutStr(text);
            
            while(a == 0x04)
            {    
                LcdGotoXY(0, 0);
                LcdPutStr(text);
                a = PINB;
            }
        }
        else
        {
            temp_instel = temp_instel;
            sprintf(text, "Temp wanted:%02d", temp_instel);
                
            LcdGotoXY(0, 0);
            LcdPutStr(text);
        }
    }
    
    i2c_start(); 
    i2c_write(0x91);
    temp_sensor = i2c_read(0);
    i2c_stop(); 
    
    sprintf(texta, "Temp meas:%02d", temp_sensor);
    LcdGotoXY(0, 1);
    LcdPutStr(texta);

Echter krijg ik uit de sensor alleen maar de waarde -1. Weet iemand misschien of er een fout in mijn code zit?

Het bleek een fout in de sensor te zijn. dit is nu opgelost. De sensor werkt alleen heb ik een opmerkelijk probleem. Zodra ik de spanning van de processor afhaal en daarna opnieuw start geeft de sensor een foute waarde weer. Hij geeft dan mijn inziens de waarde van OS/INT register weer. Ik zie namelijk eerst de waarde 80 verschijnen. Als ik dan een keer manueel door het programma loop met debuggen doet hij het daarna wel weer. Heb ik de sensor verkeerd aangesloten, of zit er een fout in mijn code? Hieronder volgt de code:


// *****************************************************************************
// * Include files
// *****************************************************************************
#include <mega644p.h>
#include <stdio.h>
#include <i2c.h>
#include <lm75.h>
#include "main.h"
#include "init.h"
#include "lcd.h"
#include "global.h"

// *****************************************************************************
// * Decleration constants
// *****************************************************************************
int i = 0, z = 100;
char a;
int temp_instel =25;
char text[17];
char texta[17];
char temp_sensor = 0x00;
// *****************************************************************************
// * Function implementation
// *****************************************************************************
void main (void)
{ 
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif 

    // Initialize HW and SW
	Init ();
    
    // I2C Bus initialization
    i2c_init();
    
    LcdClear();

    // LM75 Temperature Sensor initialization
    // thyst: 78°C
    // tos: 80°C
    // O.S. polarity: 0
    lm75_init(0,78,80,0);
    
    // Main loop
	while (1)
    {   
    a = PINB;
    LcdGotoXY(0, 1);
    LcdPutStr(texta);
    LcdGotoXY(0, 0);
    LcdPutStr(text);
        
    if (a == 0x02)
    {
        i = 0;
        temp_instel = temp_instel - 1;
        sprintf(text, "Temp wanted:%02d", temp_instel);
       
        while(a == 0x02)
        {    
            a = PINB;
        }
    }
    else
    {
        if (a == 0x04)
        {
            i = 0;
            temp_instel = temp_instel + 1;
            sprintf(text, "Temp wanted:%02d", temp_instel);
            
            while(a == 0x04)
            {    
                a = PINB;
            }
        }
        else
        {
            temp_instel = temp_instel;
            sprintf(text, "Temp wanted:%02d", temp_instel);
        }
    }
    
    if (z == 100)
    {
    i2c_start();                //start 
    i2c_write(0x91);            //SLAVE_R 
    temp_sensor = i2c_read(0);
    i2c_stop();                 //Stop
    
    sprintf(texta, "Temp meas:%02d", temp_sensor);
    z=0;
    }
    else
    {
    z++;
    }

       
    }
}