Grafik Ekranlı Radyo Tasarlama

Merhaba arkadaşlar. Arduino ileGrafik ekran üzerinde animasyonlu şekilde radyo tasarlayabilirsiniz. Bunu yapabilmek için nokia5110 grafik Lcd ve Si4703 FM modülünü kullanabilirsiniz.

Kullanılan Malzemeler

Si4703 FM module

Arduino Nano ,UNO yada Pro mini

Nokia 5510  Grafik LCD modülü

4 Buton

 

Bağlantı Şeması

 

Projenin bağlantılarını yaptıktan sonraki görünüşü.

 

 

//Libraries:
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <Si4703_Breakout.h>
#include <Wire.h>
#include <Button.h>
 
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); //(SCLK, DIN, DC, CS, RST)
Si4703_Breakout radio(2, A4, A5); // (resetPin, SDIO, SCLK)
 
Button KnopVolOmlaag(9, PULLUP);
Button KnopVolOmhoog(10, PULLUP);
Button KnopFreqOmhoog(11, PULLUP);
Button KnopFreqOmlaag(12, PULLUP);
 
//Variables:
int volume = 5; // Zet volume op 5.
int frequentie = 962; // Zet frequentie op 92.6 Mhz
 
void setup () {
  Wire.begin();
  radio.powerOn();
  radio.setVolume(volume);
  radio.setChannel(frequentie);
 
  display.begin();
  display.setContrast(60);
  display.clearDisplay();
}
 
void loop () {
  // Laat freqentie zien!
  String frequentiestr = String(frequentie);
  display.setTextSize(2);
  display.setTextColor(BLACK);
  display.setCursor(0,0);
  display.print(frequentiestr.substring(0,2));1
  display.print(".");  
  display.print(frequentiestr.substring(2,3));
  display.print("0");
  display.setCursor(47,15);
  display.print("MHz");
 
  // Laat freqentie band zien!
  display.setCursor(0,20);
  display.setTextSize(1);
  display.print("FM");
 
  // Laat volume zien.
  display.setCursor(0,35);
  display.setTextSize(1);
  display.setTextColor(WHITE, BLACK);
  display.print(volume);
  display.print("/15 ");
 
  display.display();
  delay(500);
  display.clearDisplay(); 
 
  // Teken een driehoek.
  display.drawLine(80, 30, 80, 45, BLACK);
  display.drawLine(80, 45, 50, 45, BLACK);
  display.drawLine(50, 45, 80, 30, BLACK);
 
  // Tekenlijnen in het driehoek.
  for (int x = 0; x < volume; x++) { 
    display.drawLine(50+2*x, 45, 50+2*x, 45-x, BLACK);
  }
 
  // Lees knop uit en neem actie.
  if (KnopFreqOmhoog.isPressed()) {
    frequentie = radio.seekUp();
    delay(700);
  }
  // Lees knop uit en neem actie.
  if (KnopFreqOmlaag.isPressed()) {
    frequentie = radio.seekDown();
    delay(700);
  }
  // Lees knop uit en neem actie.
  if (KnopVolOmhoog.isPressed()) {
    volume ++;
    if (volume == 16) volume = 15;
    radio.setVolume(volume);
    delay(700);
  }
  // Lees knop uit en neem actie.
  if (KnopVolOmlaag.isPressed()) {
    volume --;
    if (volume < 0) volume = 0;
    radio.setVolume(volume);
    delay(700);
  }
delay(100);
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.