Projecte fet per Víctor Casas Díez en la classe d'electrotècnia de segon de batxillerat en el col·legi Sagrada Família de Gavà.
DAU ELECTRÒNIC
DAU ELECTRÒNIC
METODOLOGIA:
El meu projecte té la intenció de crear un circuit que tingui la forma d’un dau. El sistema està connectat a un polsador de manera que quan l’activem, el circuit activi un número a l’atzar del nostre dau; depenent del número que surti, els LEDs que hem instal·lat s’encendran durant uns segons.
Per exemple, en un dau el número 1 es representa com un punt al centre, per tant, si surt aquesta xifra aleatòria en el comand de programació una vegada activem el polsador, el LED del mig s’encendrà automàticament ja que és el que està al centre.
COMPONENTS:
En aquest cas, no he tingut cap problema alhora de trobar els components necessaris per crear el circuit, ja que tots els materials ja els portava en el meu kit Arduino. També cal recalcar que el projecte es centra més en el camp de la programació que en el de la electrònica, és per això perque el número de materials és petit:
En aquest cas, no he tingut cap problema alhora de trobar els components necessaris per crear el circuit, ja que tots els materials ja els portava en el meu kit Arduino. També cal recalcar que el projecte es centra més en el camp de la programació que en el de la electrònica, és per això perque el número de materials és petit:
- Arduino Uno. (En el meu cas he utilitzat un Arduino Mega, però això no és cap problema ja que el meu programa està configurat perque capti aquesta placa)
- 7 LEDs.
- 7 resistències de 200 ohms.
- 1 resistencia de 150k ohms.
- Interruptor / polsador físic.
- Tabler de circuits o breadboard.
- Cable pel tabler.
Per portar a terme el projecte basant-me en tot el que sé d’Arduino, he pogut trobar un tutorial on s’explica amb molt detall el procés per crear el dau electrònic: https://descubrearduino.com/dados/
8-3-2018
No he trobat cap problema alhora de crear el circuit del dau electrònic, he comprovat si els components estan ben instal·lats i he vist si els comandaments de programació són els correctes. Els problemes venen quan verifiquem el programa i el connectem al circuit. Aquest últim activa uns certs LEDs durant un interval de temps sense cap raó i no reaccionen al polsador.
10-3-2018
He pogut solucionar els diferents problemes que havia en el circuit i ara el dau electrònic compleix amb les funcions programades. El primer problema va ser un error de programació dins de la funció del polsador. El meu propòsit, en un principi, era utilitzar el polsador com a eina per activar el circuit manualment, quan el problema era que el circuit estava funcionant de manera automàtica. Per tant, la solució al problema era canviar la funció del polsador d'activat (HIGH) a desactivat (LOW), de manera que ara podem activar el circuit manualment.
El segon problema que em vaig trobar van ser les posicions dels ànodes i els càtodes dels LEDs, no vaig tenir en compte la representació dels LEDs en el circuit i alguns d'ells no funcionaven correctament. Com a conclusió, el dau electrònic funciona a la perfecció i compleix amb les expectatives demanades.
19-4-2018
Per fer més interessant el projecte del dau electrònic volia afegir un brunzidor i aplicar-li un script de manera que sempre que activés el dau el brunzidor provocaria un so durant uns segons. El que hem de fer per programar el brunzidor no és res diferent del que ja hem fet: haurem de crear una variable pel brunzidor i una funció int per el component. En el nostre cas afegirem la funció int al pin número 10 i li direm a la funció que s'ha d'activar per uns segons i després que pari automàticament. Per orientar-me amb el projecte he trobat una pàgina web que explica com afegir aquesta funció a un dau electrònic: http://www.profetolocka.com.ar/2015/02/13/dado-electronico-con-arduino-uno/.
També m'he basat en les pràctiques d'arduinostarterkit.
20-4-2018
Per instal·lar el brunzidor i fer-lo funcionar haurem de crear una funció En principi no he trobat cap problema en el circuit elèctric, el meu problema és que la placa base m'està donant problemes i està deixant de funcionar. He buscat informació i és possible que la placa hagi deixat de funcionar perque li he aplicat un voltatge molt elevat en un període molt llarg però no ho puc saber amb claredat.
27-4-2018
He descobert que la placa no estava trencada, és possible que hagi algun component que estigui mal ficat i que hagi provocat un curtcircuit. He vist també que no puc afegir una connexió de 5V al circuit ja que el circuit ja està rebent 3.3V
3-5-2018
He pogut fer que funcioni el brunzidor en el dau electrònic, el meu incovenient és que el brunzidor està trencat i no s'escolta molt bé el so però en principi compleix amb les funcions que hem programat.
RESULTAT
El dau està acabat i funciona correctament, l'únic problema és el brunzidor
CODI
int button=2;
int bottomLeft=3;
int middleLeft=4;
int upperLeft=5;
int middle=6;
int bottomRight=7;
int middleRight=8;
int upperRight=9;
int buzzer=10;
int state=0;
long randNumber;
void setup() {
pinMode(bottomLeft, OUTPUT);
pinMode(middleLeft, OUTPUT);
pinMode(upperLeft, OUTPUT);
pinMode(middle, OUTPUT);
pinMode(bottomRight, OUTPUT);
pinMode(middleRight, OUTPUT);
pinMode(upperRight, OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(button, INPUT);
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop() {
if (digitalRead(button)==LOW && state== 0) {
state=1;
randNumber=random(1, 7);
delay(100);
Serial.println(randNumber);
if (randNumber==6) {
six(); timbre(); }
if (randNumber==5) {
five(); timbre(); }
if (randNumber==4) {
four(); timbre(); }
if (randNumber==3) {
three(); timbre();}
if (randNumber==2) {
two(); timbre(); }
if (randNumber==1) {
one();timbre(); }
delay(4000);
clearAll();
state=0;
}
}
void six() {
digitalWrite(bottomLeft, HIGH);
digitalWrite(middleLeft, HIGH);
digitalWrite(upperLeft, HIGH);
digitalWrite(bottomRight, HIGH);
digitalWrite(middleRight, HIGH);
digitalWrite(upperRight, HIGH);
}
void five() {
digitalWrite(bottomLeft, HIGH);
digitalWrite(middle, HIGH);
digitalWrite(upperLeft, HIGH);
digitalWrite(bottomRight, HIGH);
digitalWrite(upperRight, HIGH);
}
void four() {
digitalWrite(bottomLeft, HIGH);
digitalWrite(upperLeft, HIGH);
digitalWrite(bottomRight, HIGH);
digitalWrite(upperRight, HIGH);
}
void three() {
digitalWrite(middle, HIGH);
digitalWrite(upperLeft, HIGH);
digitalWrite(bottomRight, HIGH);
}
void two() {
digitalWrite(upperLeft, HIGH);
digitalWrite(bottomRight, HIGH);
}
void one(){
digitalWrite(middle, HIGH);
}
void clearAll() {
digitalWrite(bottomLeft, LOW);
digitalWrite(middleLeft,LOW);
digitalWrite(upperLeft, LOW);
digitalWrite(middle, LOW);
digitalWrite(bottomRight, LOW);
digitalWrite(middleRight, LOW);
digitalWrite(upperRight, LOW);
}
void timbre() {
digitalWrite (buzzer, HIGH);
delay (1000);
digitalWrite (10, LOW);
}