Thông báo

Collapse
No announcement yet.

giúp giao tiếp pc và avr với mọi người

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp giao tiếp pc và avr với mọi người

    số là em đang làm đề tài về cái tưới cây có giao tiếp rs-232, giờ thì dùng visual basic truyền lệnh đk thì được rồi mà truyền nhiệt độ lên pc thì chịu. mấy ngày nay rồi cắm mạch test mãi chưa được. bác nào giúp em sai chổ nào mà không đc với (riêng em nghĩ vb sai vì cái sự kiện oncom em chưa rành lắm) hoặc có cái link nào tìm giùm em với(em đã lục kĩ trong diễn đàn mà chịu)...
    code trong codevision thế này:
    Code:
     
           for(i=0;i<100;i++)     // lap chong nhieu
           {
    
             n = adc_data[0]; // doc adc
             vin = (float)n*5/256;  // doc dien ap ngo vao
             t = vin*100; // tinh nhiet t kieu float
             
             itoa(t,string); //chuyen t sang chuoi string, co khai bao mot bien char string[100]; phia tren
             puts(string); // put len pc, co dung putchar(string) nhung van the
             delay_ms(500); // nữa giay put mot lan
    
    
             }
    code vb, trong sự kiện oncom thôi nhá các bác.

    Code:
    Private Sub MSComm1_OnComm()
    
    If MSComm1.CommEvent = comEvReceive Then
    'MSComm1.InputLen = 1 'chuan bi bo dem
    
    Dim nhietdo As String
    
    nhietdo = MSComm1.Input
    txtnhietdo.Text = nhietdo 'txtnhietdo là một text box hiển thị nhiệt độ
    lbt.Caption = Chr(nhietdo) ' đã sử dụng một cái label để kiểm tra có hiện cái gì không mà vẫn vậy dù đã viết val(nhietdo)
    
    End If
    
    
    /////code em khai báo comport trong vb
    
    Private Sub Form_Load()
    
    lbtrangthai.Caption = "KET NOI COM"
    MSComm1.CommPort = 11
    MSComm1.Settings = "9600,n,8,1"
    MSComm1.PortOpen = True
    'lbtrangthai.Caption = "DA KET NOI"
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
    'btketnoi.Caption = "NGAT"
    End Sub
    End Sub

    mong mọi người tìm giùm em cái sai với, thầy còn bắt em chuyển các mạch con 232 sang 485 mà 232 chưa xong nữa...

  • #2
    Thế trên vb nó hiển thị thế nào. Cái
    Dim nhietdo As String
    chuyển ra ngoài biến toàn cục thử xem.
    Thử đẩy test qua hyperterminal xem như nào. Nói chung nhìn mã hóa kiểu này dễ sai lắm. Ít nhất cũng phải đặt phân cách giữa các giá trị để phân tích mới chuẩn. Vi dụ:
    /25.5/25.6/25.5/25.6/...................
    AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
    Xem thêm tại Online Store ---> Click here
    Mob: 0982.083.106

    Comment


    • #3
      Nguyên văn bởi VNarmy Xem bài viết
      Thế trên vb nó hiển thị thế nào. Cái chuyển ra ngoài biến toàn cục thử xem.
      Thử đẩy test qua hyperterminal xem như nào. Nói chung nhìn mã hóa kiểu này dễ sai lắm. Ít nhất cũng phải đặt phân cách giữa các giá trị để phân tích mới chuẩn. Vi dụ:
      vẫn chưa được bác ạ, bác có cái chương trình vb đơn giản nhận đc data bên dưới không chỉ em với, em đúng là làm mãi không được chán quá

      Comment


      • #4
        Cách đơn giản nhất là test qua hyperterminal để xem data gửi lên đã đúng chưa. Còn nhận dữ liệu qua cổng COM thì bạn có thể search: 'serial port vb.net'
        AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
        Xem thêm tại Online Store ---> Click here
        Mob: 0982.083.106

        Comment


        • #5
          Nguyên văn bởi VNarmy Xem bài viết
          Cách đơn giản nhất là test qua hyperterminal để xem data gửi lên đã đúng chưa. Còn nhận dữ liệu qua cổng COM thì bạn có thể search: 'serial port vb.net'
          em có dùng soft hercules nhưng không biết nhận trong khung nào, truyền xuống thì đúng yêu cầu của em

          Comment


          • #6
            Nguyên văn bởi hungtrinh36 Xem bài viết
            số là em đang làm đề tài về cái tưới cây có giao tiếp rs-232, giờ thì dùng visual basic truyền lệnh đk thì được rồi mà truyền nhiệt độ lên pc thì chịu. mấy ngày nay rồi cắm mạch test mãi chưa được. bác nào giúp em sai chổ nào mà không đc với (riêng em nghĩ vb sai vì cái sự kiện oncom em chưa rành lắm) hoặc có cái link nào tìm giùm em với(em đã lục kĩ trong diễn đàn mà chịu)...
            code trong codevision thế này:
            Code:
             
                   for(i=0;i<100;i++)     // lap chong nhieu
                   {
            
                     n = adc_data[0]; // doc adc
                     vin = (float)n*5/256;  // doc dien ap ngo vao
                     t = vin*100; // tinh nhiet t kieu float
                     
                     itoa(t,string); //chuyen t sang chuoi string, co khai bao mot bien char string[100]; phia tren
                     puts(string); // put len pc, co dung putchar(string) nhung van the
                     delay_ms(500); // nữa giay put mot lan
            
            
                     }
            code vb, trong sự kiện oncom thôi nhá các bác.

            Code:
            Private Sub MSComm1_OnComm()
            
            If MSComm1.CommEvent = comEvReceive Then
            'MSComm1.InputLen = 1 'chuan bi bo dem
            
            Dim nhietdo As String
            
            nhietdo = MSComm1.Input
            txtnhietdo.Text = nhietdo 'txtnhietdo là một text box hiển thị nhiệt độ
            lbt.Caption = Chr(nhietdo) ' đã sử dụng một cái label để kiểm tra có hiện cái gì không mà vẫn vậy dù đã viết val(nhietdo)
            
            End If
            
            
            /////code em khai báo comport trong vb
            
            Private Sub Form_Load()
            
            lbtrangthai.Caption = "KET NOI COM"
            MSComm1.CommPort = 11
            MSComm1.Settings = "9600,n,8,1"
            MSComm1.PortOpen = True
            'lbtrangthai.Caption = "DA KET NOI"
            MSComm1.RThreshold = 1
            MSComm1.SThreshold = 1
            'btketnoi.Caption = "NGAT"
            End Sub
            End Sub

            mong mọi người tìm giùm em cái sai với, thầy còn bắt em chuyển các mạch con 232 sang 485 mà 232 chưa xong nữa...
            code này m sử dụng ADC 10 bit và nó chạy được trên hyper terminal rồi
            while (1)
            {

            adcvalue = read_adc(0);
            t=adcvalue*4.89/10 ;
            ltoa(t,data);
            puts(data);
            delay_ms(500);

            }
            }
            01689964729

            Comment


            • #7
              Nguyên văn bởi kenvindang Xem bài viết
              code này m sử dụng ADC 10 bit và nó chạy được trên hyper terminal rồi
              while (1)
              {

              adcvalue = read_adc(0);
              t=adcvalue*4.89/10 ;
              ltoa(t,data);
              puts(data);
              delay_ms(500);

              }
              }
              thank bác để em thử nghiệm xem sao, bực mình cái hàm putchar() mấy ngày nay rồi

              Comment

              Về tác giả

              Collapse

              hungtrinh36 Tìm hiểu thêm về hungtrinh36

              Bài viết mới nhất

              Collapse

              Đang tải...
              X