Un mussol que cerca preses
Requisitos de finalización
![]() |
|
Desenvolupament
1. Retalla la plantilla o dissenya el teu propi mussol. Doblega el paper per totes les línies que trobis.

Connexions:
- Miniservo al pin 6
- ECHO al pin 2
- TRIG al pin 3

Programació
Ens dirigim a la ide de mblock https://ide.mblock.cc
- Cal afegir una extensió compatible "HC-SR04 Ultrasonic Sensor PCM"


- Escollim la targeta Arduino Uno
- Fem els meus blocs "configuració inicial", "defineix distància" i "mou motor"


- Fem la lògica:

El codi en ArdunioC
// generated by mBlock5 for <your product>
// codes make you happy
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <Servo.h>
float angle_motor = 0;
float sentit = 0;
void configuracio_inicial(){
angle_motor = 90;
sentit = 1;
_delay(1);
}
#define echoPin 2
#define trigPin 3
long duration;
long distance;
void defineix_distancia(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration/58.2;
delay(50);
Serial.println(String("distancia: ") + String(distance));
}
Servo servo_6;
void mou_motor(){
if(sentit == 1.000000){
if(angle_motor > 160){
sentit = 0;
}
angle_motor = (angle_motor + 3);
servo_6.write(angle_motor);
}
if(sentit == 0.000000){
if(angle_motor < 20){
sentit = 1;
}
angle_motor = ((angle_motor - 3));
servo_6.write(angle_motor);
}
Serial.println(String("angle motor: ") + String(angle_motor));
Serial.println(String("sentit: ") + String(sentit));
}
void _delay(float seconds) {
long endTime = millis() + seconds * 1000;
while(millis() < endTime) _loop();
}
void setup() {
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.begin(115200);
servo_6.attach(6);
configuracio_inicial();
while(1) {
defineix_distancia();
if(distance > 30){
mou_motor();
}
_delay(0.05);
_loop();
}
}
void _loop() {
}
void loop() {
_loop();
}
Carreguem el programa a la placa
- Copiem el codi de "vista prèvia: Arduinoc".
- Obrim la IDE d'Arduino.
- Esborrem el que hi hagi i enganxem el nostre codi
- Connectem la placa per USB (parem l'alimentació de la pila)
- Assegurem que estigui escolli el port i la placa al menú d'Eines
- Verifiquem el codi
- Pugem el codi
Enllaços d'interès
- Activitat original a: ?
- Plantilla en pdf https://moodle.communia.org/pluginfile.php/1726/mod_page/content/53/musol_modificat.pdf i en svg https://moodle.communia.org/pluginfile.php/1726/mod_page/content/53/musol_modificat.svg
- Projecte a la IDE de Mblock https://planet.mblock.cc/project/1670921
Compliquem el projecte?
- Fem que el mussol giri segons la lectura d'un potenciòmetre?
- Fem que un brunzidor faci soroll quan la distància sigui menor a 30 cm?
Última modificación: martes, 4 de octubre de 2022, 18:10
