that_one_nigga_you_k

olha o codigo

Sep 14th, 2023
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.88 KB | None | 0 0
  1. //algoritmo para seguir a linha
  2.  
  3. /*
  4. pino 2 sensor de luz
  5.  
  6. digitalRead = 1 -> branco
  7.  
  8. Pino 10 - Dist Echo
  9. Pino 8 Dist Trig
  10.  
  11. pino 6 e 7 -> sentido do motor esquerdo
  12. pino 9 -> PWM do motor esquerdo
  13.  
  14. pino 4 e 5 -> sentido do motor direito
  15. pino 3 -> PWM do motor direito
  16.  
  17.  meiaCurva(1, 95);   ASSIM ELE VAI RETO
  18.   delay(500);
  19.   meiaCurva(0,80);
  20.   delay(500);
  21. */
  22.  
  23. // andar(0); -> trás
  24. // andar(1); -> frente
  25.  
  26. #include <math.h>
  27.  
  28. void setup() {
  29.   // put your setup code here, to run once:
  30.   //sensor optico
  31.   Serial.begin(9600);
  32.   pinMode(2, INPUT);
  33.  
  34.   pinMode(6, OUTPUT);
  35.   pinMode(7, OUTPUT);
  36.   pinMode(8, OUTPUT);
  37.   pinMode(9, OUTPUT);
  38.   pinMode(3, OUTPUT);
  39.   pinMode(4, OUTPUT);
  40.   pinMode(5, OUTPUT);
  41. }
  42.  
  43. void loop() {
  44.   // put your main code here, to run repeatedly:
  45.   /*int viuPreto = digitalRead(2);
  46.   int foiParaEsquerda = 0;
  47.   int foiParaDireita = 1;
  48.   Serial.println(viuPreto);
  49.   if(viuPreto == 0){    
  50.     curva(1, 100);  
  51.     delay(5);
  52.     Serial.println("to vendo carai");
  53.   }
  54.  
  55.   else{
  56.     curva(0, 100);
  57.     delay(5);
  58.     Serial.println("n to vendo n carai");
  59.   }
  60. */
  61.  
  62. /*
  63.  
  64.   for(int i = 0 ; i < 15 ; i++){
  65.     parkinson(70);
  66.   }
  67. */
  68.  seguirLinha();
  69. }
  70.  
  71. void andar(bool dir, int pot){
  72.   int np = map(pot, 0, 100, 0, 95);
  73.   int npp = map(pot, 0, 100, 0, 80);
  74.   if(dir == 0){
  75.     digitalWrite(6, 1);
  76.     digitalWrite(7, 0);
  77.     digitalWrite(4, 1);
  78.     digitalWrite(5, 0);
  79.     analogWrite(3, np);
  80.     analogWrite(9, npp);
  81.   }
  82.   else{
  83.     digitalWrite(6, 0);
  84.     digitalWrite(7, 1);
  85.     digitalWrite(4, 0);
  86.     digitalWrite(5, 1);
  87.     analogWrite(3, np);
  88.     analogWrite(9, npp);
  89.   }
  90. }
  91.  
  92. void curva(bool dir, int pot){
  93.   int np = map(pot, 0, 100, 0, 95);
  94.   int npp = map(pot, 0, 100, 0, 80);
  95.   if(dir == 0){
  96.     digitalWrite(6, 1);
  97.     digitalWrite(7, 0);
  98.     digitalWrite(4, 0);
  99.     digitalWrite(5, 1);
  100.     analogWrite(3, np);
  101.     analogWrite(9, npp);
  102.   }
  103.  
  104.    else{
  105.     digitalWrite(6, 0);
  106.     digitalWrite(7, 1);
  107.     digitalWrite(4, 1);
  108.     digitalWrite(5, 0);
  109.     analogWrite(3, np);
  110.     analogWrite(9, npp);
  111.   }
  112.  
  113. }
  114.  
  115. void parkinson(int pot){
  116.   /*não pensei nos parâmetros dessa disgraça*/
  117.   float n = 1;
  118.   meiaCurva(0, pot);
  119.   delay(333/n);
  120. }
  121.  
  122. void meiaCurva(bool dir, int pot){
  123.   int np = map(pot, 0, 100, 0, 95);
  124.   int npp = map(pot, 0, 100, 0, 80);
  125.    if(dir == 0){
  126.     digitalWrite(6, 0);
  127.     digitalWrite(7, 1);
  128.     digitalWrite(4, 1);
  129.     digitalWrite(5, 0);
  130.     analogWrite(3, 0);
  131.     analogWrite(9, npp);
  132. }
  133.  
  134.    else{
  135.     digitalWrite(6, 1);
  136.     digitalWrite(7, 0);
  137.     digitalWrite(4, 0);
  138.     digitalWrite(5, 1);
  139.     analogWrite(3, np);
  140.     analogWrite(9, 0);
  141.   }
  142. }
  143.  
  144. void seguirLinha(){
  145.   // isso aqui vai checando pelo preto apenas pelo lado direito
  146.   int viuBranco = digitalRead(2);
  147.   if(viuBranco == 1){
  148.     meiaCurva(1, 80);
  149.   }
  150.   else{
  151.     meiaCurva(0, 80);
  152.     delay(250);
  153.   }
  154. }
  155.  
Add Comment
Please, Sign In to add comment