|
ultimo aggiornamento 23 febbraio 2011 |
![]()
La scheda qui presentata è uno Shield che collegato
alla scheda Arduino 2009 permette l'utilizzo del modulo sonoro LPM11162.
Il prototipo è stato montato utilizzando una Proto Shield V.4.
Sulla scheda è presente uno
stadio
alimentatore,
uno di interfaccia per adattamento delle tensioni, tra il
processore Arduino e il modulo LPM11162,
uno stadio amplificatore,
due led di
segnalazione, un pulsante
di reset del processore.
![]() |
![]() |

Stadio necessario per fornire la tensione di 3.3V per l'alimentazione del modulo LPM11162.
La tensione è derivata da quella di +5V fornita dalla scheda Arduino 2009
E' utilizzato il regolatore LM317LZ, la tensione d'uscita è dimensionata a
3.3V tramite le due resistenze da 240Ω e 390Ω.
| LM317LZ Regolatore di tensione regolabile | ||
![]() |
|
![]() |
| Piedinatura | Datasheet | Foto dell'integrato |

Il modulo LPM11162 funziona con una tensione di
alimentazione di +3.3V, e anche le comunicazioni seriale e i segnali di reset e
busy sono e devono essere a questa tensione, il processore Arduino ha una logica
a +5V.
Per questo motivo è necessario adattare i livelli uscenti ed entranti dal
modulo.
Per quelli entranti (RX - Reset) è sufficiente un partitore realizzato con due
resistenze che abbassano la tensione.
Per quelli uscenti si sono utilizzati due transistor BC337 che "trasferiscono" il
segnale dalla tensione di +3.3V a +5V.
| Transistor BC337 (NPN Switching and Amplifier Applications ) | ||
![]() |
|
![]() |
| Piedinatura | Datasheet | Foto del transistor (contenitore plastico) |
![]() |
|
Il segnale audio analogico in
uscita dal pin 9 del modulo LPM11162 è connesso ad un amplificatore con
LM386.
Questo circuito integrato è molto diffuso perché con pochi componenti esterni è
in grado di pilotare direttamente un piccolo altoparlante, il package è un
piccolo DIP8 e si tratta di un componente economico.
Lo schema utilizzato nella demoboard è il più semplice realizzabile. I
pin 1 ed 8 sono previsti per una regolazione del guadagno dell'amplificatore nel range
20÷200.
Se lasciati aperti il guadagno è quello minimo, quindi l'ampiezza del segnale
sull'altoparlante sarà 20 volte quella di ingresso sul pin 3, mentre inserendo
come indicato nello schema un condensatore elettrolitico da 10 µF
l'amplificazione sarà pari a 200.
Al pin di ingresso arriva il segnale audio proveniente dal modulo
opportunamente attenuato dal trimmer R11 da 10K.
Questa attenuazione è necessaria per
limitare il valore massimo del segnale ingresso all'LM386 in modo da non far
saturare l'uscita. Tramite il trimmer possiamo poi effettuare una regolazione
del volume quando necessario.
l condensatore da 47nF e la resistenza da 10Ω in serie sull'uscita
dell'amplificatore sono necessari per rendere stabile l'amplificatore come
indicato nel datasheet.
C'è poi un condensatore di disaccoppiamento in serie
all'altoparlante che costituisce un blocco in corrente continua.
| LM 386 Low Voltage Audio Power Amplifier | ||
![]() |
|
![]() |
| Piedinatura | Datasheet | Foto dell'integrato |

