記得我做收音機還是在讀小學時,用一個二極管接一條長長的電線再接一個耳機,幾乎聽不到什么東西。但是覺得很神奇,想知道得更多些,從此愛上電子技術。當然那時候也喜歡航模什么的,超喜歡一本雜志是《中學科技》,還有《電子世界》《無線電》,里面介紹了很多電子知識。可能因為看多了,很多電路方面的原理都是自己悟出來的。裝的第一臺7管收音機是在讀高二時,在雜志上看到有黃河741套件,就買回來裝了。想想是三十年 前了的事情了。當時聽到收音響起來有多激動。
重新想起收音機是幾個月前的事。不知道為什么,只是突然想聽收音機了,就在網上搜相關資料。之前看到的數字收音都只是加了數字顯示功能。收音電路部分還是模擬的,并沒有什么吸引我的。但看到DSP收音后才知道,原來通信技術真的發展到軟件通信階段了。基本上所有功能都通過單片機運算實現,已經成了一臺計算機了,真太神奇了。這又激起了我的興趣。想著自己裝一臺,再自己定制界面,沒事再改改程序,好爽啊。在礦壇里看到sudywolf大牛的帖子,所有資料都共享出來,太好了,非常感謝這些無私的人。只是sudywolf大牛當時給出的是觸摸屏控制的代碼。我手頭只有按鍵和1602。完全用他的代碼不行。就根據他給出的資料改成現在這個樣子。用著感覺挺好。以后還可以再增加功能,很好玩。先發出來給大家看看。
代碼也發出來,只有2個文件,有需要可以下載參考。里面有注釋,很好懂。功能不多,只有向前搜臺,音量增減。讀懂后可以斷續增加其他功能。
制作出來的實物圖如下:
IMG_20200112_090833R.jpg (412.2 KB, 下載次數: 93)
下載附件
現在的樣子
2020-1-31 09:46 上傳
11.jpg (444.5 KB, 下載次數: 95)
下載附件
和老收音機合個影
2020-1-31 09:47 上傳
單片機源程序如下:
- #include <Arduino.h>
- #include <EEPROM.h>
- #include <Wire.h>
- #include <LiquidCrystal.h>
- #include "akc6955.h"
- AKC6955_RADIO radio;
- //設置針腳。音量用芯片上電位器控制電路
- //byte pinSS=8; //自動搜所有臺并保存按鍵
- byte pinNext=10; //下一個臺按鍵
- byte pinPrev=11; //上一個臺按鍵
- //byte pinBand=9; //波段按鍵
- byte pinVoldec=12; //音量減
- byte pinVoladd=8; //音量加
- byte val;
- void setup(void)
- {
- lcd.begin(16,2);
- radio.Initialize();
- //pinMode(pinSS,INPUT_PULLUP);//掃描全部并保存。INPUT_PULLUP使用內部上拉電阻
- pinMode(pinNext,INPUT_PULLUP);//next
- pinMode(pinPrev,INPUT_PULLUP);//prev
- //pinMode(pinBand,INPUT_PULLUP);//band
- pinMode(pinVoldec,INPUT_PULLUP);
- pinMode(pinVoladd,INPUT_PULLUP);
- }
- void loop()
- {
- val=digitalRead(pinNext);
- if (val==LOW)
- {
- delay(80);
- if (val==LOW) radio.Seek(1);//搜索下一個臺
- }
- val=digitalRead(pinPrev);
- if (val==LOW)
- {
- delay(80);
- if (val==LOW) radio.Seek(0); //搜索下一個臺
- } //搜索上一個臺
- /* val=digitalRead(pinBand);
- if (val==LOW) //下一個波段
- {
- delay(80);
- if (val==LOW)
- {while(bcount++>3) bcount=0;
- radio.band_cursor = (++ radio.band_cursor) % BAND_COUNT ;
- radio.switchBand(radio.band_cursor);
- }
- } */
- val=digitalRead(pinVoldec);
- if(val==LOW)
- {
- delay(80);
- if (val==LOW&&(radio.reg6.sound_volume-23) >= 1) //音量減少
- radio.setVolume(--radio.reg6.sound_volume);
- }
- val=digitalRead(pinVoladd);
- if(val==LOW)
- {delay(80);
- if (val==LOW&&(radio.reg6.sound_volume-23) < 40) //音量增加
- radio.setVolume(++radio.reg6.sound_volume);
- }
- delay(100);
- }
復制代碼
51hei.png (3.9 KB, 下載次數: 93)
下載附件
2020-1-31 13:44 上傳
部分程序下載(不完整):
My6955.zip
(6.07 KB, 下載次數: 67)
2020-1-31 09:48 上傳
點擊文件名下載附件
收音機代碼 下載積分: 黑幣 -5
|