Зворотний зв'язок

Демонстрація роботи електромагнітного реле постійного струму.

Вступ

Для закріплення здобутих теоретичних знань, застосування їх при вирішенні питань математичного характеру, а також з метою набуття навиків по створенню програмного забезпечення , виконується курсова робота з дисципліни “Програмування та алгоритмічні мови” . В курсовій роботі необхідно розробити програму на мові програмування C++,яка б демонструвала роботу електромагнітного реле постійного струму .

Задача і опис схеми

Електромагнітне реле постійного струму , яке є сполученням електромагнітного перетворювача (з поворотним якорем ) і контактного пристрою. При проходженні струму по катушці 7 у магніто проводі , що складається з осердя 6 та якоря 1, виникає магнітний потік , якір притягує до осердя , контактна група розмикається (розмикаючий контакт) , а контактна група замикається(замикаючий контакт). На принципових електричних схемах механічний зв’язок між електромагнітним приводом та контактами не вказується.

Текст програми

#include

#include

#include

#include

#include

void help(void)

{ restorecrtmode();

clrscr();

textmode(BW80);

textcolor(7);

cprintf(" Мiнiстерство освiти i науки України");

printf("\n");

cprintf(" Рiвненський державний технiчний унiверситет");

printf("\n");

cprintf(" Кафедра електротехнiки i автоматики");

printf("\n\n\n\n\n");

textcolor(4 + BLINK);

printf(" ");

cprintf("КУРСОВА РОБОТА");

printf("\n");

textcolor(7);

printf("\t\t");

cprintf(" з курсу:\"Програмування та алгоритмiчнi мови\"");

printf("\n");

textcolor(7);

printf("\t\t");

cprintf(" на тему:\Демонстрацiя електромагнiтного ");

printf("\n");

printf("\t\t\t ");

cprintf(" реле постiйного струму \"");

printf("\n\n\n\n\n\n");

textcolor(2);

printf("\t\t\t\t\t\t");

cprintf("Виконав студент першого курсу");

printf("\n");

printf("\t\t\t\t\t\t");

cprintf("групи АУТП-1");

printf("\n");

printf("\t\t\t\t\t\t");

cprintf("Назарчук Вiталiй");

printf("\n\n\n\n");

printf("\t\t\t ");

textcolor(58);

cprintf("РIВНЕ-2002");

textcolor(GREEN + BLINK );

printf("\n\t\t\t");

cprintf(" натиснiть будь-яку клавiшу");

getch();

textcolor(GREEN );

setgraphmode(getgraphmode());

}

void draw(int x0,int y0)

{

unsigned char color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};

struct bmpinfo

{

char h1,h2;

unsigned long

size,reserved,offset,b,width,height;

unsigned int plans,bpp;

};

bmpinfo info;

FILE *f;

int x,y;

unsigned char b;

unsigned char bh;

unsigned char bl;

int nb;

int np;

int i,j;

if((f=fopen("34.bmp","rb"))==NULL)

printf("-1");

//return -1;

fread(&info,sizeof(info),1,f);

if(info.bpp!=4)

printf("-2");

//return -2;

x=x0;

y=y0+info.height;

nb=(info.width/8)*4;

if((info.width/8)!=4)nb+=4;

fseek(f,info.offset,SEEK_SET);

for(i=0;i<=info.height;i++)

