
PIC16F877 bilgisayar kontrollü ev otomasyonu vbasic
25.03.2021 tarihinde güncellenen 03.07.2009 tarihinde yayımlanan PIC16F877 bilgisayar kontrollü ev otomasyonu vbasic ile 2758 yazısı var. Yazar gevv
Temel ev otomasyonu projesi örnek olabilecek tüm kaynakları ile INFINITY tarafında picproje forumlarında paylaşılmış yazılım ccs-c ile hazırlanmış kaynak .c .h ccsc kodları isis simülasyon dosyası ve visual basic arayüz kontrol programının .vbp, .frm, .vbw kodları bulunuyor pic ve bilgisayar ile haberleşme max232 kullanılarak seri port üzerinden sağlanmış.
Program ile pic çıkışlarında ki ledler kumanda eliyor led durumları görülebiliyor çıkışlar güçlendirilerek farklı elemanlar (röle,triyak,tristör vb.) kontrol edilebilir lcd üzerinde çalışma bilgileri görüntüleniyor.
Hazırlayanlar: Yaşar BİNGÖL İsa SARI
VISUAL BASIC KODLARI
VERSION 5.00 Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX" Begin VB.Form Form1 Caption = "© Yaşar Bingöl - İsa Sarı" ClientHeight = 3240 ClientLeft = 60 ClientTop = 450 ClientWidth = 7155 DrawStyle = 5 'Transparent LinkTopic = "Form1" ScaleHeight = 3240 ScaleWidth = 7155 StartUpPosition = 3 'Windows Default Begin VB.CommandButton Command10 BackColor = &H000000FF& Caption = "PORT Aç/Kapa" BeginProperty Font Name = "Comic Sans MS" Size = 12 Charset = 162 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 855 Left = 5760 Style = 1 'Graphical TabIndex = 11 Top = 2040 Width = 1215 End Begin VB.CommandButton Command7 BackColor = &H000000FF& Caption = "Led 7 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 1440 Style = 1 'Graphical TabIndex = 9 Top = 2160 Width = 1215 End Begin VB.CommandButton Command8 BackColor = &H000000FF& Caption = "Led 8 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 1440 Style = 1 'Graphical TabIndex = 8 Top = 2640 Width = 1215 End Begin VB.CommandButton Command6 BackColor = &H000000FF& Caption = "Led 6 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 1440 Style = 1 'Graphical TabIndex = 7 Top = 1680 Width = 1215 End Begin VB.CommandButton Command4 BackColor = &H000000FF& Caption = "Led 4 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 120 Style = 1 'Graphical TabIndex = 6 Top = 2640 Width = 1215 End Begin VB.CommandButton Command2 BackColor = &H000000FF& Caption = "Led 2 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 120 Style = 1 'Graphical TabIndex = 5 Top = 1680 Width = 1215 End Begin VB.TextBox Text1 BeginProperty Font Name = "Comic Sans MS" Size = 14.25 Charset = 162 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 615 Left = 3840 Locked = -1 'True TabIndex = 4 Top = 1080 Width = 2895 End Begin VB.CommandButton Command5 BackColor = &H000000FF& Caption = "Led 5 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 1440 Style = 1 'Graphical TabIndex = 3 Top = 1200 Width = 1215 End Begin VB.CommandButton Command3 BackColor = &H000000FF& Caption = "Led 3 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 120 Style = 1 'Graphical TabIndex = 2 Top = 2160 Width = 1215 End Begin VB.CommandButton Command1 BackColor = &H000000FF& Caption = "Led 1 Aç" Enabled = 0 'False BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 120 Style = 1 'Graphical TabIndex = 1 Top = 1200 Width = 1215 End Begin MSCommLib.MSComm MSComm1 Left = 240 Top = 0 _ExtentX = 1005 _ExtentY = 1005 _Version = 393216 DTREnable = -1 'True End Begin VB.Label Label2 Caption = "Durum:" BeginProperty Font Name = "Comic Sans MS" Size = 9.75 Charset = 162 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 2880 TabIndex = 10 Top = 1200 Width = 735 End Begin VB.Label Label1 Caption = " Bilgisayar Kontrollü Ev Otomasyon Sistemi" BeginProperty Font Name = "Haettenschweiler" Size = 24 Charset = 162 Weight = 500 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 495 Left = 720 TabIndex = 0 Top = 360 Width = 6855 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim b, c, d, e, f, g, h, i, j As Integer Dim deger As Integer Dim data As String Dim a As Integer Private Sub Command1_Click() Text1.Text = "1.led yandi" If b = 0 Then MSComm1.Output = "1" Command1.Caption = "Led 1 Kapat" Command1.BackColor = vbGreen b = 1 Else Command1.Caption = "Led 1 Aç" Command1.BackColor = vbRed Text1.Text = "1.led söndü" MSComm1.Output = "2" b = 0 End If End Sub Private Sub Command10_Click() Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Text1.Text = "Port Açıldı" If j = 0 Then Command10.Caption = "Port Açık" Command10.BackColor = vbGreen MSComm1.PortOpen = True MSComm1.Settings = "9600,N,8,1" MSComm1.Output = "A" j = 1 Else Command10.Caption = "Port Kapalı" Command10.BackColor = vbRed Text1.Text = "Port Kapandı" MSComm1.Output = "B" MSComm1.PortOpen = False j = 0 End If End Sub Private Sub Command2_Click() Text1.Text = "2.led yandi" If c = 0 Then Command2.Caption = "Led 2 Kapat" Command2.BackColor = vbGreen MSComm1.Output = "3" c = 1 Else Command2.Caption = "Led 2 Aç" Command2.BackColor = vbRed Text1.Text = "2.led söndü" MSComm1.Output = "4" c = 0 End If End Sub Private Sub Command3_Click() Text1.Text = "3.led yandi" If d = 0 Then Command3.Caption = "Led 3 Kapat" Command3.BackColor = vbGreen MSComm1.Output = "5" d = 1 Else Command3.Caption = "Led 3 Aç" Command3.BackColor = vbRed Text1.Text = "3.led söndü" MSComm1.Output = "6" d = 0 End If End Sub Private Sub Command4_Click() Text1.Text = "4.led yandi" If e = 0 Then Command4.Caption = "Led 4 Kapat" Command4.BackColor = vbGreen MSComm1.Output = "7" e = 1 Else Command4.Caption = "Led 4 Aç" Command4.BackColor = vbRed Text1.Text = "4.led söndü" MSComm1.Output = "8" e = 0 End If End Sub Private Sub Command5_Click() Text1.Text = "5.led yandi" If f = 0 Then Command5.Caption = "Led 5 Kapat" Command5.BackColor = vbGreen MSComm1.Output = "j" f = 1 Else Command5.Caption = "Led 5 Aç" Command5.BackColor = vbRed Text1.Text = "5.led söndü" MSComm1.Output = "k" f = 0 End If End Sub Private Sub Command6_Click() Text1.Text = "6.led yandi" If g = 0 Then Command6.Caption = "Led 6 Kapat" Command6.BackColor = vbGreen MSComm1.Output = "l" g = 1 Else Command6.Caption = "Led 6 Aç" Command6.BackColor = vbRed Text1.Text = "6.led söndü" MSComm1.Output = "m" g = 0 End If End Sub Private Sub Command7_Click() Text1.Text = "7.led yandi" If h = 0 Then Command7.Caption = "Led 7 Kapat" Command7.BackColor = vbGreen MSComm1.Output = "n" h = 1 Else Command7.Caption = "Led 7 Aç" Command7.BackColor = vbRed Text1.Text = "7.led söndü" MSComm1.Output = "o" h = 0 End If End Sub Private Sub Command8_Click() If i = 0 Then Command8.Caption = "Led 8 Kapat" Text1.Text = "8.led yandi" Command8.BackColor = vbGreen MSComm1.Output = "p" i = 1 Else Command8.Caption = "Led 8 Aç" Command8.BackColor = vbRed Text1.Text = "8.led söndü" MSComm1.Output = "q" i = 0 End If End Sub Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) End Sub Private Sub Label3_Click() End Sub
CCS PROGRAMINDA YAZILMIŞ C KODLARI
#include "C:\Documents and Settings\ASUS\Desktop\16F877\1\PROJESON.h" #use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7, UART1) #include <lcd.c> #include <prog1.h> #include <prog2.h> #include <prog3.h> int a,b,c,d; void main() { asd: lcd_init(); basla: delay_ms(200); lcd_gotoxy(1,1); printf(lcd_putc," <<MENU>> "); lcd_gotoxy(1,2); printf(lcd_putc,"<<geri "); lcd_gotoxy(10,2); printf(lcd_putc,"ileri>>"); for(;;) { a=input(pin_A0); //Butonlar Tanımlandı-Sağ b=input(pin_A1); //Sol c=input(pin_A2); //Ac d=input(pin_A3); //Kapa //Seri portta veri varmi kontrol ediliyor if(kbhit()) { g = getc(); } if(g=='A') { lcd_init(); lcd_gotoxy(1,1); printf(lcd_putc,"PC BAGLANTISI"); Delay_ms(20); lcd_gotoxy(5,2); printf(lcd_putc,"HAZIR"); for(;;) { a=input(pin_A0); //Butonlar Tanımlandı-Sağ b=input(pin_A1); //Sol c=input(pin_A2); //Ac d=input(pin_A3); //Kapa if(kbhit()) { g = getc(); } if(g=='B') { lcd_gotoxy(1,1); printf(lcd_putc,"PC BAGLANTISI "); Delay_ms(20); lcd_gotoxy(1,2); printf(lcd_putc," KESILDI "); delay_ms(2000); goto asd; } pccon(); if(a==0||b==0||c==0||d==0) { break; } } } if (a==0) { m=m+1; if(m>8) { m=8; } menua(); } if (b==0) { m=m-1; if(m<1) { m=1; } menub(); } if(k==1) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led1 Acildi >"); output_bit( PIN_B0, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led1 Kapatildi>"); output_bit( PIN_B0, 0); delay_ms(2000); k=0; goto basla; } } if(k==2) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led2 Acildi >"); output_bit( PIN_B1, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led2 Kapatildi>"); output_bit( PIN_B1, 0); delay_ms(2000); k=0; goto basla; } } if(k==3) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led3 Acildi >"); output_bit( PIN_B2, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led3 Kapatildi>"); output_bit( PIN_B2, 0); delay_ms(2000); k=0; goto basla; } } if(k==4) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led4 Acildi >"); output_bit( PIN_B3, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led4 Kapatildi>"); output_bit( PIN_B3, 0); delay_ms(2000); k=0; goto basla; } } if(k==5) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led5 Acildi >"); output_bit( PIN_B4, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led5 Kapatildi>"); output_bit( PIN_B4, 0); delay_ms(2000); k=0; goto basla; } } if(k==6) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led6 Acildi >"); output_bit( PIN_B5, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led6 Kapatildi>"); output_bit( PIN_B5, 0); delay_ms(2000); k=0; goto basla; } } if(k==7) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led7 Acildi >"); output_bit( PIN_B6, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led7 Kapatildi>"); output_bit( PIN_B6, 0); delay_ms(2000); k=0; goto basla; } } if(k==8) { if(c==0) { lcd_gotoxy(1,2); printf(lcd_putc,"< Led8 Acildi >"); output_bit( PIN_B7, 1); delay_ms(2000); k=0; m=0; goto basla; } if(d==0) { lcd_gotoxy(1,2); printf(lcd_putc,"<Led8 Kapatildi>"); output_bit( PIN_B7, 0); delay_ms(2000); k=0; goto basla; } } setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(FALSE); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); } }
tüm dosyalar için alternatif Dosya indirme LINK listesi (TXT formatında) link-7355.zip şifre-pass: 320volt.com
arkadaşım paylaşım için teşekkürler. ben hobi olarak bu tarz devreler yapmak istiyorum. Çok fazla elektronik bilgim yok. bu tarz ev otomasyon devreleri inceledim fakat 20 – 30 kadar yada daha fazla cihazı nasıl kontrol edeceğimi hala çözemedim. bu devrede ile 8 led kontrol edilmiş ve durumları döndüğrülmüş. Bu devreden nasıl daha fazla led (yada cihaz) kontrol edebilirim. Bu istediğime göre bir devre önerebilirmisin ?
c # ile de yapabilir miyiz bu devreyi
evet yazabilirsiniz c# ile
Kardeş bende amatör olarak bu işlerle uğraşıyorum senin 20-30 tane cihazı kontrol edebilmen için ilk önce portlardan çıkan yaklaşık 5 voltluk enerjiyi bir ara devre ile 12 volta yükseltmelisin daha sonra bu devre ile röleyi tetikleyip istediğin cihazı çalıştırabilirsin 🙂
ya burdaki printf,#include komutları mikroc pro da işe yararmı yani kullanabilirmiyim aynı şekilde? bu;
printf(lcd_putc,”HAZIR”); – if(kbhit()) – g = getc(); – if(g==’A’) – if(g==’B’)
goto asd;
pccon();
break;
menua();
output_bit( PIN_B4, 1);
goto basla;
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
bu komutların anlamlarını karşılarına yazarmısınız ne demek yani mikro c pro ya çeviricemde programı. burdaki tüm komutları bilmem gerekiyor,ne iş yaptığını.
kolay gelsin çok güzel bir çalışma peki bunu serial to usb portla çalıştıra bilirmiyiz eğer çalıçtıra bilirsek kodları nasıl olur ?