Connexions

  • L298N In1 : pin 2
  • L298N In2 : pin 3
  • L298N In3 : pin 4
  • L298N In4 : pin 5
  • L298N +12v : 5v
  • L298N GND : GND
  • IR dreta: 8
  • IR esquerra: 9
  • Ultrasons echo: 11
  • Ultrasons tri : 12

Funcions


Programa


Link projecte mblock

Arduino code:

// generated by mBlock5 for <your product>
// codes make you happy

#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

float infraroig_esquerra = 0;
float infraroig_dret = 0;
float distancia = 0;

void parat(){
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
Serial.println("Estic parat");

}
void llegir_infraroig_esquerra(){
infraroig_esquerra = digitalRead(8);
Serial.println("Infraroig esquerra: ");
Serial.println(infraroig_esquerra);

}
void endavant(){
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
Serial.println("Vaig endavant");

}
void gira_esquererra(){
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
Serial.println("Girant a l'esquerra");

}
void llegir_infraroig_dret(){
infraroig_dret = digitalRead(9);
Serial.println("Infraroig dret: ");
Serial.println(infraroig_dret);

}
#define echoPin 11
#define trigPin 12

long duration;
long distance;

void llegir_ultraons(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration/58.2;
delay(50);
distancia = distance;
Serial.println("distancia:");
Serial.println(distancia);

}
void marxa_enrrera(){
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,1);
Serial.println("Faig marxa enrere");

}
void gira_dreta(){
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,0);
Serial.println("Girant a la dreta");

}

void _delay(float seconds) {
long endTime = millis() + seconds * 1000;
while(millis() < endTime) _loop();
}

void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
Serial.begin(115200);
pinMode(8,INPUT);
pinMode(9,INPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
while(1) {
parat();
_delay(1);
endavant();
_delay(1);
gira_dreta();
_delay(1);
gira_esquererra();
_delay(1);
marxa_enrrera();
_delay(1);

_loop();
}

}

void _loop() {
}

void loop() {
_loop();
}

Darrera modificació: divendres, 25 de febrer 2022, 12:25