Go Down

Topic: Ensimmäinen robotti (Read 1 time) previous topic - next topic

racer123

Hei!
Osaisiko joku auttaa tämän koodin nopeuttamisessa? Kun robotti huomaa esteen, sillä kestää hetken "älytä" se ja kääntyä.
Code: [Select]

int servoFrontPin=8;
int servoBackPin=7;
int irLeft=2;
int irRight=4;

void pulseServo(int servoPin, int pulseLenUs)
{
digitalWrite(servoPin, HIGH);
delayMicroseconds(pulseLenUs);
digitalWrite(servoPin, LOW);
delay(20);
}

void setup()
{
        pinMode(irLeft, INPUT);
        pinMode(irRight, INPUT);
pinMode(servoFrontPin, OUTPUT);
pinMode(servoBackPin, OUTPUT);
}

void loop()
{
  int sensorRightValue = digitalRead(irRight);
  int sensorLeftValue = digitalRead(irLeft);
  if (sensorRightValue == 1 & sensorLeftValue ==1)
  {
   for (int i=0; i<=25; i++) {
pulseServo(servoFrontPin, 1900);
pulseServo(servoBackPin, 1000);
  }
  }
else if (sensorRightValue == 0 & sensorLeftValue == 0)
{
for (int i=0; i<=25; i++) {
pulseServo(servoFrontPin, 1900);
pulseServo(servoBackPin, 1900);
 
 
}
}

else if (sensorRightValue == 1 & sensorLeftValue == 0)
{
  for (int i=0; i<=25; i++) {
pulseServo(servoFrontPin, 1000);
pulseServo(servoBackPin, 1000);
  }
}
else if (sensorRightValue == 0 & sensorLeftValue == 1)
{
for (int i=0; i<=25; i++) {
pulseServo(servoFrontPin, 1900);
pulseServo(servoBackPin, 1900);

}
}
}


uk350

saattais nopeutua jos esm for luupeissa tutkit joka kierroksella onko sensor x valuet muuttuneet ja jos niin poistutaan luupista heti.


uk350

#3
Feb 26, 2012, 07:01 pm Last Edit: Feb 27, 2012, 12:21 pm by uk350 Reason: 1
for (int i=0; i<=25; i++) {
      pulseServo(servoFrontPin, 1900);
      pulseServo(servoBackPin, 1000);
if(jos sensorrightvalue tai sensorleftvalue muuttujissa ja sensoreissa on eri arvo kuin tähän silmukkaan tullessa)
{
i=tähän sellainen arvo jotta for silmukassa ei tarvitse enää pyöriä
}
 }

edit: muokattu

Go Up