Nell’articolo di oggi vedremo come iniziare a collegare e programmare i vari moduli e sensori presenti sulla Smart Home di keyestudio suonando un motivetto con il buzzer.
Ma che cosa è un cicalino passivo? Il principio di funzionamento del cicalino passivo si fonda sull’utilizzo della modulazione PWM le cui onde permettono la vibrazione dell’aria sulla membrana interna del cicalino generando così un suono. Impostando la frequenza delle onde correttamente, si possono generare suoni differenti. Per esempio inviando una pulsazione di 523Hz si genera un Do, con una pulsazione di 587Hz si genera un re, con una pulsazione di 659Hz si genera un Mi. Mettendo insieme tutto ciò si può costruire e suonare una canzone.
Per maggiori dettagli tecnici scrissi un articolo qualche anno fa: Arduino e buzzer: componiamo i Pirati dei Caraibi
Arriviamo subito al sodo.
I materiali da utilizzare sono i seguenti:
- Board e shiled collegati
- Buzzer
- cavo usb fornito dal kit
- 1 cavo dotato di 3 pin F-F
Diagramma di collegamento
Non è necessario seguire in modo rigoroso questo diagramma di collegamento, puoi collegare il led in modo indistinto dal PIN 0 al pin 13, basta che si rispettino il collegamento dei pin G (Ground), V (Vcc) e S. Come riportato nel precedente articolo introduttivo collegate nella fase di assemblaggio i cavi in modo tale che il filo nero corrisponda a G, quello rosso corrisponda a R e quello dell’altro colore corrisponda a S. In questo modo potrai collegare in modo sicuro e rapido il modulo/sensore sulla shiled. Inoltre puoi anche collegarli “a caso” su una qualsiasi terna di pin dal n.0 al 13 e poi quando vuoi utilizzare quel sensore/modulo verifichi dove è stato collegato. Io personalmente farei una tabella a cui associo a ogni sensore/modulo alla terna dei pin a cui è stata collegato.
Codice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
#define NTD0 -1 #define NTD1 294 #define NTD2 330 #define NTD3 350 #define NTD4 393 #define NTD5 441 #define NTD6 495 #define NTD7 556 #define NTDL1 147 #define NTDL2 165 #define NTDL3 175 #define NTDL4 196 #define NTDL5 221 #define NTDL6 248 #define NTDL7 278 #define NTDH1 589 #define NTDH2 661 #define NTDH3 700 #define NTDH4 786 #define NTDH5 882 #define NTDH6 990 #define NTDH7 112 // List all D-tuned frequencies #define WHOLE 1 #define HALF 0.5 #define QUARTER 0.25 #define EIGHTH 0.25 #define SIXTEENTH 0.625 // List all beats int tune [] = // List each frequency according to the notation { NTD3, NTD3, NTD4, NTD5, NTD5, NTD4, NTD3, NTD2, NTD1, NTD1, NTD2, NTD3, NTD3, NTD2, NTD2, NTD3, NTD3, NTD4, NTD5, NTD5, NTD4, NTD3, NTD2, NTD1, NTD1, NTD2, NTD3, NTD2, NTD1, NTD1, NTD2, NTD2, NTD3, NTD1, NTD2, NTD3, NTD4, NTD3, NTD1, NTD2, NTD3, NTD4, NTD3, NTD2, NTD1, NTD2, NTDL5, NTD0, NTD3, NTD3, NTD4, NTD5, NTD5, NTD4, NTD3, NTD4, NTD2, NTD1, NTD1, NTD2, NTD3, NTD2, NTD1, NTD1 }; float durt [] = // List the beats according to the notation { 1,1,1,1, 1,1,1,1, 1,1,1,1, 1 + 0.5,0.5,1 + 1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1 + 0.5,0.5,1 + 1, 1,1,1,1, 1,0.5,0.5,1,1, 1,0.5,0.5,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,0.5,0.5, 1,1,1,1, 1 + 0.5,0.5,1 + 1, }; int length; int tonepin = 3; // Use interface 3 void setup () { pinMode (tonepin, OUTPUT); length = sizeof (tune) / sizeof (tune [0]); // Calculate length } void loop () { for (int x = 0; x <length; x ++) { tone (tonepin, tune [x]); delay (350* durt [x]); // This is used to adjust the delay according to the beat, 350 can be adjusted by yourself. noTone (tonepin); } delay (2000); // delay 2S } // |
Apri arduino IDE e scrivi il seguente codice, una volta fatto sei pronto per caricare il codice sulla board arduino.
Prova
Riconosci questo motivetto? Se non lo sai è “inno alla gioia”. Hai visto cosa può fare un piccolo buzzer?
Ora tocca a te
Prova a modificare il dei valori e vedere cosa accade al motivetto.
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano