پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
ببینید میخام اون قسمت پمپ و مخزن رو شبیه سازی کنم خردم به مشکل !خوب دقت کنید پمپ قطع و وصل میشه آب داخل مخزن تا یه حدی بالا میاد و تا یه حدی تخلیه می شه !!دمتون گرم فکر کن پمپ خودتونه!!
پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
این از سورس کد تقدیم به دوستی که سورس میخاستن البته این سورس باید به اسمبلی تبدیلش کنم در نهایت بعد تغییراتی که داده شد!!توضیح این که می بینید یه کنترل کننده سطح مخزن !سورس آماده شماتیکشم آماده مشکلم اینه که چطوری پمپ و مخزن و شبیه سازی کنم به عبارتی این طور که من میبینم باید نقاشی بکشم احتمالا!اینم بستگی به کرم شما دوستان داره میتونید راهنمایی کنید این مخزن و پمپ رو یکم خوشگل ترش کنم دو تا سنسور بزارم سطح پایین و سطح بالا رو مشخص کنه فقط تو این کار باید راهنماییم کنید از چ المان های موجود تو پروتئوس و تو چه قسمتی باید استفاده کنم !!در نهایت میخام با این میکرو یه کنترلر سطح مایع بسازم!!!
پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
ببین عادل جون خدمم به ذهنم رسیده یه تغییر کلی بدم بهش !ولی اینی که تو میگی اگه نشونه کسی بدم چیزی ازش متوجه نمیشه فلا تو فکر یه سوئیچ و دو تا سنسور ام ببینم جای سنسور چی میشه گذاشت!
دمتون گرم که جواب دادین .....!!!
void int1(void) interrupt 2 // external interrupt 1 subroutine
{
EA=0; // disable all interrupts
led5=1; // read pulse indication
rd = 0; // send read pulse to ADC
d=P1; // read the data
rd=1;
dely(); //
led5=0;
writecmd(0xC0); // display it on LCD
writestr("cur water level:- "
display(d);
EA=1; // enable all interrupts
}
void timer(void) interrupt 1 // timer overflow interrupt subroutine
{
EA=0; // disable all interrupts
c++; // increment count
TH0=0x3C; // relaod timer
TL0=0xAF;
if(c==40) // if count is 40
{
led4=1;
dely();
wr = 0; // send write pulse to ADC
wr = 1;
led4=0;
c=0; // start countin again
}
EA=1;
}
void int0(void) interrupt 0 // external interrupt 0 subroutine
{
EA=0; //disable interrupts
led3=0;
led1=1;
wtrin=1; // apply fwd puls and give indication
dely();
wtrin=0;
EA=1;
}
void display(unsigned char z)
{
unsigned int tmp1,tmp2,t,t1,a;
unsigned char asci[3];
tmp1 = (z & 0x0F); // separate upper and lower nibbles of hex value
tmp2 = z >> 4;
tmp2 = tmp2*16; // convert it into decimal
t = tmp1+tmp2;
if(t>=100) // if its 3 digit
{
a=2; // take a as 3 digit value
while(t>10)
{
t1=t%10;
asci[a]=t1+0x30; // convert each digit in to ASCII
t=t/10;
a--;
}
asci[0]=t+0x30;
}
else
{
t1=t%10; // if 2 digit
asci[2]=t1+0x30;
t=t/10;
asci[1]=t+0x30;
asci[0]=0x30; // take first digit as 0
}
writedat(asci[0]); // send all 3 digits to LCD
writedat(asci[1]);
writedat(asci[2]);
}
void dely() // delay of 100 ms
{
int i,j;
for(i=0;i<100;i++)
for(j=0;j<250;j++);
}
void bigdly(int k) // variable delay in seconds
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<10000;j++);
}
void lcddly() // LCD delay
{
int x;
for(x=0;x<1500;x++);
}
void writecmd(unsigned char a)
{
lcddly();
rs = 0;
rw = 0;
P0 = a;
en = 1;
en = 0;
}
void writedat(unsigned char b)
{
lcddly();
rs = 1;
rw = 0;
P0 = b;
en = 1;
en = 0;
}
void writestr(unsigned char *s)
{
unsigned char l,i;
l = strlen(s); // first get the lenght of message
for(i=1;i<l;i++)
{
writedat(*s); // send all characters one by one to LCD
s++;
}
}
main()
{
P1=0xFF;
P2=0x00; // initialize ports
P3=0xCE;
P0=0x00;
IE=0x87; // enable interrupts
TMOD=0x01; // initialize timer
TH0=0x3C; // load timer to count up to
TL0=0xAF; // 50,000
writecmd(0x3C); // initialize LCD
writecmd(0x0F);
writecmd(0x01);
writestr("set water level:- " // display set water level as
display(0xB4); // 180d
wtrin=1; // send fwd pulse
led1=1; // indicate on LED
led4=1;
dely();
wr = 0; // send WR pulse to ADC
wr = 1;
TR0=1; // start timer
wtrin=0;
led4=0;
agin:while(limit==1); // wait until set value is reached
led1=0;
led2=1;
wtrstp=1; // stop water flow
dely();
wtrstp=0;
bigdly(200); // wait for 10 sec
led2=0;
led3=1;
wtrout=1; // send rev pulse
dely();
wtrout=0;
bigdly(50); // after 2-3 sec
limit=1;
goto agin; // again wait for set value reached
}
پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
ببینید بچه ها حالا اگه واسه شبیه سازیش چیزی به ذهنتون نرسید حداقل بگید این قسمت طراحی المان که به تونم دو تا مربع بکشم در نهایت یه شماتیک تو پروتئوس بکشم کجاست اون تیکه پمپ و مخزن در حال حاضر یه عکس بهش اضافه شده !
به ذهنم افتاده بیام قسمت پمپ و با یه سوئچ و جای سنسور سطح تو مخزن از logic state استفاده کنم logic هارو بدم به سوئیچ دستی کنترل کنم!!
نظرتون چیه؟؟؟؟یه جورائیی کلا تغییرات بدیم
پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
کنترلر تو این سورس اول میاد سطح آب و روی lcd نمایش می ده سپس میاد فیوز fwd رو روی کنترلر پمپ فعال میکنه و مایع شروع میشه به ریخته شدن تو مخزن و این عملیات توسط روشن شدن led D2 مشخص میشه بعدش هر دو ثانیه سطح آب توسط pin P3.2 خونده میشه از طریق ADC میره وسه نمایش روی lcd حالا چطور میخونه بماند که من نگرفتم با چه سنسوری !!رمانی که مخزن پر شد به یه سطح معین رسید که اون سطح در آغاز ما به میکرو میدیم سیگنال به pin P3.1 میاد و stop pulse پمپ رو فعال میکنه این عملیاتم با led D3 نمایش داده میشه تو این سطح ماکزیمم به مدت 10 ثانیه میمونه بعد کنترلر REV pulse پمپ و فعال میکنه و مایع درون پمپ تخلیه می شه این مرحله ام با D1 مشخص می شه وهنگامی که مخزن کاملا تخلیه شد خروجی empty مخزن برای کنترلر یه وقفه می فرسته .کنترلر fwd pulse پمپ فعال به این ترتیب مخزن دوباره پر می شه و این کارو تو سیکل های بعدی ادامه می ده!
پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
در کل من میخام یه مخزن بسازم که بتونم کنترلش کنم کسی میتونه این مدارو رو بهم بگه چیکار کنم که بهتر شه اون قسمت پمپ و مخزن و واقعی ترش کنم یا یه ایده بده که چکنم این مدارو بزارم کنار!!!
هم اکنون نیازمند یاری سبز شما هستم
بچه ها من زیادم وقت ندارم یه پروژه دیگم دستمه
دمتون گرم کسی چیزی به ذهنش می رسه یا میتونه کمکم کنه خواهشن زودتر بگه !!مرسسسسسیییی
پاسخ : کسی میدونه چطور میتونم این مدار و شبیه سازی کنم ؟؟؟
سلام. با استفاده از برنامه Labview میتونین این کار رو انجام بدید. و یا اینکه از برنامه های صنعتی استفاده کنید. تا جایی که می دونم برنامه Citect امکان برنامه نویسی گرافیکی رو به شما میده. اسم دقیق برنامه رو هم ان شاءالله اگر یادم بیاد میگم بهتون.
دیدگاه