Cotxe Mblock amb 2 motors DC, control de motors amb L298N
Completion requirements
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();
}
Last modified: Friday, 25 February 2022, 12:25 PM