tu je kod:
Kód: Vybrat vše
#include <Adafruit_SSD1306.h>
#include <IRremote.h>
#include <SparkFunSi4703.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <avr/power.h>
#include <SPI.h>
#define OLED_RESET LED_BUILTIN //4
#include <DS3231.h>
Adafruit_SSD1306 display(OLED_RESET);
DS3231 clock;
RTCDateTime dt;
const int resetPin = 12;
const int SDIO = A4;
const int SCLK = A5;
Si4703_Breakout radio(resetPin, SDIO, SCLK);
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key_value = 0;
int volume;
float channel;
void setup(){
pinMode(2,INPUT_PULLUP);
irrecv.enableIRIn();
irrecv.blink13(true);
Serial.begin(9600);
pinMode(11,OUTPUT);
analogReference(INTERNAL);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
//clock.begin();
radio.powerOn();
radio.setVolume(3);
}
void loop()
{
digitalWrite(11,LOW);
int analogvalue = analogRead(A0);
{Serial.println(analogvalue);
delay (1000);}
if (irrecv.decode(&results)){
if (results.value == 0XFFFFFFFF)
results.value = key_value;
delay(100);
switch(results.value){
case 0xFFE21D:
channel = radio.seekUp();
break;
case 0xFFA25D:
channel = radio.seekDown();
break;
case 0xFFA857:
volume ++;
if (volume == 16) volume = 15;
radio.setVolume(volume);
break;
case 0xFFE01F:
volume --;
if (volume < 0) volume = 0;
radio.setVolume(volume);
break;
case 0xFF30CF:
radio.setChannel(943);
channel = 943;
break;
case 0xFF18E7:
radio.setChannel(966);
channel = 966;
break;
case 0xFF7A85:
radio.setChannel(884);
channel = 884;
break;
case 0xFF10EF:
radio.setChannel(1048);
channel = 1048;
break;
case 0xFF38C7:
radio.setChannel(930);
channel = 930;
break;
case 0xFFC23D:
display.clearDisplay();
display.display();
digitalWrite(11,HIGH); // vypnutie mosfetu
break;
}
key_value = results.value;
irrecv.resume();
}
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("VOLUME");
display.setCursor(45,0);
display.println(volume);
display.setCursor(0,12);
display.println("kanal");
display.setCursor(70,12);
display.println(channel/10);
display.setCursor(110,12);
display.println("Mhz");
if(analogvalue>300){
display.drawLine(105, 2, 105, 5, WHITE);}
if(analogvalue>330){
display.drawLine(110, 2, 110, 5, WHITE);}
if(analogvalue>360){
display.drawLine(115, 2, 115, 5, WHITE);}
if(analogvalue>390){
display.drawLine(120, 2, 120, 5, WHITE);}
if(analogvalue<=299){
display.setTextSize(2);
display.setCursor(20,25);
display.println("LOW BAT");
}
else if(channel == 943){
display.setTextSize(2);
display.setCursor(15,25);
display.println("FUNRADIO");
}
else if(channel == 966){
display.setTextSize(2);
display.setCursor(0,25);
display.println("RAD.SLOVENSKO");
}
else if(channel == 884){
display.setTextSize(2);
display.setCursor(20,25);
display.println("EXPRES");
}
else if(channel == 1048){
display.setTextSize(2);
display.setCursor(15,25);
display.println("EUROPA 2");
}
else if(channel == 930){
display.setTextSize(2);
display.setCursor(15,25);
display.println("BEST FM");
}
display.drawRect(100,0,25,8, WHITE);
display.drawRect(125,3,8,2, WHITE);
display.setTextSize(1);
display.setCursor(75,0);
display.println("BAT");
display.drawLine(0, 10, 128, 10, WHITE);
display.display();
display.clearDisplay();
}