avatar_ete

PC to PIC haberleşmesi

Başlatan ete, 27 Kasım 2014, 10:35:30

ete

PC ile Pic haberleşmesi yapacak arkadaşların hemen hepsi ortada dolaşan örneklerin Pic to Pic şeklinde iki pic arasında olduğunu belirterek PC ile Pic arasında örnek olmadığından yakınmaktadırlar. Halbuki iki sistem arasında program açısından hiç bir fark yoktur. Fark yalnızca PC ile PIC arasındaki lojik seviye düzeltici (MAX232) dedir. Zira PC de yer alan RS232 portunda lojik seviyeler şöyledir. HIGH=-10V (bu laptoplarda -7V civarına kadar düşürülmüştür) , LOW=+10V (laptoplarda +7V civarında olabilir) Buna karşılık TTL dediğimiz sistem üzerinden çalışan PIC tarafında ise lojik seviyeler şöyledir. HIGH=+5V , LOW=0V.
Şimdi PCnin -10V olan HIGH sinyalini Pic in anlayabilmesi için onu +5V ta çevirmek gerekir. Benzer şekilde PC nin +10V olan LOW sinyalinide Pic in anlayabilmesi için onu 0V ta indirgemek gerekir. İşte bütün bu çevirimleri Max232 entegresi yapmaktadır.
Bu yüzden bu entegreyi kullanıyoruz. Bu entegre +5V ile beslenerek içinde yer alan voltaj pompaları vasıtası ile hem +10V hemde 0 V ve ardından -10V voltajlarını üretir. Gelen seviyelere görede bunları çevirir.
Entegrenin Tin (TTL in yani Picden Gelen sinyalin girişi) ve Tout (yani Picden gelen sinyalin RS232 ye çevrilmiş halinin çıkışı) ucu olduğu gibi Rin (RS232 giriş yani PC den gelen sinyalin giriş ucu) ve aynı şekilde  Rout (Yani RS232 nin TTL e çevrilmiş halinin) çıkışı vardır.  Böylece Picden gelen Tin ucu Tout ucundan PC ye uygun hale getirilerek alınır. Benzer şekilde PC den gelen Rin Ucu,Rout ucundan Pic in anlayacağı şekle dönüştürülerek alınmış olur.
İlişikteki devre ve programda bu sistem çalıştırılmaktadır. PC den Virtual Terminal aracılığı ile yollanan;
- ETE1 bilgisi pic tarafında bir ledi yakmakta aynı veri tekrar geldiğinde ise yanmış led sönmektedir.
- ETEA bilgisi geldiğinde ise diğer led yanmakta ve bilgi tekrarlanırsa aynı led sönmektedir.
Bir konuya daha değinmek isterim.  Virtual terminalde PC tarafını simule edebilmek için sinyalin INVERTED halini kullanıyoruz.
Zira PC den gelen -10V luk (HIGH) seviye MAX232 de ters çevrilerek +5V ta çevrilmektedir. Bu nedenle terminalden gelen data inverted kullanılmalıdır. Gerçektede bu iş böyle olmaktadır.

Ete


sonmoikan

Vermiş olduğun bilgilerden dolayı teşekkür ederim.
ABDULLAH

Hattuşa

ete hocam vermiş olduğunuz bilgiler için tşk ederim. uzun zamandır yapmak istediğim ama cesaret edemediğim bir konu, PIC to PIC olarak çok kullandım ama PIC to PC olarak hiç deneme yapmamıştım. bu elimde güzel bir kaynak olacak inş.
bu arada hocam isis simülasyonda simülasyonu beceremedim. visual terminale yazı yazamıyorum. bişeyler mi kaçırıyorum

ete

Devreyi çalıştırıp açılan Virtual Termina penceresine sağ tıklarsanız çıkan ekranda ,
Echo Typed Characters seçeneğine tıklayıp seçili hale getirin. Ancak bu şekilde Terminalde yazdıklarınızı görebilirsiniz.

Ete

Hattuşa

Alıntı yapılan: ete - 27 Kasım 2014, 13:49:32
Devreyi çalıştırıp açılan Virtual Termina penceresine sağ tıklarsanız çıkan ekranda ,
Echo Typed Characters seçeneğine tıklayıp seçili hale getirin. Ancak bu şekilde Terminalde yazdıklarınızı görebilirsiniz.

Ete


tşk ederim usta şimdi oldu...

Hattuşa

@ete hocam;
PIC tı PC çalışmasını gerçekte yapabilmek için devre kurmayı düşünüyorum. devreyi kurduğumda gelen dataları PC de görebilmem için hangi programı kullanmalıyım.

ete

Hyper Terminal veya Virtüal terminal gibi şeyler arattır nette bulursun bir şeyler.
Ben şimdiye kadar hiç böyle bir şey kullanmadım. lazım olunca hep bir ara yüz programı yazdım yada yazdırdım.