{

np=0;

for(j=4;j
{

b=fgetc(f);

if(np
{

bh=b>>4;

putpixel(x,y,color[bh]);

x++;

np++;

}

if (np
{

bl=b&15;

putpixel(x,y,color[bl]);

x++;

np++;

}

}

x=x0;

y--;

}

fclose(f);

}

void draw1(int x0,int y0)

{

unsigned char color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};

struct bmpinfo

{

char h1,h2;

unsigned long

size,reserved,offset,b,width,height;

unsigned int plans,bpp;

};

bmpinfo info;

FILE *f;

int x,y;

unsigned char b;

unsigned char bh;

unsigned char bl;

int nb;

int np;

int i,j;

if((f=fopen("34_.bmp","rb"))==NULL)

printf("-1");

//return -1;

fread(&info,sizeof(info),1,f);

if(info.bpp!=4)

printf("-2");

//return -2;

x=x0;

y=y0+info.height;

nb=(info.width/8)*4;

if((info.width/8)!=4)nb+=4;

fseek(f,info.offset,SEEK_SET);

for(i=0;i<=info.height;i++)

{

np=0;

for(j=4;j
{

b=fgetc(f);

if(np
{

bh=b>>4;

putpixel(x,y,color[bh]);

x++;

np++;

}

if (np
{

bl=b&15;

putpixel(x,y,color[bl]);

x++;

np++;

}

}

x=x0;

y--;

}

fclose(f);

}

void Pidgotovka(void);

void *saucer;

int size;

void Pidgotovka1(void);

void *saucer1;

int size1;

void demo(void)

{ int i,w;

Pidgotovka();

while(!kbhit())

{putimage(236,86,saucer,XOR_PUT);

for(i=0;i<5;i++)

{setlinestyle(0,0,1);

setcolor(4);

circle(464,302,3);

circle(471,323,3);

delay(200);

setcolor(15);

circle(464,302,3);

circle(471,323,3);

delay(200);

}

setlinestyle(0,0,3);

putimage(236,86,saucer,XOR_PUT);

for(i=0;i<24;i++)

{setcolor(0);

line(220,170,197+i-1,272);

line(220,170,273,170-i+1);

setcolor(10);

line(220,170,197+i,272);

line(220,170,273,170-i);

putimage(236,86-i/3,saucer,XOR_PUT);

setcolor(1);line(262,135,262,135-i/3);

delay(200);

putimage(236,86-i/3,saucer,XOR_PUT);

}

putimage(236,86-7,saucer,XOR_PUT);

delay(2000);

putimage(236,86-7,saucer,XOR_PUT);

for(i=23;i>-1;i--)

{setcolor(0);

line(220,170,197+i+1,272);

line(220,170,273,170-i-1);

setcolor(10);

line(220,170,197+i,272);

line(220,170,273,170-i);

putimage(236,86-i/3,saucer,XOR_PUT);

setcolor(1);

line(262,145+(23-i),262,127);

delay(200);

putimage(236,86-i/3,saucer,XOR_PUT);

}

}

putimage(236,86,saucer,XOR_PUT);

outtextxy(195,220,"1");

outtextxy(505,220,"6");

outtextxy(340,290,"7");

outtextxy(200,460,"1 -якiр,6 -осердя,7 -катушка");

delay(100);

getch();

getch();

free(saucer);

}

main()

{

int q,X,y,c,STEP=100;

int gdriver=DETECT,gmode,errorcode;

initgraph(&gdriver,&gmode,"c:\\bcpp\\bgi");

errorcode=graphresult();

if(errorcode !=grOk)

{

printf("Помилка графiчного режиму типу:%s\n",grapherrormsg(errorcode));

printf("Натиснiть будь-яку клавiшу для виходу");

getch();

exit(1);

}

help();

poch:

q=1;

X=143;

y=113;

Pidgotovka1();

do

{

putimage(X+270,y,saucer1,XOR_PUT);

putimage(X,y,saucer1,XOR_PUT);

c=getch();

putimage(X+270,y,saucer1,XOR_PUT);

putimage(X,y,saucer1,XOR_PUT);

switch(c)

{

case 80:y+=STEP;q++;if(y==313){y=113 ;q=1;}break;

case 72: y-=STEP;q--;if(y==13){y=213;q=2;}break;

case 13: if(q==2)goto popa;if(q==1){demo();

goto poch; }

}

} while(c!=27);

popa:

free(saucer);

closegraph();

}

void Pidgotovka(void )

{

draw(0,-2);

size=imagesize(236,86,493,135);

saucer=malloc(size);

getimage(236,86,493,135,saucer);

putimage(236,86,saucer,XOR_PUT);

}

void Pidgotovka1(void )

{

draw1(0,-2);

size1=imagesize(143,113,210,160);

saucer1=malloc(size1);

getimage(143,113,210,160,saucer1);

putimage(143,113,saucer1,XOR_PUT);

}

Приклад

Запускаємо пограму і вибираємо пукт “демонстрація” і натискуємо ENTER і спостерігаємо як якоря притягує до осердя , контактна група 4,5 розмикається (розмикаючий контакт) , а контактна група 2,3 замикається(замикаючий контакт) рис. 1 . Потім спостерігаємо як здійснюється навпаки рис. 2. Після натиснення будь-якої клавіши бачимо опис схеми рис.3 .

Рис.1 Рис.2

Рис.3

Висновок

Завдяки цій курсовій роботі я закріпив здобуті теоретичні знання з курсу “Програмування та алгоритмічні мови”,навчився застосувати їх при вирішенні питань виробничого характеру. Склав програму, яка демонструє роботу електромагнітного реле постійного струму .

Література

1. Головко Д.Б. і ін. Автоматика і автоматизація технологічних процесів, К.,

“Либідь”, 1997 р., 230 с.

2.Крис Паппас, Уїльям Мюррей, Програмирование на С и С++,

“Ирина”


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат