Advertisement
SageScroll18144

Main

Feb 4th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const int motors[] = {};//Array de pinos PWMs || [0]->Motor esquedo  [1]->Motor direito || length = 2
  2. const int directions[] = {};//Arras de pinos de sentidos(Motor esquerdo e direito respectivamente) || length = 4
  3.  
  4. const int trig; // Pino de trig do ultrassônico. Obs.: atribuir um valor a variável
  5. const int echo; // Pino de echo do ultrassônico. Obs.: atribuir um valor a variável
  6.  
  7. #define OUT ..
  8.  
  9. const int s[] = { };
  10.  
  11. int red = 0;
  12. int green = 0;
  13. int blue = 0;
  14.  
  15.  
  16. void setup() {
  17.  
  18.   for(int i = 0; i < sizeof(ft)/sizeof(int); i++)
  19.     pinMode(ft[i], INPUT);
  20.  
  21.   for(int i = 0; i < sizeof(s)/sizeof(int); i++)
  22.     pinMode(s[i], OUTPUT);
  23.  
  24.   pinMode(OUT, INPUT);
  25.  
  26.   digitalWrite(s[0], HIGH);
  27.   digitalWrite(s[1], LOW);
  28. }
  29.  
  30. void loop() {
  31.   if(ultrassonicRead() < 5){
  32.    
  33.   }else{
  34.     color();
  35.     if ( ){
  36.       Serial.println("Vermelho");
  37.     }
  38.     else if ( ){
  39.       Serial.println("Azul");
  40.     }
  41.     else if ( ){
  42.       Serial.println("Verde");
  43.     }
  44.   }
  45.  
  46. }
  47. int ultrassonicRead(){//Retorna um valor inteiro com o valor da distância lida pelo ultrassônico
  48.   long duracao;
  49.   long distancia;
  50.   digitalWrite(trig, LOW);
  51.   delayMicroseconds(2);
  52.   digitalWrite(trig, HIGH);
  53.   delayMicroseconds(10);
  54.   digitalWrite(trig, LOW);
  55.   duracao = pulseIn(echo, HIGH);
  56.   distancia = duracao/58;
  57.   delay(500);
  58.   return distancia;
  59. }
  60.  
  61. void motorsLeft(char sense, int pwm){//Função que define o sentido de rotação do motor esquerdo e a velocidade do giro em porcentagem
  62.   int motor = 0;
  63.   if(sense == 'F'){
  64.     digitalWrite(directions[2*motor], HIGH);
  65.     digitalWrite(directions[(2*motor)+1], LOW);
  66.   }
  67.   else if(sense == 'B'){
  68.     digitalWrite(directions[2*motor], LOW);
  69.     digitalWrite(directions[(2*motor)+1], HIGH);
  70.   }
  71.   analogWrite(motors[motor], 255*pwm/100);
  72. }
  73.  
  74. void motorsRight(char sense, int pwm){//Função que define o sentido de rotação do motor direito e a velocidade do giro em porcentagem
  75.   int motor = 1;
  76.   if(sense == 'F'){
  77.     digitalWrite(directions[2*motor], HIGH);
  78.     digitalWrite(directions[(2*motor)+1], LOW);
  79.   }
  80.   else if(sense == 'B'){
  81.     digitalWrite(directions[2*motor], LOW);
  82.     digitalWrite(directions[(2*motor)+1], HIGH);
  83.   }
  84.   analogWrite(motors[motor], 255*pwm/100);
  85. }
  86.  
  87. void motorsStop(int motor){//Função que desliga o motor informado
  88.   digitalWrite(motors[motor], LOW);
  89.   digitalWrite(directions[2*motor], LOW);
  90.   digitalWrite(directions[(2*motor)+1], LOW);
  91. }
  92. void color() {
  93.   //Rotina que le o valor das cores
  94.   digitalWrite(s[2], LOW);
  95.   digitalWrite(s[3], LOW);
  96.   //count OUT, pRed, RED
  97.   red = pulseIn(OUT, digitalRead(OUT) == HIGH ? LOW : HIGH);
  98.   digitalWrite(s[3], HIGH);
  99.   //count OUT, pBLUE, BLUE
  100.   blue = pulseIn(out, digitalRead(OUT) == HIGH ? LOW : HIGH);
  101.   digitalWrite(s[2], HIGH);
  102.   //count OUT, pGreen, GREEN
  103.   green = pulseIn(OUT, digitalRead(OUT) == HIGH ? LOW : HIGH);
  104. }
  105. int readFt(int s){
  106.   return digitalRead(s);
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement