我正在为一个项目编写一些代码,其中我有一个与Arduino接口的GSM模块,用于在触发传感器时传达某些通知并通过SMS接收命令。一个这样的命令是通过SMS设置“呼出”号码。 IE如果我将“Set”字样发送到GSM模块,则收到消息的号码将成为GSM模块在触发传感器时呼出的新号码。
我必须在代码中初始化默认电话号码:
char ph_number[]="+35387914xxxx";
然后在我的程序中,我有一些代码来检查包含'Set'命令的任何SMS',如果是,则将ph_number =设置为发件人编号。
我需要永久保存该新号码以成为默认的呼出号码,即使Arduino被重置,直到收到新的Set命令为止。有没有办法做到这一点?它甚至可能吗?
答案 0 :(得分:2)
您可以将其存储在FLASH或EEPROM中的特殊位置,并在启动时从那里读取。
答案 1 :(得分:1)
您可以使用Arduino EEPROM library读/写EEPROM。这允许您一次访问内存中的一个点,示例草图将是:
#include <EEPROM.h>
int a = 0;
int value;
void setup()
{
a = EEPROM.read(0); //reads from point 0 in the memory (the first point)
}
void loop()
{
value = analogRead(A0);
if(value != a){
a = value;
EEPROM.write(0, a);
}
}
保存字符时,首先将它们转换为十进制等值,然后保存,之后必须再次转换。同样重要的是要记住,存储器中的每个点只能存储1个字节的数据,最大值为255,EEPROM的读/写次数有限 - 出厂时指定的最大值为100000但可能更高。