A/0
Activitat 0
- Conceptes bàsics per seguir la resta d'activitats del manual instròniks.
La primera activitat que farem serà la de fer sonar notes o una melodia pel brunzidor mitjançant Arduino.
1. Primer fem sonar un LA (440Hz) i encendre un LED.
2. Modificarem fent sonar 2 sons (greu i agut) i que un LED vagi quan hi hagi so.
3. 2 LEDs i una seqüència de 4 notes
4. Canvi del brunzidor per una sortida minijack o per un jack i com posar-hi volum.
5. Escriure o transcriure una melodia
1 Arduino UNO
1 Protoboard
1 Altaveu piezoelèctric
2 Díodes emissors de llum o diode LED
1 Resistència elèctrica de 230 Ohms
1 Connector jack de 3.5mm per a protoboard
Diversos cables (mascle – mascle)
// Manual Instròniks
// A1.1.1 Fer sonar un LA
// Configuració de l'Arduino que només s'executa una vegada.
void setup() {
// Configurar el pin 3 a l'Arduino com a Sortida, pel SO
pinMode (3, OUTPUT);
// Configurar el pin 13 a l'Arduino com a Sortida, pel LED
pinMode (13, OUTPUT); // pin Led
}
// Configuració de l'Arduino que s'executarà moltes vegades de manera infinita
void loop() {
// encén el LED
digitalWrite (13, HIGH);
// fes sonar un LA que té una freq de 440Hz per la sortida 3 durant 20ms
tone (3,440,20);
// espera 500 ms (mig segon)
delay (500);
// apaga el LED
digitalWrite (13, LOW);
// pq no soni res pel pin 3
noTone (3);
// espera 500 ms
delay (500);
}
// Manual Instròniks
// A1.1.2 Fer sonar un so greu i un agut
// Configuració de l'Arduino que només s'executa una vegada.
void setup() {
// Configurar el pin 3 a l'Arduino com a Sortida, pel SO
pinMode (3, OUTPUT);
// Configurar el pin 13 a l'Arduino com a Sortida, pel LED
pinMode (13, OUTPUT); // pin Led
}
// Configuració de l'Arduino que s'executarà moltes vegades de manera infinita
void loop() {
// encén el LED
digitalWrite (13, HIGH);
// CANVI: fes sonar un so GREU a una freq de 200Hz per la sortida 3 durant 20ms
tone (3,200,20);
// espera 500 ms (mig segon)
delay (500);
// apaga el LED
digitalWrite (13, LOW);
// CANVI: fes sonar un so AGUT a una freq de 7000Hz per la sortida 3 durant 20ms
tone (3,7000,20); // fem sonar un so agut
// espera 500 ms
delay (500);
}
// Manual Instròniks
// A1.2.1 Seqüència de 4 notes amb 2 leds
// En aquest cas només comentem les línies que són noves
void setup() {
pinMode (3,OUTPUT);
pinMode (13,OUTPUT);
// CANVI: Configurar el pin 12 a l'Arduino com a Sortida, pel segon LED
pinMode (12,OUTPUT);
}
void loop() {
digitalWrite (13,HIGH);
tone (3,200,20);
delay (200);
digitalWrite (13,LOW);
tone (3,7000,20),
delay (200);
// CANVI: Encen el 2n LED connectat al pin 12
digitalWrite (12, HIGH);
// CANVI: fes sonar un so GREU a una freq de 500Hz per la sortida 3 durant 20ms
tone (3, 500, 20);
// CANVI: Espera 200 ms
delay (200);
// CANVI: Apaga el 2n LED connectat al pin 12
digitalWrite (12, LOW);
// CANVI: fes sonar un so AGUT a una freq de 4000Hz per la sortida 3 durant 20ms
tone (3, 4000, 20);
// CANVI: Espera 200 ms
delay (200);
}
// Manual Instròniks
// A1.2.2 Seqüència de 4 notes amb 2 leds i variable de temps
// En aquest cas només comentem les línies que són noves
// CANVI: Declarem una variable per indicar el valor de temps entre notes
int tempo = 200;
void setup() {
pinMode (3,OUTPUT);
pinMode (13,OUTPUT);
pinMode (12,OUTPUT);
}
void loop() {
digitalWrite (13,HIGH);
tone (3,200,20);
// CANVI: Fem servir la variable tempo que té valor 200 per dir temps d'espera
delay (tempo);
digitalWrite (13,LOW);
tone (3,7000,20),
delay (tempo);
digitalWrite (12, HIGH);
tone (3, 500, 20);
// CANVI: Fem servir la variable tempo que té valor 200 per dir temps d'espera
delay (tempo);
digitalWrite (12, LOW);
tone (3, 4000, 20);
// CANVI: Fem servir la variable tempo que té valor 200 per dir temps d'espera
delay (tempo);
}
// Manual Instròniks
// A1.3 Melodia: El Gegant del Pi
// Anirem fent una seqüència amb els dos leds amb la melodia
// Variables de tipus enter per recordar les freqüències de les notes
int do4 = 264;
int re4 = 297;
int mi4 = 330;
int fa4 = 352;
int sol4 = 396;
int la4 = 440;
int si4 = 495;
int do5 = 528;
// El valor que li donem a la espera entre notes
int tempo = 400;
// durada de la nota que és una negra
int negra = 100;
// durada de la nota que és una corxera
int corxera = 50;
void setup() {
// pin Sortida So
pinMode(3, OUTPUT);
// pin Led1
pinMode(13, OUTPUT);
// pin Led2
pinMode(12, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
tone(3, mi4, corxera); // fem sonar la primera nota
delay(tempo / 2); // la meitat perquè és val la meitat que la negra
digitalWrite(13, LOW);
tone(3, fa4, corxera);
delay(tempo / 2);
digitalWrite(12, HIGH);
tone(3, sol4, negra);
delay(tempo);
digitalWrite(12, LOW);
tone(3, mi4, negra);
delay(tempo);
digitalWrite(13, HIGH);
tone(3, do4, negra);
delay(tempo);
digitalWrite(13, LOW);
tone(3, fa4, corxera);
delay(tempo / 2);
digitalWrite(12, HIGH);
tone(3, mi4, corxera);
delay(tempo / 2);
digitalWrite(12, LOW);
tone(3, re4, corxera);
delay(tempo / 2);
digitalWrite(13, HIGH);
tone(3, do4, corxera);
delay(tempo / 2);
digitalWrite(13, LOW);
tone(3, re4, corxera);
delay(tempo / 2);
digitalWrite(12, HIGH);
tone(3, re4, corxera);
delay(tempo / 2);
digitalWrite(12, LOW);
tone(3, mi4, corxera);
delay(tempo / 2);
digitalWrite(13, HIGH);
tone(3, do4, corxera);
delay(tempo / 2);
digitalWrite(13, LOW);
tone(3, mi4, corxera);
delay(tempo / 2);
digitalWrite(12, HIGH);
tone(3, fa4, corxera);
delay(tempo / 2);
digitalWrite(12, LOW);
tone(3, sol4, negra);
delay(tempo);
digitalWrite(13, HIGH);
tone(3, mi4, negra);
delay(tempo);
digitalWrite(13, LOW);
tone(3, do4, negra);
delay(tempo);
digitalWrite(12, HIGH);
tone(3, fa4, corxera);
delay(tempo / 2);
digitalWrite(12, LOW);
tone(3, mi4, corxera);
delay(tempo / 2);
digitalWrite(13, HIGH);
tone(3, re4, corxera);
delay(tempo / 2);
digitalWrite(13, LOW);
tone(3, do4, corxera);
delay(tempo / 2);
digitalWrite(12, HIGH);
tone(3, re4, corxera);
delay(tempo / 2);
digitalWrite(12, LOW);
tone(3, mi4, corxera);
delay(tempo / 2);
digitalWrite(13, HIGH);
tone(3, do4, negra);
delay(tempo);
digitalWrite(13, LOW);
noTone(3);
// esperem 3 tempo per tornar a començar
delay(3 * tempo);
}
Com heu vist al vídeo anterior, hem modificat el programa per fer una pulsació programada.
A. Segur que ja sabeu què són les figures a música (negra, blanca, corxera, semicorxera, …). Podeu fer un programa a l’Arduino que demostri aquestes figures bàsiques?
B. Modifiqueu el programa per fer una melodia, per exemple, quina és aquesta?

NOTA: Si tens resposta a alguna d’aquestes preguntes, o alguna observació, la pots compartir per Twitter.
Etiqueta la resposta amb el hashtag: #instroniks_a1 i @instroniks
Així la podrem veure dins d’aquesta activitat.