26 Mayıs 2012 Cumartesi

Elektrik Kumanda Projesi Çizimi

Bu yazı bir elektrik projesinde nelerin olması gerektiği ile ilgilidir.

Genel Görünüm
Aşağıdaki resimde bir proje çizimi vardır.
numaralandırılmış öğeler:
1-Açıklamalar
Projenin gösterilen sistemin çalışması, çalışmaya alınması, bakımı, testleri ile ilgili açıklamaların yapıldığı yazılı bölüm.
2-Elektrik Kumanda Şeması
Düşük voltaj/akımlı mantık devresinin gösterildiği çizimler
3-Malzeme Listesi
Projede kullanılan malzemelerin listesi, adedi, standartı tavsiye edilen markasının olduğu liste
4-Pano Görünüşü
Kumanda Panosunun önden görünüşü. Pano tasarımı başlı başına bir iş olsa da burada genel bilgi verici kullanış açısından panonun nasıl olacağı gösterilir.
5-Genel Bağlantı Görünüşleri
Sistemin geometrik olarak nereye konumlanacağı detaylı veya detaysın bir şekilde gösterilir. Çekilecek kablolar şematik olarak gösterilir.
6-Kuvvet Şeması
Yüksek voltaj/akımlı elektrik bağlantılarının gösterildiği detaylandırıldığı yer
7-Antet
Projenin adı, ne zaman çizildiği, çizerinin, müşterinin bilgileri olduğu kısım.


Kumanda Şeması:
Proje 3 fazlı beslemesi olduğu varsayılmıştır. Kumanda devresini besleyecek güç kaynağı bulunmalıdır.
Bu kumanda devremizi beslyecektir.

Kumanda devremizdeki elemanlar genelde 24V ile çalışan elemanlardır. Bu eleman ile yüksek voltajlı/akımlı devre elemanlarını elektrik araçlarını kumanda ederiz. aslında bir nevi transistör gibi çalışır.
Kumanda devresinde genel olarak kullanılan elemanlar:


e1- Minyatür kesici. Kumnada devresi için sigorta elemanı
S1- Kumanda düğmesi. Start/stop düğmesi olarak kullanılabilir. Resimde çift yollu bir düğme vardır.
R1- Röle. Yüksek voltaj/akımlı elemanları açıp kapamak için kullanılır.
D1- Zaman Rölesi. Rölenin zaman gecikmeli olanı. Çekmede gecikmeli, bırakmada gecikmeli olabilir.
KA1- Sınır Anahtarı. Konum bilgisi almak için kullanılır.(ingilizcesi: limit switch)
H1- Lamba. Uyarı, bilgi amaçlı olarak kullanılan eleman. 

Kuuvet Şeması
Kuvvet şeması yüksek voltaj/akımlı elamanları kontrol edildiği kısımdır.
Aşağıda 3 fazlı asenkron motor kontrolü için kuvvet şeması vardır.


e01- Termik Manyetik Sigorta. Motor koruma sigortasıdır.
TH1- PTC Termistör Rölesi. Motor sargılarındaki PTC motor çok ısınırsa sinyal gönderir. Rölede kontaktör ile motora giden devreyi keser.
K3- PTC Termistör Rölesinin kontrol ettiği kontaktör.
K1- Motora yol veren, çalıştıran eleman. Bobinleri kumanda devresindeki ilgili röle tarafından kumanda edilir.
K2- Motoru ters yönde döndüren kontaktör.Bobinleri kumanda devresindeki ilgili röle tarafından kumanda edilir.
M1- 3 Fazlı Asenkron Motor.
PTC- Termistör. Sıcaklık algılayıcı.




Not:Buradaki bilgi çok genel bir bilgi olup her türlü proje çiziminde uygulanmayabilir.

21 Mayıs 2012 Pazartesi

ucs1903 sürücüsünü sürme

pixel ledlerde kullanılan ucs 1903 sürücü entegresi çince dosyasına göre sürdüm.

her renk için 8 bitlik kodlama yapıyor. kaç tane pixel varsa o kadar pixel sayısı için 24 bitlik data gönderiliyor.

haberleşme spi tarzı. datayı göndermek için tabloda gösterilen sürelerde data pinini high low yapılıyor.

modix 2. versiyon

bu versiyon rgb led sürüyor.

c# kodları kodbank

dosya açma:  openFileDialog kontrolü
using System.IO;



//openFileDialog1.InitialDirectory = "c:\\" ;
openFileDialog1.FileName = "";
openFileDialog1.Filter = "Image Files|*.jpg;*.gif;*.bmp;*.png;*.jpeg|All Files|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
 // istediğin kodu yaz




dosya okuma: mesela txt dosyası okuma

using System.IO;
string klasor_adi="yemek.txt";
string tarif="";
StreamReader sr = new StreamReader( klasor_adi );
tarif = sr.ReadToEnd();
sr.Close();

ya da

private string dosya_oku()
{
   string result,input;
   result = "";
   input = "";
   try
   {
     StreamReader re = File.OpenText(Server.MapPath("başlık.txt"));
    while ((input = re.ReadLine()) != null)
    {
       result += input;
    }
   re.Close();
   }
   catch (Exception e)
  {  }
 return result;
}

dosya adı klasör okuma:
using System.IO;
string foldername = "resim";
string filePath = Server.MapPath("~\\" + foldername + "/tn"); // asp.net uygulaması ise
DirectoryInfo di = new DirectoryInfo(filePath);
FileInfo[] fi = di.GetFiles("*.jpg");

