ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 18
  1. #1
    2014/07/05
    21
    1

    ارتباط آردینو با atmega

    سلام دوستان من میخوام از طریق rx و tx یک سری اطلاعات (فقط حرف مثلا "a,b,c" یا "1234" از آردینو بفرستم به atmega8 و برعکس هرچی گشتم چیزی دستگیرم نشد کسی از دوستان هست بتونه کمکم کنه یا کدی چیزی بزاره ممنون
  2. #2
    2017/06/13
    255
    162

    پاسخ : ارتباط آردینو با atmega

    نقل قول نوشته اصلی توسط relax021

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام دوستان من میخوام از طریق rx و tx یک سری اطلاعات (فقط حرف مثلا "a,b,c" یا "1234" از آردینو بفرستم به atmega8 و برعکس هرچی گشتم چیزی دستگیرم نشد کسی از دوستان هست بتونه کمکم کنه یا کدی چیزی بزاره ممنون
    سلام
    اگر بلد باشید با رابط سریال آردوینو و میکروکنترلر های AVR کار کنیدهمه چیز حله.
    حال مشکل شما دقیقا با کدوم طرف قضیه هستش؟
  3. #3
    2017/12/26
    106
    71

    پاسخ : ارتباط آردینو با atmega

    سلام
    این کد را نگاه کنید، HT9032 را توسط RX و TX به آردویینو متصل کرده یک کالر آیدی برای بلاک کردن تماس ساخته و نتایج را روی LCD نمایش می ده.
    شما هم می تونید مشابه همین عمل کنید.
    امیدوارم کمکتون کنه
    کد:
    #define Serial_Debug false 
    
    #include <Wire.h>  
    #include <LiquidCrystal_I2C.h>
    #include <LAudio.h>
    #define HOOK 2 
    
    LiquidCrystal_I2C lcd(0x20, 20, 4); 
     
    static int state=0;
    static int o=0;
    static int i=0;
    static char nam[128];
    static char num[25];
    static char dat[25];
    static int plen=0;
    static int nlen=0;
    static int dlen=0;
    static int mlen=0;
    static int len=0;
    int SER = 0;
    String str = "";
    
    
    void BlockCallers() {
                   if (str == "106"){
                      lcd.setCursor(0,0);
                      lcd.print("Last Call BLOCKED  :");
                      Play_MP3();
                    }
    }
    
    void setup()
    {
    
      if(Serial_Debug){
         Serial.begin(115200);  
         while(!Serial){
             delay(100);
         }
      }
      
      pinMode(HOOK, OUTPUT);
      digitalWrite(HOOK, LOW); 
    
      LAudio.begin();
      LAudio.setVolume(6);
      
      lcd.init();    
      lcd.noBacklight();
      delay(400);
      lcd.clear();
      lcd.backlight();
      lcd.setCursor(0,1);
      lcd.print("   Caller ID V1.6 ");
      lcd.setCursor(0,2);
      lcd.print(" Waiting for Caller");
      Serial.println("Waiting for next Caller");
      delay(3500);
     
      Serial1.begin(1200);
    }
     
    void loop()
    {
      Ht9032_get();
      
              if( state == 10 ) 
              {      
                o=0;     
                Serial.println("State: 10 ");
                Serial.print("DATE: ");
                Serial.print(char(dat[0]));
                Serial.print(char(dat[1]));
                Serial.print('/');
                Serial.print(char(dat[2]));
                Serial.println(char(dat[3]));
                Serial.print("TIME: ");
                Serial.print(char(dat[4]));
                Serial.print(char(dat[5]));
                Serial.print(':');
                Serial.print(char(dat[6]));
                Serial.println(char(dat[7]));
                Serial.print("NAME: ");
                for(int i=0;i<nlen;i++)
                 {
                   Serial.print(char(nam[i]));
                 }
                Serial.println("");
                Serial.print("NUMBER: ");
                for(int i=0;i<mlen;i++)
                 {
                   Serial.print(char(num[i]));
                 }
                 Serial.println("");
    
                state=0;
                
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("Last Call Received :");
                lcd.setCursor(0,1);
                lcd.print("Date:");
                lcd.print(char(dat[0]));
                lcd.print(char(dat[1]));
                lcd.print('/');
                lcd.print(char(dat[2]));
                lcd.print(char(dat[3]));
                lcd.print(" ");
                lcd.print(char(dat[4]));
                lcd.print(char(dat[5]));
                lcd.print(':');
                lcd.print(char(dat[6]));
                lcd.print(char(dat[7]));
     
                lcd.setCursor(0,2);
                lcd.print("Name: ");
     
                for(int i=0;i<nlen;i++)
                 {
                   lcd.print(char(nam[i]));
                 }
     
                lcd.setCursor(0,3);
                lcd.print("Num :");
    
                str = "";
     
                for(int i=0;i<mlen;i++)
                 {
                   lcd.print(char(num[i]));
                   str += char(num[i]);
                 }    
    
                  BlockCallers();
           }
    }
    
    void Play_MP3()
    {
          Serial.println("Blocked Caller Detected");
          digitalWrite(HOOK, HIGH); 
          Serial.println("Off Hook");
          delay(1500);  
          Serial.println("Playing message to caller");
          LAudio.playFile( storageFlash,(char*)"Klaxon.mp3");
          delay(7500);
          digitalWrite(HOOK, LOW); 
          Serial.println("On Hook");
          delay(5000);
    } 
    
    
     
    void Ht9032_get()
    {
      if (Serial1.available() > 0)  
      {
    
      SER = Serial1.read(); 
        
       /*
        * states
        * 0 - waiting for U's
        * 1 - waiting for 25 U's and then an 0x80
        * 2 - waiting for packet len
        * 3 - waiting for message id
        * 4 - get name len
        * 5 - receiving name
        * 6 - get number len
        * 7 - receiving number
        * 8 - get date len
        * 9 - receiving date
        * 10 - packet complete
        * 
        * message ids
        * 1 - date
        * 2 - number
        * 4 - number not found reason
        * 7 - name
        * 8 - name not found reason
        * 
        * reasons
        * O - Out of area (no caller ID available)
        * P - Private party (Blocked)
        * 
        */
      switch(state)
      {
        case 0:if (SER==0x55)  
                   {
                     state=1;
                     i=1;
     Serial.println("State: 0 ");
                   }break;
     
        case 1:if (SER==0x55) 
                   {
                     i++;
                   }                        
                      
                   if(SER==0x80)
                   {
                     if(i > 25)
                       {
                          state=2;
                       }
                   }
                   Serial.println("State: 1 ");             
                   break;
                   
        case 2:plen = SER; 
                   i=0;
                   state=3;                                        
                   Serial.println("State: 2 ");
                   Serial.print("Packet Length: ");
                   Serial.println(plen);
                   break;
     
        case 3: o++;
                  Serial.println("State: 3 ");
                  Serial.print("MID: ");
                  Serial.println(SER);
                  if(SER==1) 
                  {
                    state=8;
                  }
                  else if(SER==2)
                  {
                    state=6;
                  }
                  else if(SER==4)
                  {
                    state=6;
                  }
                  else if(SER==7)
                  {
                    state=4;
                  }
                  else if(SER==8)
                  {
                    state=4;
                  }
                  break;
     
        case 4:len = SER;
                   nlen = len ; 
                   o++;
                   i=0;
                   state=5;                                        
                   Serial.println("State: 4 ");
                   Serial.print("Data Length: ");
                   Serial.println(nlen);
                   break;
     
        case 6:len = SER; 
                   mlen = len ; 
                   o++;
                   i=0;
                   state=7;                                        
                   Serial.println("State: 6 ");
                   Serial.print("Data Length: ");
                   Serial.println(mlen);
                   break;
     
        case 8:len = SER; 
                   dlen = len ; 
                   o++;
                   i=0;
                   state=9;                                        
                   Serial.println("State: 8 ");
                   Serial.print("Data Length: ");
                   Serial.println(dlen);
                   break;
     
      
        case 5:nam[i]=SER;  
                i++;
                o++;
                  if( i > nlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 5 ");
              break;
              
        case 7:num[i]=SER;  
                i++;
                o++;
                  if( i > mlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 7 ");
              break;
              
        case 9:dat[i]=SER;  
                i++;
                o++;
                  if( i > dlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 9 ");
              break;
              
         default:break;
       }
      }
    }
  4. #4
    2014/07/05
    21
    1

    پاسخ : ارتباط آردینو با atmega

    نقل قول نوشته اصلی توسط hossein.m98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    اگر بلد باشید با رابط سریال آردوینو و میکروکنترلر های AVR کار کنیدهمه چیز حله.
    حال مشکل شما دقیقا با کدوم طرف قضیه هستش؟
    ممنون بابت توجه شما مشکل من دقیقا avr چیزی دزیافت نمیکنه

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    بیتشر مشکل من سمت avr هست

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط Quantum.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    این کد را نگاه کنید، HT9032 را توسط RX و TX به آردویینو متصل کرده یک کالر آیدی برای بلاک کردن تماس ساخته و نتایج را روی LCD نمایش می ده.
    شما هم می تونید مشابه همین عمل کنید.
    امیدوارم کمکتون کنه
    کد:
    #define Serial_Debug false 
    
    #include <Wire.h>  
    #include <LiquidCrystal_I2C.h>
    #include <LAudio.h>
    #define HOOK 2 
    
    LiquidCrystal_I2C lcd(0x20, 20, 4); 
     
    static int state=0;
    static int o=0;
    static int i=0;
    static char nam[128];
    static char num[25];
    static char dat[25];
    static int plen=0;
    static int nlen=0;
    static int dlen=0;
    static int mlen=0;
    static int len=0;
    int SER = 0;
    String str = "";
    
    
    void BlockCallers() {
                   if (str == "106"){
                      lcd.setCursor(0,0);
                      lcd.print("Last Call BLOCKED  :");
                      Play_MP3();
                    }
    }
    
    void setup()
    {
    
      if(Serial_Debug){
         Serial.begin(115200);  
         while(!Serial){
             delay(100);
         }
      }
      
      pinMode(HOOK, OUTPUT);
      digitalWrite(HOOK, LOW); 
    
      LAudio.begin();
      LAudio.setVolume(6);
      
      lcd.init();    
      lcd.noBacklight();
      delay(400);
      lcd.clear();
      lcd.backlight();
      lcd.setCursor(0,1);
      lcd.print("   Caller ID V1.6 ");
      lcd.setCursor(0,2);
      lcd.print(" Waiting for Caller");
      Serial.println("Waiting for next Caller");
      delay(3500);
     
      Serial1.begin(1200);
    }
     
    void loop()
    {
      Ht9032_get();
      
              if( state == 10 ) 
              {      
                o=0;     
                Serial.println("State: 10 ");
                Serial.print("DATE: ");
                Serial.print(char(dat[0]));
                Serial.print(char(dat[1]));
                Serial.print('/');
                Serial.print(char(dat[2]));
                Serial.println(char(dat[3]));
                Serial.print("TIME: ");
                Serial.print(char(dat[4]));
                Serial.print(char(dat[5]));
                Serial.print(':');
                Serial.print(char(dat[6]));
                Serial.println(char(dat[7]));
                Serial.print("NAME: ");
                for(int i=0;i<nlen;i++)
                 {
                   Serial.print(char(nam[i]));
                 }
                Serial.println("");
                Serial.print("NUMBER: ");
                for(int i=0;i<mlen;i++)
                 {
                   Serial.print(char(num[i]));
                 }
                 Serial.println("");
    
                state=0;
                
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("Last Call Received :");
                lcd.setCursor(0,1);
                lcd.print("Date:");
                lcd.print(char(dat[0]));
                lcd.print(char(dat[1]));
                lcd.print('/');
                lcd.print(char(dat[2]));
                lcd.print(char(dat[3]));
                lcd.print(" ");
                lcd.print(char(dat[4]));
                lcd.print(char(dat[5]));
                lcd.print(':');
                lcd.print(char(dat[6]));
                lcd.print(char(dat[7]));
     
                lcd.setCursor(0,2);
                lcd.print("Name: ");
     
                for(int i=0;i<nlen;i++)
                 {
                   lcd.print(char(nam[i]));
                 }
     
                lcd.setCursor(0,3);
                lcd.print("Num :");
    
                str = "";
     
                for(int i=0;i<mlen;i++)
                 {
                   lcd.print(char(num[i]));
                   str += char(num[i]);
                 }    
    
                  BlockCallers();
           }
    }
    
    void Play_MP3()
    {
          Serial.println("Blocked Caller Detected");
          digitalWrite(HOOK, HIGH); 
          Serial.println("Off Hook");
          delay(1500);  
          Serial.println("Playing message to caller");
          LAudio.playFile( storageFlash,(char*)"Klaxon.mp3");
          delay(7500);
          digitalWrite(HOOK, LOW); 
          Serial.println("On Hook");
          delay(5000);
    } 
    
    
     
    void Ht9032_get()
    {
      if (Serial1.available() > 0)  
      {
    
      SER = Serial1.read(); 
        
       /*
        * states
        * 0 - waiting for U's
        * 1 - waiting for 25 U's and then an 0x80
        * 2 - waiting for packet len
        * 3 - waiting for message id
        * 4 - get name len
        * 5 - receiving name
        * 6 - get number len
        * 7 - receiving number
        * 8 - get date len
        * 9 - receiving date
        * 10 - packet complete
        * 
        * message ids
        * 1 - date
        * 2 - number
        * 4 - number not found reason
        * 7 - name
        * 8 - name not found reason
        * 
        * reasons
        * O - Out of area (no caller ID available)
        * P - Private party (Blocked)
        * 
        */
      switch(state)
      {
        case 0:if (SER==0x55)  
                   {
                     state=1;
                     i=1;
     Serial.println("State: 0 ");
                   }break;
     
        case 1:if (SER==0x55) 
                   {
                     i++;
                   }                        
                      
                   if(SER==0x80)
                   {
                     if(i > 25)
                       {
                          state=2;
                       }
                   }
                   Serial.println("State: 1 ");             
                   break;
                   
        case 2:plen = SER; 
                   i=0;
                   state=3;                                        
                   Serial.println("State: 2 ");
                   Serial.print("Packet Length: ");
                   Serial.println(plen);
                   break;
     
        case 3: o++;
                  Serial.println("State: 3 ");
                  Serial.print("MID: ");
                  Serial.println(SER);
                  if(SER==1) 
                  {
                    state=8;
                  }
                  else if(SER==2)
                  {
                    state=6;
                  }
                  else if(SER==4)
                  {
                    state=6;
                  }
                  else if(SER==7)
                  {
                    state=4;
                  }
                  else if(SER==8)
                  {
                    state=4;
                  }
                  break;
     
        case 4:len = SER;
                   nlen = len ; 
                   o++;
                   i=0;
                   state=5;                                        
                   Serial.println("State: 4 ");
                   Serial.print("Data Length: ");
                   Serial.println(nlen);
                   break;
     
        case 6:len = SER; 
                   mlen = len ; 
                   o++;
                   i=0;
                   state=7;                                        
                   Serial.println("State: 6 ");
                   Serial.print("Data Length: ");
                   Serial.println(mlen);
                   break;
     
        case 8:len = SER; 
                   dlen = len ; 
                   o++;
                   i=0;
                   state=9;                                        
                   Serial.println("State: 8 ");
                   Serial.print("Data Length: ");
                   Serial.println(dlen);
                   break;
     
      
        case 5:nam[i]=SER;  
                i++;
                o++;
                  if( i > nlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 5 ");
              break;
              
        case 7:num[i]=SER;  
                i++;
                o++;
                  if( i > mlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 7 ");
              break;
              
        case 9:dat[i]=SER;  
                i++;
                o++;
                  if( i > dlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 9 ");
              break;
              
         default:break;
       }
      }
    }
    بیتشر مشکل من سمت avr هست

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط Quantum.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    این کد را نگاه کنید، HT9032 را توسط RX و TX به آردویینو متصل کرده یک کالر آیدی برای بلاک کردن تماس ساخته و نتایج را روی LCD نمایش می ده.
    شما هم می تونید مشابه همین عمل کنید.
    امیدوارم کمکتون کنه
    کد:
    #define Serial_Debug false 
    
    #include <Wire.h>  
    #include <LiquidCrystal_I2C.h>
    #include <LAudio.h>
    #define HOOK 2 
    
    LiquidCrystal_I2C lcd(0x20, 20, 4); 
     
    static int state=0;
    static int o=0;
    static int i=0;
    static char nam[128];
    static char num[25];
    static char dat[25];
    static int plen=0;
    static int nlen=0;
    static int dlen=0;
    static int mlen=0;
    static int len=0;
    int SER = 0;
    String str = "";
    
    
    void BlockCallers() {
                   if (str == "106"){
                      lcd.setCursor(0,0);
                      lcd.print("Last Call BLOCKED  :");
                      Play_MP3();
                    }
    }
    
    void setup()
    {
    
      if(Serial_Debug){
         Serial.begin(115200);  
         while(!Serial){
             delay(100);
         }
      }
      
      pinMode(HOOK, OUTPUT);
      digitalWrite(HOOK, LOW); 
    
      LAudio.begin();
      LAudio.setVolume(6);
      
      lcd.init();    
      lcd.noBacklight();
      delay(400);
      lcd.clear();
      lcd.backlight();
      lcd.setCursor(0,1);
      lcd.print("   Caller ID V1.6 ");
      lcd.setCursor(0,2);
      lcd.print(" Waiting for Caller");
      Serial.println("Waiting for next Caller");
      delay(3500);
     
      Serial1.begin(1200);
    }
     
    void loop()
    {
      Ht9032_get();
      
              if( state == 10 ) 
              {      
                o=0;     
                Serial.println("State: 10 ");
                Serial.print("DATE: ");
                Serial.print(char(dat[0]));
                Serial.print(char(dat[1]));
                Serial.print('/');
                Serial.print(char(dat[2]));
                Serial.println(char(dat[3]));
                Serial.print("TIME: ");
                Serial.print(char(dat[4]));
                Serial.print(char(dat[5]));
                Serial.print(':');
                Serial.print(char(dat[6]));
                Serial.println(char(dat[7]));
                Serial.print("NAME: ");
                for(int i=0;i<nlen;i++)
                 {
                   Serial.print(char(nam[i]));
                 }
                Serial.println("");
                Serial.print("NUMBER: ");
                for(int i=0;i<mlen;i++)
                 {
                   Serial.print(char(num[i]));
                 }
                 Serial.println("");
    
                state=0;
                
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("Last Call Received :");
                lcd.setCursor(0,1);
                lcd.print("Date:");
                lcd.print(char(dat[0]));
                lcd.print(char(dat[1]));
                lcd.print('/');
                lcd.print(char(dat[2]));
                lcd.print(char(dat[3]));
                lcd.print(" ");
                lcd.print(char(dat[4]));
                lcd.print(char(dat[5]));
                lcd.print(':');
                lcd.print(char(dat[6]));
                lcd.print(char(dat[7]));
     
                lcd.setCursor(0,2);
                lcd.print("Name: ");
     
                for(int i=0;i<nlen;i++)
                 {
                   lcd.print(char(nam[i]));
                 }
     
                lcd.setCursor(0,3);
                lcd.print("Num :");
    
                str = "";
     
                for(int i=0;i<mlen;i++)
                 {
                   lcd.print(char(num[i]));
                   str += char(num[i]);
                 }    
    
                  BlockCallers();
           }
    }
    
    void Play_MP3()
    {
          Serial.println("Blocked Caller Detected");
          digitalWrite(HOOK, HIGH); 
          Serial.println("Off Hook");
          delay(1500);  
          Serial.println("Playing message to caller");
          LAudio.playFile( storageFlash,(char*)"Klaxon.mp3");
          delay(7500);
          digitalWrite(HOOK, LOW); 
          Serial.println("On Hook");
          delay(5000);
    } 
    
    
     
    void Ht9032_get()
    {
      if (Serial1.available() > 0)  
      {
    
      SER = Serial1.read(); 
        
       /*
        * states
        * 0 - waiting for U's
        * 1 - waiting for 25 U's and then an 0x80
        * 2 - waiting for packet len
        * 3 - waiting for message id
        * 4 - get name len
        * 5 - receiving name
        * 6 - get number len
        * 7 - receiving number
        * 8 - get date len
        * 9 - receiving date
        * 10 - packet complete
        * 
        * message ids
        * 1 - date
        * 2 - number
        * 4 - number not found reason
        * 7 - name
        * 8 - name not found reason
        * 
        * reasons
        * O - Out of area (no caller ID available)
        * P - Private party (Blocked)
        * 
        */
      switch(state)
      {
        case 0:if (SER==0x55)  
                   {
                     state=1;
                     i=1;
     Serial.println("State: 0 ");
                   }break;
     
        case 1:if (SER==0x55) 
                   {
                     i++;
                   }                        
                      
                   if(SER==0x80)
                   {
                     if(i > 25)
                       {
                          state=2;
                       }
                   }
                   Serial.println("State: 1 ");             
                   break;
                   
        case 2:plen = SER; 
                   i=0;
                   state=3;                                        
                   Serial.println("State: 2 ");
                   Serial.print("Packet Length: ");
                   Serial.println(plen);
                   break;
     
        case 3: o++;
                  Serial.println("State: 3 ");
                  Serial.print("MID: ");
                  Serial.println(SER);
                  if(SER==1) 
                  {
                    state=8;
                  }
                  else if(SER==2)
                  {
                    state=6;
                  }
                  else if(SER==4)
                  {
                    state=6;
                  }
                  else if(SER==7)
                  {
                    state=4;
                  }
                  else if(SER==8)
                  {
                    state=4;
                  }
                  break;
     
        case 4:len = SER;
                   nlen = len ; 
                   o++;
                   i=0;
                   state=5;                                        
                   Serial.println("State: 4 ");
                   Serial.print("Data Length: ");
                   Serial.println(nlen);
                   break;
     
        case 6:len = SER; 
                   mlen = len ; 
                   o++;
                   i=0;
                   state=7;                                        
                   Serial.println("State: 6 ");
                   Serial.print("Data Length: ");
                   Serial.println(mlen);
                   break;
     
        case 8:len = SER; 
                   dlen = len ; 
                   o++;
                   i=0;
                   state=9;                                        
                   Serial.println("State: 8 ");
                   Serial.print("Data Length: ");
                   Serial.println(dlen);
                   break;
     
      
        case 5:nam[i]=SER;  
                i++;
                o++;
                  if( i > nlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 5 ");
              break;
              
        case 7:num[i]=SER;  
                i++;
                o++;
                  if( i > mlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 7 ");
              break;
              
        case 9:dat[i]=SER;  
                i++;
                o++;
                  if( i > dlen - 1 ) 
              {  
                state=3;
                i=0;                              
              }
    
              if( o > plen - 1 ) 
              {  
                state=10;
              }
              Serial.println("State: 9 ");
              break;
              
         default:break;
       }
      }
    }
    بیتشر مشکل من سمت avr هست
  5. #5
    2017/06/13
    255
    162

    پاسخ : ارتباط آردینو با atmega

    اول از همه از اتصالات مطمئن بشید. فراموش نکنید که زمین ها باید بهم متصل باشن . TX آردوینو به RX میکروکنترلر و RX آردوینو هم باید به TX میکروکنترلر متصل بشه. کد سمت AVR رو بفرستیدتا اونم بررسی کنیم.
  6. #6
    2014/07/05
    21
    1

    پاسخ : ارتباط آردینو با atmega

    نقل قول نوشته اصلی توسط hossein.m98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    اول از همه از اتصالات مطمئن بشید. فراموش نکنید که زمین ها باید بهم متصل باشن . TX آردوینو به RX میکروکنترلر و RX آردوینو هم باید به TX میکروکنترلر متصل بشه. کد سمت AVR رو بفرستیدتا اونم بررسی کنیم.
    ممنون از اتصالات مطمعا هستم اما تو برنامه نویسی avr خیلی ضعیف هستم
    کد:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <mega8.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <delay.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <stdio.h> void main(void) { char test; DDRC.5=1; TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00); TCNT0=0x00; OCR0=0x00; TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0<<AS2; TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20); TCNT2=0x00; OCR2=0x00; TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0); MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2); // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM); UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL); UBRRH=0x00; UBRRL=0x33; ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); SFIOR=(0<<ACME); ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0); TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE); while (1) { if((UCSRA & (1<<RXC))) { test=getchar(); if (test=='a'){ PORTC.5=1; } if (test=='b'){ PORTC.5==0; } } } }
    خیلی ممنون میشم اگر بتونید کمکم کنید
    ویرایش توسط relax021 : 2019/06/09 در ساعت 21:08
  7. #7
    2017/06/13
    255
    162

    پاسخ : ارتباط آردینو با atmega

    من با تابع getchar تا حالا کار نکردم. خطی که تابع getchar داره رو با خط زیر تعویض کنید و نتیجه رو گزارش کنید:
    test=UDR; 
  8. #8
    2014/07/05
    21
    1

    پاسخ : ارتباط آردینو با atmega

    نقل قول نوشته اصلی توسط hossein.m98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    من با تابع getchar تا حالا کار نکردم. خطی که تابع getchar داره رو با خط زیر تعویض کنید و نتیجه رو گزارش کنید:
    test=UDR; 
    تعویض کردم مشکلی پیش نیومد ولی
    این دوتا خط اجرا نمیشن
    کد:
    if (test=='a'){PORTC.5=1;
    }
    if (test=='b'){
    PORTC.5==0; 
     }
  9. #9
    2017/06/13
    255
    162

    پاسخ : ارتباط آردینو با atmega

    نقل قول نوشته اصلی توسط relax021

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    تعویض کردم مشکلی پیش نیومد ولی
    این دوتا خط اجرا نمیشن
    کد:
    if (test=='a'){PORTC.5=1;
    }
    if (test=='b'){
    PORTC.5==0; 
     }
    با این حساب یا داده ای دریافت نمیشه یا چیز دیگه ای دریافت میشه. بهتره یه حالت دیگه هم در نظر بگیرید که اگر داده دریافت شده چیز دیگه ای بود کار دیگه ای بکنه.
    اگر این حالت سوم اجرا شد میفهمیم داده دریافتی نادرسته. اگر اجرا نشد میفهمیم کلا چیزی دریافت نمیشه.
  10. #10
    2014/07/05
    21
    1

    پاسخ : ارتباط آردینو با atmega

    نقل قول نوشته اصلی توسط relax021

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ممنون از اتصالات مطمعا هستم اما تو برنامه نویسی avr خیلی ضعیف هستم
    کد:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <mega8.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <delay.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <stdio.h> void main(void) { char test; DDRC.5=1; TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00); TCNT0=0x00; OCR0=0x00; TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0<<AS2; TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20); TCNT2=0x00; OCR2=0x00; TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0); MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2); // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM); UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL); UBRRH=0x00; UBRRL=0x33; ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); SFIOR=(0<<ACME); ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0); TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE); while (1) { if((UCSRA & (1<<RXC))) { test=getchar(); if (test=='a'){ PORTC.5=1; } if (test=='b'){ PORTC.5==0; } } } }
    خیلی ممنون میشم اگر بتونید کمکم کنید
    از نظر شما این کد دیگه مشکلی نداره
    و من فقط باید از داخل آردوینو یک داده بفرستم به tx ???
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 18

موضوعات مشابه

  1. ارتباط ecn28j60 با atmega 32
    توسط a_bahramali در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2016/03/07, 14:42
  2. ارتباط دو طرفه spi يين دو atmega
    توسط mnr73 در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2015/01/07, 12:00
  3. ارتباط usart در بس کام Atmega 32
    توسط John Lock در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2010/04/12, 15:36
  4. سوال در مورد ارتباط matlab با atmega 32
    توسط fattahiyam در انجمن برنامه نويسي و اينترفيس
    پاسخ: 2
    آخرين نوشته: 2009/06/12, 19:32
  5. ارتباط atmega با encoder
    توسط fattahiyam در انجمن سنسورها
    پاسخ: 1
    آخرين نوشته: 2009/06/02, 18:05

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •