Здравствуйте,
Нужна ваша помощ.Сделал FM радио на Arduino и RDA5807.
Всё работает отлично.Можно ходить по заранее запрограмированным частотам
при помощи валкодера.
Но хочется,чтобы частота последней станции заносилась в
память EEPROM,и при следующем включении радио запускалась эта последняя станция.
Подправте пожалста мой скетч чтобы заработал EEPROM.
Я в програмировании совсем неразбираюсь,поэтому прошу вашей помощи.
Скетч прилагаю.
#include <EEPROM.h>
#include <Wire.h>
#include <radio.h>
#include <rda5807M.h>
//Set Station frequences
RADIO_FREQ preset[24] = {
8810,9030,9100,9190,9240,9440,9620,9710,9760,9800,9850,10040,10210,
10250,10290,10350,10410,10450,10490,10540,10590,10660,10710,10760
};
const int pin_A = 8;
const int pin_B = 9;
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev=0;
int i_sidx=8;
int i_smax=23;
RDA5807M radio;
void setup() {
Serial.begin(57600);
Wire.begin();
pinMode(pin_A, INPUT);
pinMode(pin_B, INPUT);
radio.init();
radio.setBandFrequency(RADIO_BAND_FM, preset[i_sidx]);
radio.setMono(false);
radio.setMute(false);
radio.setVolume(10);
}
void loop()
{
encoder_A = digitalRead(pin_A);
encoder_B = digitalRead(pin_B);
if(!encoder_A && encoder_A_prev)
{
if(encoder_B)
{
i_sidx++;
if (i_sidx>i_smax){i_sidx=0;}
radio.setFrequency(preset[i_sidx]);
delay(100);
}
else
{
i_sidx--;
if (i_sidx<0){i_sidx=i_smax;}
radio.setFrequency(preset[i_sidx]);
delay(100);
}
}
encoder_A_prev = encoder_A;
}