まずはスピーカーを鳴らしてみる。
以前、参考にしたサイトでスピーカーのつなぎ方を確認。
そのサイトでも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のコンデンサ。
コンデンサを入れず直結(注意!スピーカーに直流を入れると壊れるらしい)