Stap 3: Code
[code]Versie 3.0 door Owen Sobel
Dit programma wordt gebruikt voor het besturen van een robot met behulp van een app die communiceert met Arduino via een bluetooth-module.
Fout Code grafiek: Code 01; Turnradius is hoger dan de snelheid; Code 02; Snelheid is hoger dan 255;
#define in1 5 //L298n Motor sluitpinnetjes.
#define in2 6
#define 3 10
#define in4 11
#define LED 13
int de opdracht; Int voor het opslaan van app opdracht staat.
int Speed = 204; 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; Stel de straal van een bocht, 0 - 255 Opmerking: de robot zal storing indien dit hoger dan int snelheid is.
int brakeTime = 45;
int brkonoff = 1; 1 voor het elektronisch remsysteem, 0 voor normaal.
VOID Setup {}
pinMode (in1, OUTPUT);
pinMode (in2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (in4, OUTPUT);
pinMode (LED, uitvoer); De LED-pincode instellen.
Serial.begin(9600); Stel de baud-rate op uw Bluetooth-module.
}
void loop {}
Als (Serial.available() > 0) {}
opdracht = Serial.read();
Stop(); Initialiseren met motoren stoped.
schakelaar (opdracht) {}
Case "F":
vooruit();
breken;
Case "B":
Back();
breken;
geval 'L':
datumwaarde;
breken;
Case 'R':
rechts();
breken;
Case 'G':
forwardleft();
breken;
Case 'ik':
forwardright();
breken;
Case "H":
backleft();
breken;
Case "J":
backright();
breken;
Case '0':
Snelheid = 100;
breken;
Case '1':
Snelheid = 140;
breken;
Case '2':
Snelheid = 153;
breken;
Case '3':
Snelheid = 165;
breken;
Case '4':
Snelheid = 178;
breken;
Case '5':
Snelheid = 191;
breken;
Case "6":
Snelheid = 204;
breken;
Case '7':
Snelheid = 216;
breken;
zaak '8':
Snelheid = 229;
breken;
Case '9':
Snelheid = 242;
breken;
Case "q":
Snelheid = 255;
breken;
}
Speedsec = Turnradius;
Als (brkonoff == 1) {}
brakeOn();
} else {}
brakeOff();
}
}
}
ongeldig vooruit() {}
analogWrite (in1, snelheid);
analogWrite (3, snelheid);
}
VOID back() {}
analogWrite (in2, snelheid);
analogWrite (in4, snelheid);
}
VOID datumwaarde {}
analogWrite (3, snelheid);
analogWrite (in2, snelheid);
}
VOID rechts() {}
analogWrite (in4, snelheid);
analogWrite (in1, snelheid);
}
ongeldig forwardleft() {}
analogWrite (in1, Speedsec);
analogWrite (3, snelheid);
}
ongeldig forwardright() {}
analogWrite (in1, snelheid);
analogWrite (3, Speedsec);
}
ongeldig backright() {}
analogWrite (in2, snelheid);
analogWrite (in4, Speedsec);
}
ongeldig backleft() {}
analogWrite (in2, Speedsec);
analogWrite (in4, snelheid);
}
VOID Stop() {}
analogWrite (in1, 0);
analogWrite (in2, 0);
analogWrite (3, 0);
analogWrite (in4, 0);
}
ongeldig brakeOn() {}
Hier is het toekomstige gebruik: een elektronisch remsysteem!
Lees de drukknop invoer pin:
buttonState = commando;
Vergelijk de buttonState om de vorige versie
Als (buttonState! = lastButtonState) {}
Als de status is veranderd, de teller ophogen
Als (lastButtonState == 'F') {}
Als (buttonState == de ') {}
Back();
delay(brakeTime);
Stop();
}
}
Als (lastButtonState == 'B') {}
Als (buttonState == de ') {}
vooruit();
delay(brakeTime);
Stop();
}
}
Als (lastButtonState == 'L') {}
Als (buttonState == de ') {}
rechts();
delay(brakeTime);
Stop();
}
}
Als (lastButtonState == 'R') {}
Als (buttonState == de ') {}
datumwaarde;
delay(brakeTime);
Stop();
}
}
}
opslaan van de huidige status als de staat die als laatste,
voor de volgende keer door de lus
lastButtonState = buttonState;
}
ongeldig brakeOff() {}
}
[/ code]