Ete

kemald78

#7
ben bu aralar pic den pc veya pc den pic e  bilgi almala uğraşıyorum ve birazcık yol kat ettim dosyalar ekte
içlerinde videolarda var

pic to pc
http://logolar.org/pic%20to%20pc.rar

pc to pic

http://logolar.org/pc%20to%20pic.rar

gergy

pic to pc kısmında hex klasöründe basic kodu bulunmuyor?

ufuk0106

#9
Geçmişte çalışmıştım. Pic to PC iletişimi üzerine. Visual basic kodlarını paylaşayım, belki farklı bir bakış açısı olur.
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Uzaktan Winamp Kontrolü"
   ClientHeight    =   1320
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4080
   Icon            =   "seri.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   1320
   ScaleWidth      =   4080
   StartUpPosition =   2  'CenterScreen
   Begin MSComctlLib.StatusBar StatusBar1 
      Align           =   2  'Align Bottom
      Height          =   285
      Left            =   0
      TabIndex        =   3
      Top             =   1035
      Width           =   4080
      _ExtentX        =   7197
      _ExtentY        =   503
      _Version        =   393216
      BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} 
         NumPanels       =   4
         BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Alignment       =   1
            Object.Width           =   1324
            MinWidth        =   1324
            Picture         =   "seri.frx":0442
         EndProperty
         BeginProperty Panel2 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Style           =   6
            Alignment       =   1
            Object.Width           =   1889
            MinWidth        =   1889
            TextSave        =   "11.02.2005"
         EndProperty
         BeginProperty Panel3 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Style           =   5
            Alignment       =   1
            Object.Width           =   1323
            MinWidth        =   1323
            TextSave        =   "22:40"
         EndProperty
         BeginProperty Panel4 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
            Alignment       =   1
            Object.Width           =   3705
            MinWidth        =   3705
            Text            =   "Version: U.K_7.0"
            TextSave        =   "Version: U.K_7.0"
         EndProperty
      EndProperty
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
   End
   Begin VB.CommandButton CmdGat 
      Caption         =   "&Gözat"
      DisabledPicture =   "seri.frx":0896
      DownPicture     =   "seri.frx":0CD8
      DragIcon        =   "seri.frx":111A
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   -1  'True
         Strikethrough   =   0   'False
      EndProperty
      Height          =   330
      Left            =   3150
      Picture         =   "seri.frx":155C
      TabIndex        =   2
      Top             =   675
      Width           =   855
   End
   Begin MSComDlg.CommonDialog CommonDialog1 
      Left            =   120
      Top             =   600
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
      Filter          =   """WinAmp.exe Dosyası, Bak yanlış olmasın |*.exe|"
   End
   Begin MSComctlLib.ImageList ImageList1 
      Left            =   120
      Top             =   600
      _ExtentX        =   1005
      _ExtentY        =   1005
      BackColor       =   -2147483625
      ImageWidth      =   16
      ImageHeight     =   16
      MaskColor       =   12632256
      _Version        =   393216
      BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
         NumListImages   =   5
         BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "seri.frx":199E
            Key             =   ""
         EndProperty
         BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "seri.frx":1DF2
            Key             =   ""
         EndProperty
         BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "seri.frx":2246
            Key             =   ""
         EndProperty
         BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "seri.frx":269E
            Key             =   ""
         EndProperty
         BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "seri.frx":316A
            Key             =   ""
         EndProperty
      EndProperty
   End
   Begin MSComctlLib.Toolbar Toolbar1 
      Align           =   1  'Align Top
      Height          =   570
      Left            =   0
      TabIndex        =   1
      Top             =   0
      Width           =   4080
      _ExtentX        =   7197
      _ExtentY        =   1005
      ButtonWidth     =   1773
      ButtonHeight    =   953
      Style           =   1
      ImageList       =   "ImageList1"
      HotImageList    =   "ImageList1"
      _Version        =   393216
      BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
         NumButtons      =   4
         BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "&Yardım"
            Description     =   "WinAmp Prog. Açılır"
            ImageIndex      =   5
            Object.Width           =   1e-4
         EndProperty
         BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "&Hakkında"
            Description     =   "Şarkı Çalar"
            ImageIndex      =   4
         EndProperty
         BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "&Çıkış"
            ImageIndex      =   3
         EndProperty
         BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
            Caption         =   "&PC'yi Kapat"
            ImageIndex      =   2
         EndProperty
      EndProperty
      BorderStyle     =   1
      MousePointer    =   2
      OLEDropMode     =   1
   End
   Begin MSCommLib.MSComm MSComm1 
      Left            =   3420
      Top             =   600
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   0   'False
      InBufferSize    =   128
      InputLen        =   1
      OutBufferSize   =   128
      ParityReplace   =   49
      RThreshold      =   1
      BaudRate        =   2400
      SThreshold      =   1
   End
   Begin VB.TextBox Text1 
      Height          =   285
      Left            =   45
      TabIndex        =   0
      Top             =   720
      Width           =   3060
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim a As Variant
Dim x As Variant
Dim Datain As String

Private Sub CmdGat_Click()
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
End Sub

Private Sub Form_Load()
    MSComm1.CommPort = 1
    MSComm1.Settings = "2400,N,8,1"
    MSComm1.PortOpen = True
    MSComm1.DTREnable = True
    MSComm1.RTSEnable = True
      
End Sub

Private Sub MSComm1_OnComm()
    Dim b As Byte
    Dim q As Integer
    q = Year(Now)
    If q = 2006 Then
    MsgBox "Kullanım Süreniz dolmuştur! Lisans sahibine müracat ediniz:)"
    Exit Sub
    End If
    
    If Text1.Text = "" Then
        MsgBox "Winamp.exe'nin yerini Gözat düğmesini kullanarak belirtiniz...", vbSystemModal, "ilk önce yol göster..."
        Exit Sub
    End If
    
    Select Case MSComm1.CommEvent
       Case comEvReceive
            Datain = MSComm1.Input
    End Select

    Select Case Datain
  
  ''''''''''''
        Case 0
    On Local Error GoTo browse
        x = Shell(Text1.Text, 1)
        AppActivate x
    Exit Sub
browse:
       'x = Shell("C:\Program Files\Winamp\winamp.exe", 1)
        x = Shell(Text1.Text, 1)
  
  ''''''''''''
        Case 1
    On Local Error GoTo play
        AppActivate x
        SendKeys "x"
    Exit Sub
play:
        x = Shell(Text1.Text, 1)
        SendKeys "x"

''''''''''''
        Case 2
        On Local Error GoTo sonraki
        AppActivate x
        SendKeys "b"
    Exit Sub
sonraki:
        x = Shell(Text1.Text, 1)
        SendKeys "b"
  
''''''''''''
        Case 3
    On Local Error GoTo ses_art
        AppActivate x
        SendKeys "{UP}"
        
    Exit Sub
ses_art:
        
        SendKeys "{UP}"
  
''''''''''''
        Case 4
    On Local Error GoTo ses_azalt
        AppActivate x
        SendKeys "{down}"
    Exit Sub
ses_azalt:
        
        SendKeys "{down}"

''''''''''''
        Case 5
     On Local Error GoTo dur
        AppActivate x
        SendKeys "V"
    Exit Sub
dur:
        x = Shell(Text1.Text, 1)
        SendKeys "V"
    
''''''''''''
        Case 6
    On Local Error GoTo kapat
        AppActivate x
        SendKeys "%f4x"
    Exit Sub
kapat:
        
        SendKeys "%f4x"
         
'''''''''''
        Case 7
        On Error GoTo hata
        a = Shell("C:\WINDOWS\RUNDLL32.EXE user,exitwindows", 1)
        Exit Sub
hata:
        If Err.Number = 53 Then
            a = MsgBox("Dosya bulunamadi.", , "Hata")
End If
     
''''''''''''
        Case 8
        

''''''''''''
        Case 9
         
       

''''''''''''
        Case 12 '1-
        
''''''''''''
        Case 13 '2-
        
''''''''''''
        Case 16 'Prog +
        
''''''''''''
        Case 17 'Prog -
        
''''''''''''
        Case 18 'vol +
        
''''''''''''
        Case 19 'Vol -
        
''''''''''''
        Case 20 ' Mute
        
''''''''''''
        Case 21 'Power
        
''''''''''''
        Case 22 'Normal
        
''''''''''''
        Case 37 'Tv-Video
        
''''''''''''
        Case 54 'Sleep
        
''''''''''''
        Case 58 'Display
        
''''''''''''
        Case 116 '+
        
''''''''''''
        Case 117 '-
        
''''''''''''
        Case 124 'select
                
    End Select
MSComm1.InBufferCount = 0

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    
    Select Case Button.Index
        
        Case 1:
            Form1.Visible = False
            Dialog.Visible = True
        
        Case 2:
            Form1.Visible = False
            frmAbout.Visible = True
          
        Case 3:
            Unload Me
        
        Case 4:
        On Error GoTo hata
            a = Shell("C:\WINDOWS\RUNDLL32.EXE user,exitwindows", 1)
            Exit Sub
hata:
            If Err.Number = 53 Then
            a = MsgBox("Dosya bulunamadi.", , "Hata")
End If
    End Select
        
        
End Sub

BİR AĞAÇ GİBİ TEK VE HÜR VE BİR ORMAN GİBİ KARDEŞÇESİNE.

ufuk0106

#10
Creative uzaktan kumanda ile winamp, Powerpoint kontrolü prejesiydi. Bu da Pic basic kodları. Uzun zaman oldu:((

    Header        Var    Word        
    Packet        Var    Word        
    P_Val        Var    Byte        
    IR_But        Var    Byte        
    IR_Dev        Var    Byte        
    IR_Sensor    Var    PortA.2        
    Bitcnt      var byte
    VI          var PortA.3   
    Baund       Con 16780
    i           var byte
    w32         var byte
    w31         var byte
    w30         var byte
    w29         var byte
    w28         var byte
    w27         var byte
    w26         var byte
    w25         var byte                        
    w24         var byte                                
 trisa=%00000100
 PortB=0
 PortA=0 
Again:    Gosub IRIN                        
                  
        Goto Again                
    
 IRIN:    IR_Dev=255:IR_But=255
        Pulsin PortA.2,0,Header            
        If Header < 850 then Return                     
        If Header > 950 then Return  
        
        
        for i=0 to 23
        Pulsin PortA.2,1,P_Val
        next i
        
             
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w24=1
        else
        w24=0
        endif
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w25=1
         
        else
        w25=0
        endif
        
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w26=1 
        else
        w26=0
        endif
        
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w27=1 
        else
        w27=0
        endif
        
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w28=1
        else
        w28=0
        endif
        
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w29=1 
        else
        w29=0
        endif
        
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w30=1 
        else
        w30=0
        
        endif
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 105 then
        w31=1 
        else
        w31=0
        
        endif
        
        
        Pulsin PortA.2,1,P_Val
        if P_Val>= 100 then
        w32=1 
        else
        w32=0
        endif

'         Serout2 VI,Baund,["1"]'2
        
        if w31=0 and (w30=1 and w29=1) and (w28=1 and w27=0) then'7
        high PortB.0
        Pause 50
        Low PortB.0
        endif

  
        if w31=1 and (w30=0 and w29=1) and (w28=1 and w27=0) then'8
        high PortB.1
        Pause 50
        Low PortB.1
        ENDIF

             
        if w31=0 and (w30=0 and w29=1) and (w28=1 and w27=0) then'9
        high PortB.2
        Pause 50
        Low PortB.2
        Endif
        
        if w31=0 and (w30=1 and w29=0) and (w28=0 and w27=1) then'4
        high PortB.3
        Pause 50
        Low PortB.3
        ENDIF

        if w31=1 and (w30=0 and w29=0) and (w28=0 and w27=1)  then'5
        high PortB.4
        Pause 50
        Low PortB.4
        ENDIF

        if w31=0 and (w30=0 and w29=0) and (w28=0 and w27=1 ) then'6
        high PortB.5
        Pause 50
        Low PortB.5
        ENDIF

        if w31=0 and (w30=1 and w29=1) and (w28=0 and w27=1) then'1
        Serout2 VI,Baund,["0"]' 1 
        ENDIF


        if w31=1 and (w30=0 and w29=1) and (w28=0 and w27=1) then'2
        high PortB.7
        Pause 50
        Low PortB.7
        ENDIF
        
        if w31=0 and (w30=0 and w29=1) and (w28=0 and w27=1) then'3
        high PortB.7
        high PortB.0
        Pause 50
        Low PortB.7
        low PortB.0
        ENDIF

                 
        if w31=0 and (w30=1 and w29=1) and (w28=1 and w27=1) then'duraklat
        high PortB.7
        high PortB.1
        Pause 50
        Low PortB.7
        low PortB.1
        ENDIF
 '*********************************************************** 
        if w31=1 and (w30=0 and w29=1) and (w28=1 and w27=1) then'duraklat
        high PortB.7
        high PortB.2
        Pause 50
        Low PortB.7
        low PortB.2
        ENDIF






'        if w24=1 then'
'        high PortB.1
'        high PortB.2
'        Pause 50
'        Low PortB.1
'        low PortB.2
'        ENDIF
        
        Return




'        if w32=1 and (w31=1 and w30=1) and w29=0 then' Mute
'        high PortB.5
'        Pause 50
'        Low PortB.5
'        ENDIF
   
'        if w30=1 and (w29=0 and w28=1) and w27=1 then'
'        high PortB.7
'        Pause 50
'        Low PortB.7
'        ENDIF
                    
BİR AĞAÇ GİBİ TEK VE HÜR VE BİR ORMAN GİBİ KARDEŞÇESİNE.

parametre

Alıntı yapılan: kemald78 - 27 Mart 2015, 11:56:21ben bu aralar pic den pc veya pc den pic e  bilgi almala uğraşıyorum ve birazcık yol kat ettim dosyalar ekte
içlerinde videolarda var

pic to pc
http://logolar.org/pic%20to%20pc.rar

pc to pic

http://logolar.org/pc%20to%20pic.rar
sisteme erisilemiyor

Powered by EzPortal