Un semàfor amb barrera
![]() |
|
Desenvolupament
1. Retalla la plantilla o dissenya el teu propi semàfor. Doblega el paper per totes les línies que trobis. Els rectangles blancs de la barrera serveixen per reforçar l'estructura. S'han de doblegar cap a dintre.

2. Retalla un quadre de celofàn i enganxa'l amb pega a la part interior del semàfor

3. Fixa els leds amb cinta adhesiva a les parets oposades al paer de celófan .
4. Uneix el pal amb la caixa principal i la base.
5. Doblega i enganxa la caixa de la barrera.

Connexions:
- Miniservo al pin 7
- Led al pin 5
- Led al pin 4

Programació
Ens dirigim a la ide de mblock https://ide.mblock.cc i fem el següent programa:
- Escollim la targeta Arduino Uno
- Fem el programa
- Afegim: Esdeveniments > Quan s'engegui l'Arduino
- Afegim: Control > per sempre
- Afegim: Pin > estableix la sortida del pin digital 4 com alta
- Afegim: Pin > estableix la sortida del pin digital 5 com baixa
- Afegim: Pin > estableix el servo del pin 7 com a 45
- Afegim: Control > espera 1 s
- Afegim: Pin > estableix la sortida del pin digital 4 com baixa
- Afegim: Pin > estableix la sortida del pin digital 5 com alta
- Afegim: Pin > estableix el servo del pin 7 com a 135
- Afegim: Control > espera 1 s

El codi en ArdunioC
// codes make you happy
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <Servo.h>
Servo servo_7;
void _delay(float seconds) {
long endTime = millis() + seconds * 1000;
while(millis() < endTime) _loop();
}
void setup() {
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
servo_7.attach(7);
while(1) {
digitalWrite(4,1);
digitalWrite(5,0);
servo_7.write(45);
_delay(1);
digitalWrite(4,0);
digitalWrite(5,1);
servo_7.write(135);
_delay(1);
_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: http://diwo.bq.com/construye-tu-propio-semaforo/
- Plantilla de semàfor i barrera https://moodle.communia.org/pluginfile.php/1557/mod_page/content/54/semaforo-plantilla-Diwo.pdf
- Projecte a la IDE de Mblock https://planet.mblock.cc/project/1567063 (trobareu diferents projectes a cada dispositiu d'Arduino Uno)
Compliquem el projecte?
- Refactoritzem el codi?
- Fes que la barrera sempre estigui abaixada i el semàfor en vermell, en polsar un polsador s'aixequi la barrera i el semàfor es posi en verd.
- Fes que la barrera sempre estigui abaixada i el semàfor en vermell, quan s'acosti un cotxe detectat per un sensor d'ultrasons
s'aixequi la barrera i el semàfor es posi
1 Refactoritzem el codi:
Fem el codi més llegible mitjançant les funcions "endavant" i "stop":

2. En
polsar un polsador s'aixequi la barrera i el semàfor es posi en verd.


3. Quan s'acosti un cotxe detectat per un sensor d'ultrasons s'aixequi la barrera i el semàfor es posi en verd
Cal connectar els ultrasons amb cables separats, té 4 connectors (2 pins de control "echo" i "tri", i els 2 "gnd" i "vcc" del circuit elèctric)

Cal afegir una extensió compatible "HC-SR04 Ultrasonic Sensor PCM"



