Advertisement
Guest User

pptmi

a guest
Aug 24th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.88 KB | None | 0 0
  1. #define M1IN1 2
  2. #define M1IN2 4
  3. #define M2IN3 7
  4. #define M2IN4 6
  5. #define EnA 3
  6. #define EnB 5
  7. int Sen[]={A0,A1,A2,A3,A4};
  8. int ReadSen[5]={};
  9. int tempSen[]={1,1,0,1,1};
  10. int ch[]={1,1,0,1,1};
  11. int Speed=0,x=0;
  12. char lastDir='F';
  13.  
  14. boolean array_cmp(int *a, int *b, int len_a, int len_b){
  15.      int n;
  16.      if (len_a != len_b) return false;
  17.  
  18.      
  19.      for (n=0;n<len_a;n++) if (a[n]!=b[n]) return false;
  20.  
  21.      return true;
  22. }
  23. void setup() {
  24.   // put your setup code here, to run once:
  25. for(int Motor=2;Motor<8;Motor++)// For Motor OutPut From Pin 2 to Pin 7
  26. {
  27.   pinMode(Motor,OUTPUT);
  28. }
  29. pinMode(13,OUTPUT);digitalWrite(13,HIGH);//Vcc for sensor
  30. pinMode(12,OUTPUT);digitalWrite(12,HIGH);//Vcc for sensor
  31. for(int Sensor=0;Sensor<5;Sensor++)// For Sensor Input From A0 To A4
  32. {
  33.   pinMode(Sen[Sensor],INPUT);
  34. }
  35. Serial.begin(9600); //Enable Serial Communications
  36.  
  37. //////////////////////////////////////////////////////////
  38. for(int temp=0;temp<5;temp++)
  39. {
  40.   Serial.print(digitalRead(Sen[temp]));
  41.  ReadSen[temp]=digitalRead(Sen[temp]);
  42.   tempSen[temp]=ReadSen[temp];  
  43. }
  44. Serial.println();
  45.  
  46. //Timer On & OverFollow interrupt
  47. TIMSK2 = (TIMSK2 & B11111110) | 0x01;
  48. TCCR2B = (TCCR2B & B11111000) | 0x07;
  49. }
  50. int MoveF(int Speed)
  51. {
  52.   digitalWrite(M1IN1,HIGH);
  53.   digitalWrite(M1IN2,LOW);
  54.   digitalWrite(M2IN3,HIGH);
  55.   digitalWrite(M2IN4,LOW);
  56.   analogWrite(EnA,Speed);
  57.   analogWrite(EnB,Speed+20);
  58.  
  59. }
  60. int MoveR(int Speed)
  61. {
  62.   digitalWrite(M1IN1,HIGH);
  63.   digitalWrite(M1IN2,LOW);
  64.   digitalWrite(M2IN3,HIGH);
  65.   digitalWrite(M2IN4,LOW);
  66.   analogWrite(EnA,Speed-8);
  67.   analogWrite(EnB,0);
  68.  
  69. }
  70. int MoveL(int Speed)
  71. {
  72.   digitalWrite(M1IN1,HIGH);
  73.   digitalWrite(M1IN2,LOW);
  74.   digitalWrite(M2IN3,HIGH);
  75.   digitalWrite(M2IN4,LOW);
  76.   analogWrite(EnA,0);
  77.   analogWrite(EnB,Speed-5);
  78.  
  79. }
  80. int MoveS(int Speed)
  81. {
  82.   digitalWrite(M1IN1,HIGH);
  83.   digitalWrite(M1IN2,LOW);
  84.   digitalWrite(M2IN3,HIGH);
  85.   digitalWrite(M2IN4,LOW);
  86.   analogWrite(EnA,0);
  87.   analogWrite(EnB,0);
  88.  
  89. }
  90.  
  91. void loop() {
  92.   // put your main code here, to run repeatedly:
  93.   //1-11011
  94.   if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==0&&ReadSen[3]==1&&ReadSen[4]==1)
  95.   {
  96.     Serial.print("MoveF");
  97.     MoveF(Speed);
  98.     lastDir='F';
  99.   }
  100.   //////////////////////////////////////
  101.   //Move Left
  102.   //2-01111
  103.   else if(ReadSen[0]==0&&ReadSen[1]==1&&ReadSen[2]==1&&ReadSen[3]==1&&ReadSen[4]==1)
  104.   {
  105.   delay(250);
  106.     //Serial.print("MoveRR");
  107.     lastDir='L';
  108.     MoveL(Speed+30);
  109.   }
  110.   //3-00111
  111.   else if(ReadSen[0]==0&&ReadSen[1]==0&&ReadSen[2]==1&&ReadSen[3]==1&&ReadSen[4]==1)
  112.   {
  113.     lastDir='L';
  114.     MoveL(Speed);
  115.  
  116.  
  117.   }
  118.   //4-00011
  119.   else if(ReadSen[0]==0&&ReadSen[1]==0&&ReadSen[2]==0&&ReadSen[3]==1&&ReadSen[4]==1)
  120.   {
  121.     MoveL(Speed);
  122.     lastDir='L';
  123.   }
  124.   //5-01011
  125.   else if(ReadSen[0]==0&&ReadSen[1]==1&&ReadSen[2]==0&&ReadSen[3]==1&&ReadSen[4]==1)
  126.   {
  127.     MoveL(Speed);
  128.     lastDir='L';
  129.    
  130.   }
  131.   //6-10011
  132.   else if(ReadSen[0]==1&&ReadSen[1]==0&&ReadSen[2]==0&&ReadSen[3]==1&&ReadSen[4]==1)
  133.   {
  134.     MoveL(Speed);
  135.     lastDir='L';
  136.    
  137.   }
  138.   //7-10111
  139.   else if(ReadSen[0]==1&&ReadSen[1]==0&&ReadSen[2]==1&&ReadSen[3]==1&&ReadSen[4]==1)
  140.   {
  141.     MoveL(Speed);
  142.     lastDir='L';
  143.    
  144.   }
  145.   ///////////////////////////////////////////////////////
  146.   //Move Right
  147.   //8-11110
  148.   else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==1&&ReadSen[3]==1&&ReadSen[4]==0)
  149.   {
  150.     delay(250);
  151.     MoveR(Speed+30);
  152.     lastDir='R';
  153.    
  154.   }
  155.   //9-11100
  156.  else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==1&&ReadSen[3]==0&&ReadSen[4]==0)
  157.   {
  158.     MoveR(Speed);
  159.     lastDir='R';
  160.    
  161.   }
  162.   //10-11000
  163.   else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==0&&ReadSen[3]==0&&ReadSen[4]==0)
  164.   {
  165.     MoveR(Speed);
  166.     lastDir='R';
  167.    
  168.   }
  169.   //11-11010
  170.   else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==0&&ReadSen[3]==1&&ReadSen[4]==0)
  171.   {
  172.     MoveR(Speed);
  173.     lastDir='R';
  174.    
  175.   }
  176.   //12-11001
  177.    else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==0&&ReadSen[3]==0&&ReadSen[4]==1)
  178.   {
  179.     MoveR(Speed);
  180.     lastDir='R';
  181.    
  182.   }
  183.   //13-11101
  184.    else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==1&&ReadSen[3]==0&&ReadSen[4]==1)
  185.   {
  186.     MoveR(Speed);
  187.     lastDir='R';
  188.    
  189.   }
  190.   /////////////////////////////////////////////////////////////
  191.   //14-11111 With Move
  192.   else if(ReadSen[0]==1&&ReadSen[1]==0&&ReadSen[2]==0&&ReadSen[3]==0&&ReadSen[4]==0)
  193. {
  194.   MoveR(Speed);
  195.   lastDir='R';
  196. }
  197. else if(ReadSen[0]==1&&ReadSen[1]==0&&ReadSen[2]==0&&ReadSen[3]==0&&ReadSen[4]==0)
  198. {
  199.   MoveL(Speed);lastDir='L';
  200. }
  201. //16-00001
  202. else if(ReadSen[0]==0&&ReadSen[1]==1&&ReadSen[2]==1&&ReadSen[3]==0&&ReadSen[4]==1)
  203. {
  204.   MoveL(Speed);lastDir='L';
  205. }
  206. else if(ReadSen[0]==0&&ReadSen[1]==0&&ReadSen[2]==0&&ReadSen[3]==1&&ReadSen[4]==1)
  207. {
  208.   MoveL(Speed);
  209.   lastDir='L';
  210. }
  211. //17-01110
  212.    else if(ReadSen[0]==1&&ReadSen[1]==1&&ReadSen[2]==1&&ReadSen[3]==1&&ReadSen[4]==1)
  213.   {
  214.     TIMSK2 = (TIMSK2 & B1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement