CARI
KATEGORI
KATEGORI
Home / FORUM / All / Hobby / Hobby & Community /
Hobby Elektronika Digital, MicroController & solder Menyolder gabung sini Yuks
KASKUS
51
244
https://www.kaskus.co.id/thread/000000000000000002654259/hobby-elektronika-digital-microcontroller-amp-solder-menyolder-gabung-sini-yuks

Hobby Elektronika Digital, MicroController & solder Menyolder gabung sini Yuks

DIGITAL ELECTRONICS HOBBY FORUM




Spoiler for apa aja sih yang dibahas?:


Spoiler for "Hobby Microcontroller Itu Mahal ? Kreativitasmu Itu yg Mahal Gan !":




UPDATE 8/JUNI/2014

DUKUN FUSEBIT AKAN MENGHIDUPKAN IC MU YANG MATI !



Selengkapnya dibahas di sini gan !!

CLINOMETER SEDERHANA MEMANFAATKAN ADC



Selengkapnya dibahas di post berikut




Spoiler for Buka Jika Mau Paket Belajar:


Proyek2 micro yg sudah jadi
Quote:



I.N.D.E.X F.O.R.U.M

Quote:




Biar ngiler, ane kasih contoh hasil karya TS...






Spoiler for Contact TS lewat dimari yahh:



.
Diubah oleh ahocool
GAK berhenti disini...tambah lagi...

PLAY WAV (PCM) on AVR

dapetnya dari mbah google : http://avrpcm.blogspot.com/2010/11/p...g-any-avr.html

jadi kali ini kita membuat AVR play WAV file paling primitif ( 8kbps mono)

jadi tools2nya dapat dibaca diweb diatas, ada proses merubah file wav ke mode memory di AVR

besar memory dari chip micro menjadi faktor pembatas, karena diriku memakai atmega8515, wah cuman 8 mega tuh flashnya, jadi hanya bisa 2 detik saja...sekiranya punya atmega 16/32 dll mungkin suara yg dihasilkan lebih panjang

codenya seperti berikut, output speaker dihubungkan ke pin OC1A (atmega8515=pin no 15)

Code:

/*
courtesy of: http://avrpcm.blogspot.com/2010/11/playing-8-bit-pcm-using-any-avr.html

*/

#include <stdint.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#define SAMPLE_RATE 8000;

#include "mantap.c" //ganti dengan file koversi wav yg sesuai
const long pcm_length=6500; //ganti dengan panjang file wav (dalam byte)
volatile uint16_t sample;
int sample_count;

/* initialise the PWM */
void pwm_init(void)
{
/* use OC1A pin as output */
DDRD = _BV(PD5);

/*
* 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 */

TCCR0|=(1<<CS00);
TCNT0=0;
TIMSK|=(1<<TOIE0);
sample_count = 4;
sei(); //Enable interrupts
}



ISR(TIMER0_OVF_vect)
{

sample_count--;
if (sample_count == 0)
{
sample_count = 4;
OCR1A = pgm_read_byte(&[COLOR="Red"]mantap[/COLOR][sample++]); // ganti dengan nama file konversi tanpa ".c"
if(sample>pcm_length)sample=0;
}
}



int main(void)
{
pwm_init();
while(1);//do nothing
}




sedangkan untuk file konversi dapat di baca cara merubahnya di web diatas, atau download aja file2 berikut yg udah aku konversi & sudah jadi hex.....

[url]http://www.4*shared.com/file/_joS5W3g/mantap.html[/url]




hasilnya seperti ini nehhh

GDP Network
© 2020 KASKUS, PT Darta Media Indonesia. All rights reserved
Ikuti KASKUS di