Здесь мы поработаем с передатчиком RF433/315MHz.
В передатчике 3 вывода:
- vcc
- gnd
- data
Подаем на vcc питание +5V, на gnd ессесно 0V, на data подаем данные.
В общем все очень просто. Отправляем посылку состоящую из длительностей высокого и низкого уровней, которыми кодируется "1" и "0".
В нашей посылке будет содержатьс 25 пар
HIGH | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
LOW | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Т.е. Мы отправляем пары значений HIGH/LOW, с длительностью "0" - 1 мс, "1" - 3 мс (как пример):
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
int vcc = 6; // pin питания
int gnd = 7; // pin земли
int data = 5; // pin данных
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(vcc,OUTPUT); digitalWrite(vcc, HIGH);
pinMode(gnd,OUTPUT); digitalWrite(gnd, LOW);
pinMode(data,OUTPUT); digitalWrite(data,LOW);
}
//наша посылка
#define COL 25
//высокий уровень
int hP[COL]={0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,1,1,1};
//низкий уровень
int lP[COL]={1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0};
//длительность 0 и единицы
int DL[2] = {1,3};
void send(void)
{ int rxd;
//настраиваем выводы на передачу
pinMode(vcc,OUTPUT); digitalWrite(vcc, HIGH);
pinMode(gnd,OUTPUT); digitalWrite(gnd, LOW);
pinMode(data,OUTPUT); digitalWrite(data,LOW);
for(int i=0;i<COL;i++)
{
digitalWrite(data,HIGH);
delay(DL[hP[i]]); //high part
digitalWrite(data,LOW);
delay(DL[lP[i]]); //low part
}
//отключаем передатчик для экономии
pinMode(vcc,INPUT);
pinMode(gnd,INPUT);
pinMode(data,INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
send();
delay(1000) ;
}