TEA5767 모듈로 FM 라디오 제작입니다. 주파수 나오는건 oled 128×32 디스플레이 사용했습니다. TEA5767모듈의 문제점이 음량 조절이 안된다는건데 이건 스피커 볼륨으로 조정하셔야 하거나 추가로 앰프 모듈 설치로 해결 가능합니다. 지금 앰프 모듈이 있긴 한데 이건 다음에 추가 작업해서 올리겠습니다.
버튼 2개로 미리 셋팅해 놓은 주파수의 위아래 변경이 가능합니다.
#include#include #include #define I2C_ADDRESS 0x3C #include "SSD1306Ascii.h" #include "SSD1306AsciiWire.h" SSD1306AsciiWire oled; // pin assignments const byte DN_PIN(7), UP_PIN(8); Button btnUP(UP_PIN), btnDN(DN_PIN); // define the buttons const float freqArr[] = {89.1, 89.7, 91.9, 93.1, 93.9, 94.5, 95.1, 95.9, 97.3, 98.1, 101.3}; //, 102.7, 103.5, 104.5, 104.9, 106.1, 107.7 int freqNum = 0; TEA5767N radio = TEA5767N(); void setup() { Serial.begin(9600); btnUP.begin(); btnDN.begin(); radio.selectFrequency(freqArr[freqNum]); Serial.print(freqArr[freqNum]); Serial.print(", signal strength: "); Serial.println(radio.getSignalLevel()); Wire.begin(); oled.begin(&Adafruit128x32, I2C_ADDRESS); oled.setFont(System5x7); oled.set2X(); oled.clear(); oled.print(String(freqArr[freqNum])); } void loop() { btnUP.read(); btnDN.read(); if (btnUP.wasReleased()) // if the button was released, change the LED state { freqNum < 10 ? freqNum++ : freqNum = 0; radio.selectFrequency(freqArr[freqNum]); Serial.print(freqArr[freqNum]); Serial.print(", signal strength: "); Serial.println(radio.getSignalLevel()); oled.clear(); oled.print(String(freqArr[freqNum])); } if (btnDN.wasReleased()) // if the button was released, change the LED state { freqNum > 0 ? freqNum-- : freqNum = 10; radio.selectFrequency(freqArr[freqNum]); Serial.print(freqArr[freqNum]); Serial.print(", signal strength: "); Serial.println(radio.getSignalLevel()); oled.clear(); oled.print(String(freqArr[freqNum])); } }
'Arduino' 카테고리의 다른 글
MAX471 전압, 전류 센서 (0) | 2019.01.28 |
---|---|
avrdude: stk500_getsync(): not in sync: resp=0x00 (0) | 2019.01.27 |
Arduino Mega Camera (0) | 2019.01.08 |
NRF24L01 통신하기 (0) | 2019.01.08 |
NRF24L01 다중연결 통신 (0) | 2019.01.08 |