Revision: 68648
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
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