Модуль HC-11

zzzzza
Offline
Зарегистрирован: 18.11.2016

Всем привет!

Купил модуль HC-11 и припаял его к arduino nano.

Попытался передать число, используя этот модуль, на другой модуль (FS1000A), работающий на такой же частоте (433MHz), но ничего не приходит. FS1000A - точно рабочий.

Так как модуль HC-11 можно настраивать с помощью AT-команд, я решил проверить его работоспособность с помощью команды "AT", которая должна была вернуть "OK", но ничег не произошло. (Предварительно я замкнул "SET" с "GND" скрепкой).

Вообщем, помогите понять что с этим модулем, пожалуйста. То ли я что-то неправильно делаю, то ли модуль нерабочий.

Заранее спасибо!

b707
Offline
Зарегистрирован: 26.05.2017

вроде бы не первый день на форуме, а вопросы задавать не научились. Никто в ваши проблемы вникать не станет, пока не приведете скетч и схему подключения

zzzzza
Offline
Зарегистрирован: 18.11.2016

Понял, извиняюсь. Попозже приведу.

zzzzza
Offline
Зарегистрирован: 18.11.2016

Схема подключения модуля HC-11 к arduino nano:

Скетч на передачу:

#define txPin 3

int var=3040, i, x, y;

void SendBit(byte b)
 {
  x = 640;
  y = 320;
   
  if (b)
   {
    digitalWrite(txPin, LOW);
    delayMicroseconds(x);
    digitalWrite(txPin, HIGH);
    delayMicroseconds(y);
   }
    else
   {
    digitalWrite(txPin, LOW);
    delayMicroseconds(y);
    digitalWrite(txPin, HIGH);
    delayMicroseconds(x);
   }
 }

void Send_preambula(int preambula)
 {
  digitalWrite(txPin, HIGH);
  delayMicroseconds(preambula);
  digitalWrite(txPin, LOW);
 }

void SendPerebor(long Code, unsigned int preambula, unsigned int pilot)
 {
  for(int i=0; i<8; i++)
   {
    Send_preambula(preambula);
    
    for(int i=12; i>0 ; i--)
     {
      SendBit(bitRead(Code,i-1));
     }

    digitalWrite(txPin, LOW);
    delayMicroseconds(pilot);
   }
  delay(130);
 }

void setup()
 {
  pinMode(txPin, OUTPUT);
  Serial.begin(9600); 
 }
 
void loop()
 {
  Serial.print("Otpravlyaem kod ");
  Serial.print(var);
  Serial.print(" (");
  Serial.print(var, HEX);
  Serial.println(")");
  SendPerebor(var, 320, 11520);
  var=var+1;
  Serial.println("Zakonchili");
  delay(3000);
 }

Скетч на принятие:

#define rxPin 2

#define MAX_DELTA 200
volatile unsigned long prevtime;
volatile unsigned int lolen, hilen, state;
//Came
volatile static byte cameCounter = 0;
volatile static long cameCode = 0;
volatile long cashcame = 0;

void setup() 
{
  pinMode(rxPin, INPUT);

  Serial.begin(9600);

  attachInterrupt(0, grab, CHANGE);
  interrupts();
}

void loop() 
{
}

boolean CheckValue(unsigned int base, unsigned int value)
{
  return ((value == base) || ((value > base) && ((value - base) < MAX_DELTA)) || ((value < base) && ((base - value) < MAX_DELTA)));
}

void grab() 
{
  state = digitalRead(rxPin);
  if (state == HIGH)
    lolen = micros() - prevtime;
  else
    hilen = micros() - prevtime;
  prevtime = micros();

  if (state == LOW)  
   {
    if (CheckValue(320, hilen) && CheckValue(640, lolen))
    {
      cameCode = (cameCode << 1) | 1;
      cameCounter++;
    }
    else if (CheckValue(640, hilen) && CheckValue(320, lolen))
    {
      cameCode = (cameCode << 1) | 0;
      cameCounter++;
    }
    else cameCounter = 0;
  } else if (lolen > 1000 && (cameCounter == 12 || cameCounter == 13) && ((cameCode & 0xfff) != 0xfff)) {
    Serial.print("CAME: ");
    Serial.println(cameCode & 0xfff);
    cashcame = cameCode & 0xfff;
    cameCounter = 0;
    cameCode = 0;
  }
}

 

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

HS11 vs FS1000A?????

вместо  FS1000A  попробуйте ESP32.

или NRF24.

zzzzza
Offline
Зарегистрирован: 18.11.2016

мне нужен модуль, работающий на частоте 433 MHz, поэтому выбрал этот модуль)

CheS_66
CheS_66 аватар
Offline
Зарегистрирован: 08.02.2017

zzzzza пишет:

Всем привет!

Купил модуль HC-11 и припаял его к arduino nano.

Попытался передать число, используя этот модуль, на другой модуль (FS1000A), работающий на такой же частоте (433MHz), но ничего не приходит. FS1000A - точно рабочий.

И не произойдет. Эти модули (так же как HC-12) расчитаны работать в паре, образуя при этом этакий удлинитель. Я со скуки цеплял на один модуль гпс-приемник, второй через переходник в ноут и смотрел в OziExploer'e где у меня подопытный бродит. Мощность только маловата, разогнать бы его ватт до пяти)) Но тогда батарейку жрать немеряно будет.

zzzzza пишет:

Так как модуль HC-11 можно настраивать с помощью AT-команд, я решил проверить его работоспособность с помощью команды "AT", которая должна была вернуть "OK", но ничег не произошло. (Предварительно я замкнул "SET" с "GND" скрепкой).

Почти так же было. Пробовал подключать через переходник USB-Uart на CP2102 - реакции ноль. Взял переходник на FTDI (100% оригинальный чип) - с ним всё нормально. Взял другой на CP2102 - с ним работает. Я эти переходники на CP2102 партией 5 штук брал, так только три работают с HC-12.

P.S. А вообще эти модули удобная штука когда надо удлинить uart. Настроить только модули на одни канал предварительно и всё.