Raymond Goossens
Meten is weten en proberen is leren!
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.
Jochem
If you want to succeed, double your failure rate.
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.
Raymond Goossens
Meten is weten en proberen is leren!
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?
Raymond Goossens
Meten is weten en proberen is leren!
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++;
}
}
}