Difference between revisions of "PAM8403 Stereo Amplifier"
Jump to navigation
Jump to search
(Created page with "= Description = An amplifier can be used to driver bigger speakers and to generate sound that is louder. The amplifier is connected (similar to a speaker) to the ESP32/E...") |
m |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
The amplifier is connected (similar to a [[speaker]]) to the ESP32/ESP8266, it is also connected to power, and then it has connections for the speakers. | The amplifier is connected (similar to a [[speaker]]) to the ESP32/ESP8266, it is also connected to power, and then it has connections for the speakers. | ||
− | [[ | + | [[File:Amplifier.PNG|x300px]] |
− | [[File:Amplifier2.PNG| | + | [[File:Amplifier2.PNG|x300px]] |
− | [[ | + | [[File:Amplifer03.PNG|x300px]] |
= How to connect it electrically = | = How to connect it electrically = | ||
− | [[File: | + | [[File:Mono.PNG|x400px]] |
+ | [[File:Stereo.PNG|x400px]] | ||
= How to control it in MicroPython = | = How to control it in MicroPython = | ||
== Basic code to generate a 500 Hz signal == | == Basic code to generate a 500 Hz signal == | ||
+ | creating a mono singnal with 500Hz on Pin 27 (connected to the left channel) | ||
<syntaxhighlight lang="python" line='line'> | <syntaxhighlight lang="python" line='line'> | ||
from machine import Pin | from machine import Pin | ||
from time import sleep, sleep_us, sleep_ms | from time import sleep, sleep_us, sleep_ms | ||
− | # assume our | + | # assume our amplifier is connected to Pin 27, we use it as output |
myLED = Pin(27, Pin.OUT) | myLED = Pin(27, Pin.OUT) | ||
Line 67: | Line 69: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[ | + | |
− | [[ | + | [[File:Amplifier.PNG|x300px]] |
+ | [[File:Amplifer03.PNG|x300px]] | ||
= Related Tutorial Videos = | = Related Tutorial Videos = | ||
<youtube>HPQMvL1SP_c</youtube> | <youtube>HPQMvL1SP_c</youtube> | ||
+ | |||
+ | [[Category:Actuators]] |
Latest revision as of 09:31, 14 June 2024
Contents
Description[edit]
An amplifier can be used to driver bigger speakers and to generate sound that is louder.
The amplifier is connected (similar to a speaker) to the ESP32/ESP8266, it is also connected to power, and then it has connections for the speakers.
How to connect it electrically[edit]
How to control it in MicroPython[edit]
Basic code to generate a 500 Hz signal[edit]
creating a mono singnal with 500Hz on Pin 27 (connected to the left channel)
1 from machine import Pin
2 from time import sleep, sleep_us, sleep_ms
3
4 # assume our amplifier is connected to Pin 27, we use it as output
5 myLED = Pin(27, Pin.OUT)
6
7 #generate a 500Hz on/off signal
8 while True:
9 # this switcheson for 1ms = 1000 us
10 myLED.on()
11 sleep_us(1000)
12 # this switches off for 1 ms = 1000 us
13 myLED.off()
14 sleep_us(1000)
Code to play a melody - decoding notes[edit]
Example code shows how you can play a melody with the speaker. If you want to add higher notes see https://en.wikipedia.org/wiki/Piano_key_frequencies for the needed frequency. The example code was taken and edited from https://micropython-on-esp8266-workshop.readthedocs.io/en/latest/basics.html#beepers.
There are some issues with restarting PWM outputs - see Known Issues.
1 # beeper code from https://micropython-on-esp8266-workshop.readthedocs.io/en/latest/basics.html#beepers
2 from machine import Pin, PWM
3 from time import sleep
4
5 tempo = 4
6 #notes and corresponding frequency
7 tones = {
8 'c': 262,
9 'd': 294,
10 'e': 330,
11 'f': 349,
12 'g': 392,
13 'a': 440,
14 'b': 494,
15 'C': 523,
16 ' ': 0,
17 }
18 pin = Pin(27, Pin.OUT)
19 # Init Beeper without frequency.
20 beeper = PWM(pin, duty=512)
21 melody = 'cdefggaaaagaaaagffffeeddddc'
22 rhythm = [8, 8, 8, 8, 4, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 4, 4, 8, 8, 8, 8, 4]
23
24 for tone, length in zip(melody, rhythm):
25 beeper.freq(tones[tone])
26 sleep(tempo/length)
27
28 beeper.deinit()
Related Tutorial Videos[edit]