Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <MPU6050_tockn.h>
- int vel1;
- int vel2=255;
- /*int ing = 0;
- int x = 0;
- int xa = 0;*/
- bool motorEsquerda = 1;
- bool motorDireita = 0;
- int Lin1 = 4;
- int Lin2 = 3;
- int Rin1 = 6;
- int Rin2 = 5;
- int Mmode = 7;
- MPU6050 giro(Wire);
- //float ki,kd,kp,z,ang,0;
- void setup() {
- Serial.begin(9600);
- Wire.begin();
- giro.begin();
- giro.calcGyroOffsets(true);
- pinMode(Rin1 ,OUTPUT);
- pinMode(Rin2 ,OUTPUT);
- pinMode(Lin1 ,OUTPUT);
- pinMode(Lin2 ,OUTPUT);
- pinMode(Mmode, INPUT_PULLUP);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- //girar(1);
- curva(180, 0);
- frente();
- delay(1700);
- curva(180, 1);
- }
- void parar(){
- cruzada(1, 127);
- cruzada(0, 127);
- }
- void re(){
- cruzada(1, 0);
- cruzada(0, 0);
- }
- void frente(){
- /*digitalWrite(3, 1);
- digitalWrite(4, 0);
- digitalWrite(5, 1);
- digitalWrite(6, 0); */
- cruzada(1, 255);
- cruzada(0, 255);
- }
- void curva(int angulo, int lado){
- giro.update();
- if(lado == 0){
- int z = giro.getAngleZ();
- int ang = z + angulo*2;
- while(z < ang){
- giro.update();
- cruzada(1, 255);
- cruzada(0, 0);
- z = giro.getAngleZ();
- }
- }
- if(lado == 1){
- int z = giro.getAngleZ();
- int ang = z - angulo*2;
- while(z > ang){
- giro.update();
- cruzada(1, 0);
- cruzada(0, 255);
- z = giro.getAngleZ();
- }
- }
- }
- void cruzada(bool motor, int velocidade){
- if(motor == 1){
- if(velocidade == 127){
- analogWrite(Rin2, 0);
- }
- if(velocidade > 127){
- digitalWrite(Rin1, 1);
- analogWrite(Rin2, map(velocidade, 128, 255, 0, 255));
- }
- if(velocidade < 127){
- digitalWrite(Rin1, 0);
- analogWrite(Rin2, map(velocidade, 126, 0, 0, 255));
- }
- }
- if(motor == 0){
- if(velocidade == 127){
- analogWrite(Lin2, 0);
- }
- if(velocidade > 127){
- digitalWrite(Lin1, 1);
- analogWrite(Lin2, map(velocidade, 128, 255, 0, 255));
- }
- if(velocidade < 127){
- digitalWrite(Lin1, 0);
- analogWrite(Lin2, map(velocidade, 126, 0, 0, 255));
- }
- }
- }
Add Comment
Please, Sign In to add comment