Cotxe Mblock Renacuajo BQ amb 2 servos
Requisits de compleció
Connexions
- IR dreta: 3
- IR esquerra: 2
- Servo dret: 9
- Servo esquerre: 6
- Ultrasons: 11 (echo), 12 (tri)

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 llegir_infraroig_dret(){
infraroig_dret = digitalRead(9);
Serial.println("Infraroig dret: ");
Serial.println(infraroig_dret);
}
void endavant(){
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
Serial.println("Vaig endavant");
}
#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 gira_esquererra(){
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
Serial.println("Girant a l'esquerra");
}
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ó: dijous, 24 de febrer 2022, 13:06