بچه ها این گیرنده رادیو هست با lcd رنگی موجود در فروشگاه که مقدار صدا را هم میشه کم و زیاد کرد و روی نمایشگر مشاهده کرد. راحته . اینم بگم این برنامه را من اختصاصی برای یک کاری درست کردم و تعداد کانال های دریافتی را کم و در موج های فری تنظیم کردم . این برنامه ساده شده دستگاه زیر هست
اینم برنامه :
#include <SPI.h>
#include <Wire.h>
#include "TFT_22_ILI9225.h"
#define TFT_RST 8
#define TFT_RS 9
#define TFT_CS 10 // SS
#define TFT_SDI 11 // MOSI
#define TFT_CLK 13 // SCK
#define TFT_LED 3 // 0 if wired to +5V directly
TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_LED);
int ch, sensorValue,CH1;
#define TEA5767_mute_left_right 0x06
#define TEA5767_MUTE_FULL 0x80
#define TEA5767_ADC_LEVEL_MASK 0xF0
#define TEA5767_STEREO_MASK 0x80
int old_frequency=-1;
int frequency=8770;
byte old_stereo=0;
int ch_old = 1;
int VOL = 1;
byte stereo=1;
byte old_mute=1;
byte mute=0;
byte old_signal_level=1;
byte signal_level=0;
unsigned long last_pressed;
void setup()
{
Wire.begin();
TEA5767_set_frequency();
pinMode(A0, OUTPUT);
digitalWrite(A0, 1);
tft.begin();
tft.clear();
tft.drawRectangle(0, 0, tft.maxX() - 1, tft.maxY() - 1, COLOR_MAGENTA);
tft.drawRectangle(2, 2, tft.maxX() - 3, tft.maxY() - 3, COLOR_MAGENTA);
tft.setOrientation(3);
tft.setFont(Terminal12x16);
tft.drawText(35, 70, "Blue", COLOR_BLUE);
tft.setFont(Terminal12x16);
tft.drawText(90, 70, "Sky ", COLOR_YELLOW);
tft.setFont(Terminal12x16);
tft.drawText(130, 70, "2016", COLOR_RED);
tft.setFont(Terminal6x8);
tft.drawText(70, 90, "FM Receiver", COLOR_GREEN);
tft.setFont(Terminal6x8);
digitalWrite(A0, HIGH);
delay(2000);
tft.clear();
tft.drawRectangle(0, 0, tft.maxX() - 1, tft.maxY() - 1, COLOR_YELLOW);
tft.drawRectangle(2, 2, tft.maxX() - 4, tft.maxY() - 3, COLOR_YELLOW);
tft.fillRectangle(4, 30, 217, 30, COLOR_YELLOW);
tft.setFont(Terminal6x8);
tft.drawText(80, 8, "SETTING", COLOR_WHITE);
tft.drawText(10, 160, "AUX1 MIC USB AUX2 LIN", COLOR_WHITE);
tft.setBackgroundColor(COLOR_BLACK);
tft.setFont(Terminal12x16);
tft.fillRectangle(4, 150, 217, 150, COLOR_YELLOW);
}
void loop() {
TEA5767_read_data();
tft.setFont(Terminal12x16);
int sensorValue = analogRead(A2);
ch = sensorValue/50; // 16-Kanalversion (0-15)
if (ch != ch_old)
{
if (ch == 0) { frequency=8770; tft.drawText(50, 80, "Channel: 1 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:87.7 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 2) { frequency=8790; tft.drawText(50, 80, "Channel: 2 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:87.9 " ,COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 3) { frequency=8810; tft.drawText(50, 80, "Channel: 3 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:88.1 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 4) { frequency=8830; tft.drawText(50, 80, "Channel: 4 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:88.3 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 5) { frequency=8850; tft.drawText(50, 80, "Channel: 5 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:88.5 ", COLOR_YELLOW);TEA5767_set_frequency(); }
else if (ch == 6) { frequency=8870; tft.drawText(50, 80, "Channel: 6 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:88.7 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 7) { frequency=8890; tft.drawText(50, 80, "Channel: 7 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:88.9 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 8) { frequency=10670; tft.drawText(50, 80, "Channel: 8 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:106.7 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 9) { frequency=10690; tft.drawText(50, 80, "Channel: 9 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:106.9 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 10) { frequency=10710; tft.drawText(50, 80, "Channel: 10 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:107.1 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 11) { frequency=10730; tft.drawText(50, 80, "Channel: 11 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:107.3 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 12) { frequency=10750; tft.drawText(50, 80, "Channel: 12 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:107.5 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 13) { frequency=10770; tft.drawText(50, 80, "Channel: 13 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:107.7 ", COLOR_YELLOW); TEA5767_set_frequency(); }
else if (ch == 14) { frequency=10790; tft.drawText(50, 80, "Channel: 14 ", COLOR_YELLOW);tft.setFont(Terminal6x8); tft.drawText(7, 17, "FRQ:107.9 ", COLOR_YELLOW); TEA5767_set_frequency(); }
}
int sensorValue1 = analogRead(A3);
CH1 = sensorValue1/55; // 16-Kanalversion (0-15)
if (CH1 != VOL)
{
if (CH1 == 0) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:10 ", COLOR_YELLOW); }
else if (CH1 == 1) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:20 " ,COLOR_YELLOW); }
else if (CH1 == 3) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:30 ", COLOR_YELLOW); }
else if (CH1 == 4) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:40 ", COLOR_YELLOW); }
else if (CH1 == 5) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:50 ", COLOR_YELLOW); }
else if (CH1 == 6) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:60 ", COLOR_YELLOW); }
else if (CH1 == 7) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:70 ", COLOR_YELLOW); }
else if (CH1 == 8) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:80 ", COLOR_YELLOW); }
else if (CH1 == 9) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:90 ", COLOR_YELLOW); }
else if (CH1 == 10) { tft.setFont(Terminal6x8); tft.drawText(160, 17, "VOL:100 ",COLOR_YELLOW); }
}
}
unsigned char frequencyH = 0;
unsigned char frequencyL = 0;
unsigned int frequencyB;
unsigned char TEA5767_buffer[5]={0x00,0x00,0xB0,0x10,0x00};
void TEA5767_write_data(byte data_size){
Wire.beginTransmission(0x60);
for(byte i=0;i<data_size;i++)
Wire.write(TEA5767_buffer[i]);
Wire.endTransmission();
}
void TEA5767_mute(){
if(!mute){
mute = 1;
TEA5767_buffer[0] |= TEA5767_MUTE_FULL;
TEA5767_write_data(2);
// TEA5767_buffer[0] &= ~TEA5767_mute;
// TEA5767_buffer[2] |= TEA5767_mute_left_right;
}
else{
mute = 0;
TEA5767_buffer[0] &= ~TEA5767_MUTE_FULL;
TEA5767_write_data(2);
// TEA5767_buffer[0] |= TEA5767_mute;
// TEA5767_buffer[2] &= ~TEA5767_mute_left_right;
}
// TEA5767_write_data(3);
}
void TEA5767_set_frequency()
{
frequencyB = 4 * (frequency * 10000 + 225000) / 32768;
TEA5767_buffer[0] = frequencyB >> 8;
if(mute)TEA5767_buffer[0] |= TEA5767_MUTE_FULL;
TEA5767_buffer[1] = frequencyB & 0XFF;
TEA5767_write_data(5);
}
int TEA5767_read_data() {
unsigned char buf[5];
memset (buf, 0, 5);
Wire.requestFrom (0x60, 5);
if (Wire.available ()) {
for (int i = 0; i < 5; i++) {
buf[i] = Wire.read ();
}
stereo = (buf[2] & TEA5767_STEREO_MASK)?1:0;
signal_level = ((buf[3] & TEA5767_ADC_LEVEL_MASK) >> 4);
return 1;
}
else return 0;
}
درود بر کسانی که دعا دارند و ادعا ندارند
نیایش دارند و نمایش ندارند
حیا دارند و ریا ندارند
رسم دارند و اسم ندارند…