Make Yourself a Speaking ATMEGA128

Introduction: Make Yourself a Speaking ATMEGA128


In previous weekend, I made myself a speaking ATMEGA128.
I used ATMEGA128 and LM386 as an amplifier,

Let's get started

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: The Part I Need for This Project

These parts are needed for this project :

1. LM386
5. Small speaker
6. LCD 16x2

Step 2: Assemble the Project

Here's the connection I used for this project :

I connected PB5 as an input for LM386
and for LCD :
#define lcd_data_pin PORTA

#define en PORT_D.b2
#define rs PORT_D.b3
#define rw PORT_D.b4

Step 3: The Code

I used PWM and timer for this project
void pwm_init(void)
    /* use OC1A pin as output */
    DDRB = _BV(PB5);

    * clear OC1A on compare match
    * set OC1A at BOTTOM, non-inverting mode
    * Fast PWM, 8bit
    TCCR1A = _BV(COM1A1) | _BV(WGM10);

    * Fast PWM, 8bit
    * Prescaler: clk/1 = 8MHz
    * PWM frequency = 8MHz / (255 + 1) = 31.25kHz
    TCCR1B = _BV(WGM12) | _BV(CS10);

    /* set initial duty cycle to zero */
    OCR1A = 0;

    /* Setup Timer0 */

    sample_count = 4;
    sei(); //Enable interrupts

Step 4: Test and Enjoy Yourself a Speaking ATMEGA128

Test and enjoy yourself a speaking ATMEGA128
See and hear the video :

Thanks for reading and enjoy the project ;)
Pocket Sized Electronics

Participated in the
Pocket Sized Electronics

Epilog Challenge V

Participated in the
Epilog Challenge V

Be the First to Share


    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest



    6 years ago

    Thanks for including the codes! I really like your project.