まずはスピーカーを鳴らしてみる。
以前、参考にしたサイトでスピーカーのつなぎ方を確認。
そのサイトでもPICを使ってスピーカーを鳴らしているので、同じくPICで鳴らす。
440Hzのパルスを出力するように__delay_usで間を空けた。
/*
* File: main.c
* Author: sakai
*
* Created on 2014/12/14, 16:39
*/
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#define _XTAL_FREQ 8000000
#pragma config FOSC = INTOSC // INTOSCIO
#pragma config CLKOUTEN = OFF
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config MCLRE = ON
#pragma config BOREN = ON // Brown Out Detect
#pragma config WDTE = OFF
#pragma config CPD = OFF // Data Code Protection bit
#pragma config CP = OFF
#pragma config PWRTE = ON
#pragma config PLLEN = OFF
#pragma config STVREN = ON
#pragma config WRT = OFF
#pragma config BORV = HI
#pragma config LVP = OFF
/*
*
*/
int main(int argc, char** argv) {
OSCCON = 0b01110010; // 8MHz
ANSELA = 0b00000000; // アナログは使用しない(全部デジタル)
TRISA = 0b00000000; // ピンの入出力方向を全部出力
PORTA = 0b00000000; // ピンの出力を全部LOW
while (1) {
RA2 = 1;
__delay_us(1136);
RA2 = 0;
__delay_us(1136);
}
return (EXIT_SUCCESS);
}
コンデンサC1は先のサイトで10μFと47μFの2種類あったので、それぞれ差し替えてみたけど違いはわからない。
10μFのコンデンサ。
47μFのコンデンサ。
コンデンサを入れず直結(注意!スピーカーに直流を入れると壊れるらしい)
