Pic ile 7 Led`li Gösterge (Havaya Yazı Yazmak)

havaya yazı

Devre şeması oldukça basittir. Burada önemli olan pic’i programlamadan önce motorun saniyedeki tur sayısı ve sütun genişliği hesaplanıp belirlenmelidir.
İnsan beyni saniyede 15 kareye kadar olan resimleri algılayabildiği için bu sistemde motor saniyede 20 tur atacaktır.
1 saniye = 20 tur atması isteniyorsa
1 tur T = 1/f = 1/20 = 0,05 saniye = 50 milisaniye
Sistemin sütun sayısını hesaplamak için
Dairenin çevresi = 50cm ise
Örneğin;
sütun genişliği = 0,5cm
50/0,5 = 100 sütun
Sistemin satır sayısını hesaplamaya gerek yoktur, çünkü sistemde 7 LED kullanıldığı için satır sayısı da 7 dir. Geri kalanını oku »

Bilgisayar ile Direnç Ölçümü

Bu devreyi bilgisayarınızın yazıcı girişine bağlayın ve dirençlerinizi bu dört kademeli ohmmetre ile ölçün.

Bir 12bit ADC entegresi ile PC yazıcı portunu kullanarak birçok ölçme cihazı yapabilirsiniz. Burada anlatılan devre dört kademede 0 – 4.094K, 40.94K, 409.4K ve 4.094M dirençlerinizin gerçek değerlerini size gösteriyor.

Normal bir test metresi için 12 bitlik çözünürlük 3.5, 4 basamaklı işlemler için yeterli olmaktadır. Ekteki programı kullanarak – veya kendiniz yazarak – ekrandan seçerek istenilen aralıkta ölçüm yapılabiliyor. Yazılımda değişiklik yapılarak otomatik olarak direnç aralığını seçtirmek de mümkün. Yani oldukça eğlenceli bir devre. Geri kalanını oku »

LPT tabanlı PC osiloskop

PC tabanlı bir osiloskop projesidir. Band genişliği yaklaşık 1MHz olup sadece dalga şekillerini görmek için tasarlanmıştır.

Nasıl çalışır?

C2 kapasitesi üzerinden verilen giriş sinyali R4 trimpotu üzerinden offset kazandırılarak ADC girişine uygulanır ve analog girişi ADC çıkışında dijitale çevrilerek PC paralel portuna uygulanır.

ADC için koruma develeri geliştirilebileceği gibi sinyal girişi bir video kuvvetlendiricisi çıkışından da verilebilir. ADC0801 yerine ADC0802/ADC0803/ADC0804/ADC0805 ADC den biri kullanılabilir. R4 trimpotu ile osiloskopun offset ayarı yapılır. Devre ilk enerjilendiğinde R4 trimpotuna göre ADC çıkışıda bir değer alır ve bu değer LED display üzerinde görülebilir ayrıca bu şekilde donanım PC ye bağlanamadan önce R4 trimpotu ayarlanarak LED displaydeki değişen değerlerin görülmesi ile donanım test edilebilir. Giriş sinyali C2 kapasitesi üzerinden alınıp bir yüksek gerilim koruma devresi kullanılmamıştır bu yüzden genliği 10V üzeri sinyallerin girişe uygulanması tavsiye edilmez. Genliği 1V den daha küçük sinyallerin osiloskopta görülebilmesi için C2 kapasitesinden önce kuvvetlendirici katı kullanılmalıdır.

 yazılımı indir

#include <dos.h>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 

char msg[30];
int a,b,secim;
float dly;
float art;
 

int cerceve()
                  {
                    moveto(50, 50);
                    lineto(600,50);
                    lineto(600,450);
                    lineto(50,450);
                    lineto(50,50);
//———————————-yatay cizgileri——————————————–
                    moveto(50,250) ;
                    lineto(600,250) ;
//———————————dikey cizgileri———————————————
                    a=50;
                    while(a<600)
                                        {
                                            if(a==380-55) {moveto(a,50); lineto(a,450);}
                                            moveto(a,245);
                                            lineto(a,255);
                                            a=a+55;
                                        }
//—————————-sifir belirtme cizgileri——————————————
                    moveto(50,250);
                    lineto(35,250);
                    moveto(600,250);
                    lineto(615,250);
                    moveto(325,50);
                    lineto(325,35);
                    moveto(325,450);
                    lineto(325,465);
                    return 0;
                   }
 

int install()
                    {
                        int gdriver = DETECT, gmode, errorcode;
                        initgraph(&gdriver, &gmode, “”);
                        return 0;
                    }
 

int info()
                    {
                        moveto(0,20);
                        if (dly!=0) sprintf(msg,” Time/div[t]=%fms”,dly*55/art,getx(),gety());
                        else sprintf(msg,” Time/div[t]=unknown”,getx(),gety());
                        outtext(msg);
                        moveto(270,0);
                        sprintf(msg,” PCSCOPE v1.0″,getx(),gety());
                        outtext(msg);
                        return 0;
                    }
 

int draw()
                    {
                        int voltage=250;
                        int time=50;
                        int voltageaddress=0×379;
                        voltage=inportb(voltageaddress);
                        voltage=voltage>>3;
                        voltage=106+9*voltage;
                        moveto(50,voltage);
                        while(time<800)
                                                {
                                                    delay(dly);
                                                    time=time+art;
                                                    voltage=inportb(voltageaddress);
                                                    voltage=voltage>>3;
                                                    voltage=106+9*voltage;
                                                    if(time<600) lineto(time,voltage);
                                                 }
                        return 0;
                       }
 

main()
            {
                clrscr();
                textcolor(9);
                cprintf(” PCSCOPE APPLICATION\n”);
                puts(“\r Enter max two digits delay time”);
                int a;
                scanf(” %2d”,&a);
                printf(” Delay is %dms\n”,a);
                dly=a;
                puts(” Enter max two digits shift points”);
                while(1) {
                                scanf(” %2d”,&a);
                                if(a==0) puts(“Shift time cannot be zero”);
                                else break;}
                printf(” Shift time is %dms”,a);
                art=a;
                textcolor(4);
                if (dly==0) cprintf(“\n\n\r Attention time/div=unknown\n\r This program written for analysing the signal figure because of time neither nor voltage does not completely true”);
                else cprintf(“\n\n\r Attention time/div=%fms\n\r This program written for analysing the signal figure because of time neither nor voltage does not completely true”,55*dly/art);
                puts(“\n\r Press any key for drawing”);
                puts(“\n\n Author:Tegin Yücel Mayadağlı”);
                getch();
                install();
                while(1)
                            {
                                cleardevice();
                                cerceve();
                                info();
                                draw();
                            }
                getch();
                closegraph();
                }

 

NOT: Turbo C veya Dev. C++ ile derleyin…

Tegin Yücel Mayadağlı
www.r2d2droids.co.nr