Devices & Components
Arduino Nano
Rotary potentiometer (generic)
Development Board, Class D Audio Amplifier Module
Alphanumeric LCD, 16 x 2
Speaker, Piezo
tea5767 FM RADIO IC
Rotary Encoder with Push-Button
Toggle Switch, (On)-Off-(On)
Antenna, Cellular / LTE
Li-Ion Battery 100mAh
Software & Tools
Arduino IDE
Project description
Code
digital radio code
arduino
copy and paste
1// This project is in public Domain // 2// Project Designer... Ramji Patel376// 3//visit Arduino.cc and project Hub// 4#include <Wire.h> 5#include <LiquidCrystal.h> 6#define clk 2 7#define dt 3 8#define sw 4 9 10LiquidCrystal lcd(5,6,7,8,9,10); 11 12double frequency; 13unsigned char frequencyH = 0; 14unsigned char frequencyL = 0; 15unsigned int frequencyB; 16volatile boolean TurnDetected; 17volatile boolean up; 18 19void isr0 () { 20 TurnDetected = true; 21 up = (digitalRead(clk) == digitalRead(dt)); 22} 23void setFrequency() { 24 frequencyB = 4 * (frequency * 1000000 + 225000) / 32768; 25 frequencyH = frequencyB >> 8; 26 frequencyL = frequencyB & 0XFF; 27 Wire.beginTransmission(0x60); 28 Wire.write(frequencyH); 29 Wire.write(frequencyL); 30 Wire.write(0xB0); 31 Wire.write(0x10); 32 Wire.write((byte)0x00); 33 Wire.endTransmission(); 34} 35void displaydata(){ 36 lcd.setCursor(1,0); 37 lcd.print("FM:"); 38 lcd.print(frequency); 39} 40void setup() { 41 Wire.begin(); 42 lcd.begin(16, 2); 43 pinMode(clk,INPUT); 44 pinMode(dt,INPUT); 45 pinMode(sw,INPUT); //frequency mode 46 frequency = 92.7; //starting Frequency 47 setFrequency(); 48 displaydata(); 49 attachInterrupt (0,isr0,FALLING); 50} 51void loop() { 52if (TurnDetected){ 53 if(up){ 54 if (frequency >= 107.90){ 55 setFrequency(); 56 displaydata();} 57 else{ 58 frequency = frequency + 0.1; 59 setFrequency(); 60 displaydata();}} 61 else{ 62 if (frequency <= 87.6){ 63 setFrequency(); 64 displaydata();} 65 else{ 66 frequency = frequency - 0.1; 67 setFrequency(); 68 displaydata();} 69 } 70 TurnDetected = false; 71 } 72} 73 74 75 76 77
digital radio code
arduino
copy and paste
1// This project is in public Domain // 2// Project Designer... Ramji Patel376// 3//visit Arduino.cc and project Hub// 4#include <Wire.h> 5#include <LiquidCrystal.h> 6#define clk 2 7#define dt 3 8#define sw 4 9 10LiquidCrystal lcd(5,6,7,8,9,10); 11 12double frequency; 13unsigned char frequencyH = 0; 14unsigned char frequencyL = 0; 15unsigned int frequencyB; 16volatile boolean TurnDetected; 17volatile boolean up; 18 19void isr0 () { 20 TurnDetected = true; 21 up = (digitalRead(clk) == digitalRead(dt)); 22} 23void setFrequency() { 24 frequencyB = 4 * (frequency * 1000000 + 225000) / 32768; 25 frequencyH = frequencyB >> 8; 26 frequencyL = frequencyB & 0XFF; 27 Wire.beginTransmission(0x60); 28 Wire.write(frequencyH); 29 Wire.write(frequencyL); 30 Wire.write(0xB0); 31 Wire.write(0x10); 32 Wire.write((byte)0x00); 33 Wire.endTransmission(); 34} 35void displaydata(){ 36 lcd.setCursor(1,0); 37 lcd.print("FM:"); 38 lcd.print(frequency); 39} 40void setup() { 41 Wire.begin(); 42 lcd.begin(16, 2); 43 pinMode(clk,INPUT); 44 pinMode(dt,INPUT); 45 pinMode(sw,INPUT); //frequency mode 46 frequency = 92.7; //starting Frequency 47 setFrequency(); 48 displaydata(); 49 attachInterrupt (0,isr0,FALLING); 50} 51void loop() { 52if (TurnDetected){ 53 if(up){ 54 if (frequency >= 107.90){ 55 setFrequency(); 56 displaydata();} 57 else{ 58 frequency = frequency + 0.1; 59 setFrequency(); 60 displaydata();}} 61 else{ 62 if (frequency <= 87.6){ 63 setFrequency(); 64 displaydata();} 65 else{ 66 frequency = frequency - 0.1; 67 setFrequency(); 68 displaydata();} 69 } 70 TurnDetected = false; 71 } 72} 73 74 75 76 77
Downloadable files
digital radio circuit
you can download it from easy eda website
digital radio circuit
Comments
Only logged in users can leave comments