string Split: bir string objesinin bir string kriterine göre ayırmak
string ayırac="<>";
string.Split(new string[] { "ayırac" }, StringSplitOptions.None);

dosyaya yazma:
StreamWriter sw = new StreamWriter("asd.htm");
sw.Write("deneme");
sw.Flush();
sw.Close();

tarih saat okuma:
//---yıl
string yil = DateTime.Today.Year.ToString();
//---ay
string ay = DateTime.Now.Month.ToString();
if (Convert.ToInt16(ay) < 10)
ay = "0" + ay;
//---gun
string gun = DateTime.Now.Day.ToString();
if (Convert.ToInt16(gun) < 10)
gun = "0" + gun;
//---saat
string saat = DateTime.Now.Hour.ToString();
if (Convert.ToInt16(saat) < 10)
saat = "0" + saat;
string dakika = DateTime.Now.Minute.ToString();
if (Convert.ToInt16( dakika ) < 10)
dakika = "0" + dakika ;
string saniye = DateTime.Now.Second.ToString();
if (Convert.ToInt16( saniye ) < 10)
saniye = "0" + saniye ;
//---------------------------

excel dosyası okuma:
using System.Data.OleDb;

protected void read_excel(string sheet)
{

string connString = "";// ConfigurationManager.ConnectionStrings["xls"].ConnectionString;
connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("~\\excel\\ref.xls") + ";" +
"Extended Properties=Excel 8.0";
// Create the connection object
OleDbConnection oledbConn = new OleDbConnection(connString);
try
{
// Open connection
oledbConn.Open();

// Create OleDbCommand object and select data from worksheet Sheet1
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + sheet + "$]", oledbConn);

// Create new OleDbDataAdapter
OleDbDataAdapter oleda = new OleDbDataAdapter();

oleda.SelectCommand = cmd;

// Create a DataSet which will hold the data extracted from the worksheet.
DataSet ds = new DataSet();

// Fill the DataSet from the data extracted from the worksheet.
oleda.Fill(ds);

// Bind the data to the GridView
DataGrid1.DataSource = ds.Tables[0].DefaultView;
DataGrid1.DataBind();
}
catch (Exception ex)
{
//Label1.Text = ex.ToString();
}
}

rastgele sayı karakter oluşturma:


private int RandomNumber(int min, int max)   // rastgele sayı
{
Random random = new Random();
return random.Next(min, max);
}

private string RandomString(int size, bool lowerCase)    // rastgele karakter
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
if (lowerCase)
return builder.ToString().ToLower();
return builder.ToString();
}

resim dosyasını yeniden boyutlandırmak:
private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;

float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;

nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;

int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);

Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();

return (Image)b;
}

resmi siyah beyaz hale getirmek:
private void im2bw()
{

try
{
Bitmap img = new Bitmap(pictureBox1.Image);
int ii = img.Width;

Color c;
for (int i = 0; i < img.Width; i++)
{
if (i % (ii / 10) == 0)
  //progressBar1.PerformStep();
for (int j = 0; j < img.Height; j++)
{
c = img.GetPixel(i, j);
int r = 0;
r = Convert.ToInt16(c.R);
int g = 0;
g = Convert.ToInt16(c.G);
int b = 0;
b = Convert.ToInt16(c.B);
int ans = (r + g + b) / 3;

  //hist[ans]++;    // histogram bilgisi için array kullanabilirsiniz.

  if (ans > 127)   // bu değeri histograma göre değiştirebilirsiniz
{
r = 255;
g = 255;
b = 255;
bits[i, j] = 1;
}
else
{
r = 0;
g = 0;
b = 0;
bits[i, j] = 0;
}

c = Color.FromArgb(r, g, b);
img.SetPixel(i, j, c);
}
}
  //pictureBox2.Image = img;
//MessageBox.Show("tamamlandı");
}
catch (Exception ex) { MessageBox.Show(ex.Message); }

}

resmin histogramını çıkarmak:
private void draw_hist()
{
Bitmap DArea = new Bitmap(pictureBox3.Width, pictureBox3.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
//clear_drawing2(DArea);
Graphics xGraph;

xGraph = Graphics.FromImage(DArea);

// Create solid brush.
Pen pen = new Pen(Color.Lime);
int x_scale = 1;
int y_scale = 1;
int hayt = pictureBox3.Height;
for (int i = 0; i < hist.Length; i++)
{
Point coord1 = new Point(i / x_scale, hayt - 0);
Point coord2 = new Point(i / x_scale, hayt - (hist[i] / y_scale));
xGraph.DrawLine(pen, coord1, coord2);
}
pictureBox3.Image = DArea;
xGraph.Dispose();
this.Invalidate();

}

grafik çizdirme:
private void drawGraph_log(int val)
{
Graphics g = pb1.CreateGraphics();
Pen p = new Pen(Color.LightGreen, 1);

if (graph_count == pb1.Width)
{
graph_count = 0;
g.Clear(Color.Black);
}
int ratio = Convert.ToInt32(nud_max_bat.Value * 100);
int x = 0;
int y = 0;
y = pb1.Height - (val * pb1.Height / ratio);

g.DrawLine(p, graph_count, pb1.Height, graph_count, y);

graph_count++;
g.Dispose();
this.Invalidate();
}