Il modulo audio
LPM11162 è un piccolo componente con una
memoria flash interna progettato per memorizzare e riprodurre file wave grazie a
pochi semplici comandi seriali.
Le quattro linee RX, TX, Busy, Reset sono connesse al processore Arduino tramite
una
La cui uscita analogica è collegata a sua volta all'amplificatore audio di potenza che pilota un altoparlante.
Per la programmazione del modulo si deve collegare un PC e scaricare all'interno del modulo audio i file wave
che saranno riprodotti come sintesi vocale.
Una volta che tramite il PC avremo
programmato i messaggi all'interno del modulo audio il microcontrollore dovrà
soltanto inviare il comando di Play (indicando il nome del file wave da
riprodurre) per iniziare la riproduzione del file.
Teniamo presente che l'ultimo firmware v1.2R
del modulo LPM11162 consente la memorizzazione fino ad un massimo di 128 file
wave.
| LPM11162 Modulo audio/voce | ||
|
|
|
|
| Piedinatura | Datasheet | Foto dell'integrato |
Sono disponibili due led connessi alle porti digitali 5 e 6 del processore Arduino, ogni led è connesso ad una resistenza limitatrice.
![]() |
|

Per effettuare il reset del Processore Arduino è presente un pulsante connesso al pin reset del connettore da cui vengono anche prelevate le tensioni +5V e Vin per alimentare il circuito
![]() |
|
Schema elettrico complessivo
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Per chi usa il programma EAGLE per disegnare i propri circuiti, ho creato il simbolo con il modello 3d, per ulteriori informazioni vedere la pagina di istruzioni.
| Nome simbolo: LPM 11162 | |
| Fabbricante: LP Elettronica. | |
| Datasheet :
|
|
|
All'interno del file:
Per le istruzioni di caricamento dei files vedi apposita pagina |
Alcune fasi del montaggio
|
|
|
|
|
|
|
|
|
I programmi di gestione
/* Programma:Test_lpm11162.pde Versione: 1.0 Collaudo modulo LPM11162 di Adriano Gandolfo */ #include <NewSoftSerial.h> NewSoftSerial LPM(4, 7); void setup() { pinMode (2, INPUT); // Pin 2 Busy pinMode (3, OUTPUT); // Pin 3 RESET pinMode (5, OUTPUT); // Pin 5 LED Play-verde pinMode (6, OUTPUT); // Pin 6 LED Busy-Rosso LPM.begin(9600); // opens serial port, sets data rate to 9600 bps delay (1000); digitalWrite(3, LOW); // Reset del modulo LPM11162 delay(10); //Pausa di 10 ms tempo tRL digitalWrite(3,HIGH); // delay(600); // Pausa di 600 ms Tempo tRA LPM.print(byte(85)); // Invio carattere di autobaudrate delay(150); // Pausa prima invio del comando Play } void loop() { digitalWrite(5, LOW); // Spegne led Verde digitalWrite(6, LOW); // Spegne led Rosso LPM.print(16,BYTE); // Play LPM.print(0,BYTE); LPM.print(9,BYTE); LPM.print("rosso.wav"); // Pronuncia frase delay (3000); digitalWrite(6,HIGH); // Accende led rosso delay (500); LPM.print(16,BYTE); // Play LPM.print(0,BYTE); LPM.print(9,BYTE); LPM.print("verde.wav"); // Pronuncia frase delay (2000); digitalWrite(5,HIGH); // Accende led Verde delay (2000); } |
/* Programma:Test_lpm11162_v1.pde Versione: 1.0 Collaudo modulo LPM11162 di Adriano Gandolfo */ #include <NewSoftSerial.h> #include <LPM11162.h> LPM11162 AudioModule; void setup() { //Begin parameters: rx pin, tx pin, reset pin, busy pin, baudrate. AudioModule.begin(4, 7, 3, 2, 9600); pinMode (5, OUTPUT); // Pin 5 LED Play-verde pinMode (6, OUTPUT); // Pin 6 LED Busy-Rosso } void loop() { digitalWrite(5, LOW); // Spegne led Verde digitalWrite(6, LOW); // Spegne led Rosso AudioModule.volume(50); AudioModule.play("rosso.wav"); // Pronuncia frase delay (2000); digitalWrite(6,HIGH); // Accende led rosso delay (500); AudioModule.play("verde.wav"); // Pronuncia frase delay (2000); digitalWrite(5,HIGH); // Accende led Verde delay (2000); } |
| Elenco revisioni | |
| 23/02/2011 | Aggiornato pagina con inserimento foto e materiale del prototipo |
| 17/09/2010 | Emissione preliminare |