Return to Snippet

Revision: 68648
at February 4, 2015 02:15 by agarcia


Initial Code
//Aquesta és la progrmació del prototip B, es a dir, la definitiva

int Motor_Esq1=2, Motor_Esq2=4, Velocitat_Esq=3, Motor_Dret1=7, Motor_Dret2=8, Velocitat_Dret=6; //Declarem motors
int sensor_valor_dret;
int sensor_valor_esquerra;
int pin_receptor_sensor_dret = A1;
int pin_receptor_sensor_esquerra = A2;
int blanc_o_negre = 930;
int temps_delay = 10;
int segona_vegada = 0;
long temps_negres=99999999;
long temps_nou=0;


void setup()
{
    pinMode(Motor_Esq1, OUTPUT);
    pinMode(Motor_Esq2, OUTPUT);
    pinMode(Velocitat_Esq, OUTPUT);
    pinMode(Motor_Dret1, OUTPUT);
    pinMode(Motor_Dret2, OUTPUT);
    pinMode(Velocitat_Dret, OUTPUT);
   Serial.begin(9600);
}

void loop()

    
     { 
       //marco la potencia dels dos
       analogWrite(Velocitat_Esq, 230);
       analogWrite(Velocitat_Dret, 225);
       
      sensor_valor_dret = analogRead(pin_receptor_sensor_dret);
      sensor_valor_esquerra = analogRead(pin_receptor_sensor_esquerra);
      temps_nou= millis();
      Serial.print(temps_nou);
      
           
      //Si els sensor dret es blanc i el sensor esquerra es blanc, tira endevant    
      if (sensor_valor_dret< blanc_o_negre && sensor_valor_esquerra<blanc_o_negre)  
        {
          endavant(temps_delay);
          Serial.println("entra");
          
        }
        //Si el sensor dret es negre i el sensor esquerra es blanc, gira a la dreta
        else if (sensor_valor_dret>blanc_o_negre && sensor_valor_esquerra<blanc_o_negre)
        {
          dreta(temps_delay);
        }
        //Si el sensor dret es blanc i el sensor esquerra es negre, gira a l'esquerra
        else if (sensor_valor_dret<blanc_o_negre && sensor_valor_esquerra>blanc_o_negre)
        {
          esquerra(temps_delay);
         
        }
        //Si tots dos sensors son negres, posa els millis a 0 i gira a l'esquerra
        else if ( sensor_valor_dret>blanc_o_negre && sensor_valor_esquerra>blanc_o_negre)
        {
          if (segona_vegada == 0)
         {
         esquerra(temps_delay); 
         segona_vegada ++;
          temps_negres=millis();
        
         Serial.print("----------------------------------------------------------------");
        }
        }
        
       
     //Si arriva al final, para
     if ((temps_nou-temps_negres)>1300)
  {
  delay(99999999999);   
  }
     } 
     
     


//FUNCIONS
void endavant(int temps) 
{//Motor dret endavant
      digitalWrite(Motor_Dret1, HIGH);
      digitalWrite(Motor_Dret2, LOW);
    //motor esquerra endavant
     digitalWrite(Motor_Esq1, HIGH);
     digitalWrite(Motor_Esq2, LOW);
     delay(temps);
     
     //paro el motor dret
      digitalWrite(Motor_Dret1, LOW);
      digitalWrite(Motor_Dret2, LOW);
     //paro el motor esquerra
      digitalWrite(Motor_Esq1, LOW);
      digitalWrite(Motor_Esq2, LOW);
  }
 
    

void endarrera(int temps)
{//Motor dret endarrera
      digitalWrite(Motor_Dret1, LOW);
      digitalWrite(Motor_Dret2, HIGH);
    //motor esquerra endarrera
      digitalWrite(Motor_Esq1,LOW);
      digitalWrite(Motor_Esq2,HIGH);
      delay(temps);
    //paro el motor dret
      digitalWrite(Motor_Dret1, LOW);
      digitalWrite(Motor_Dret2, LOW);
    //paro el motor esquerra
      digitalWrite(Motor_Esq1, LOW);
      digitalWrite(Motor_Esq2, LOW);
  }

void dreta(int temps)
  {
    //Motor dret endarrera
      digitalWrite(Motor_Dret1, LOW);
      digitalWrite(Motor_Dret2, HIGH);
    //motor esquerra endavant
     digitalWrite(Motor_Esq1, HIGH);
     digitalWrite(Motor_Esq2, LOW);
     delay(temps);
     
     //paro el motor dret
      digitalWrite(Motor_Dret1, LOW);
      digitalWrite(Motor_Dret2, LOW);
     //paro el motor esquerra
      digitalWrite(Motor_Esq1, LOW);
      digitalWrite(Motor_Esq2, LOW);
  }
  
  void esquerra(int temps)
  {
    //Motor dret endavant
      digitalWrite(Motor_Dret1, HIGH);
      digitalWrite(Motor_Dret2, LOW);
    //motor esquerra endarrera
     digitalWrite(Motor_Esq1, LOW);
     digitalWrite(Motor_Esq2, HIGH);
     delay(temps);
     
     //paro el motor dret
      digitalWrite(Motor_Dret1, LOW);
      digitalWrite(Motor_Dret2, LOW);
     //paro el motor esquerra
      digitalWrite(Motor_Esq1, LOW);
      digitalWrite(Motor_Esq2, LOW);
  }

Initial URL

                                

Initial Description
This is the code for our Arduino robot in Task 3

Initial Title
Task 3 Code 1, ClauTIC League, by MadTeam

Initial Tags

                                

Initial Language
Processing