Как передать значение а не ''текст'' через 433Mhz модули для Ардуино
- Войдите на сайт для отправки комментариев
Ср, 28/03/2018 - 13:12
Добрый день Всем.За ранее извиняюсь за мой русский
Я делал передачик текста через 433Mhz модули для Ардуино.Все отлично работает. Текст написанный в коде передачика успешно передается на приемник и его видно на Serial Monitor приемника.
Теперь хочу передать не текст а какое то значение.Скажем хочу передать цифру 50 не как текст а как значение.
Кто может помочь?
Через радиоканал передается не текст или значения. а байты. И что там в байтах - передатчику пофиг.
Чтобы ответить конкретно на ваш вопрос - хотелось бы увидеть код, как вы передаете данные. Как работаете с передатчиком и приемником - через какую-то библиотеку или напрямую?
текст "Hello" четко передается получается.
Ну вот видите - вы передаете вовсе не текст, а массив байт. Массив байт необязательно содержит буквы, в нем может быть что угодно.
Вставьте код нормально, чтобы можно было обсуждать его с номерами строк - продолжим.
Теперь вместо const char *msg = "Hello";
char *msg = {50,'\0'};
'50' - переправиться корректно , на принимающей стороне,если терминал настроен на ascii ,то увидите цифру '2' так как она соответствует числу 50 в таблице ascii
Теперь вместо const char *msg = "Hello";
char *msg = {50,'\0'};
'50' - переправиться корректно , на принимающей стороне,если терминал настроен на ascii ,то увидите цифру '2' так как она соответствует числу 50 в таблице ascii
mixail844 - это тот случай, "когда лучше молчать". ТС как раз хочет разобраться, как передавать числа. а не символы - да еще так безумно криво, как в вашем примере.
Чтобы убедиться в том, что ваш код - бредовый, рассмотрите передачу числа 3333
A как потом конвертировать '2' на 50?
A как потом конвертировать '2' на 50?
Сурен, не обращайте внимания, это подход в корне неверный. Возможно, mihail844 просто прикалывается. Выложите свой код, как я просил.
Вы издеваетесь? :)
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Простите,пожалуйста.я новичок.
// Transmitter #include <VirtualWire.h> void setup() { Serial.begin(9600); // Debugging only Serial.println("setup"); // Prints "Setup to the serial monitor" vw_set_tx_pin(12); // Sets pin D12 as the TX pin vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(4000); // Bits per sec } void loop() { const char *msg = "Hello"; // Message to be sent digitalWrite(13, true); // Flash a light to show transmitting vw_send((uint8_t *)msg, strlen(msg)); //Sending the message vw_wait_tx(); // Wait until the whole message is gone Serial.println(*msg); digitalWrite(13, false); // Turn the LED off. delay(500); // A short gap. }// Receiver #include <VirtualWire.h> int count; void setup() { Serial.begin(9600); // Debugging only Serial.println("MSG"); //Prints "Setup" to the serial monitor vw_set_rx_pin(12); //Sets pin D12 as the RX Pin vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(4000); // Bits per sec vw_rx_start(); // Start the receiver PLL running } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // Non-blocking { int i; digitalWrite(13, true); // Flash a light to show received good message // Message with a good checksum received, dump it. Serial.print("Got: "); for (i = 0; i < buflen; i++) { char c = (buf[i]); Serial.print(c); Serial.print(" "); } count++; // Serial.print(count); Serial.println(""); digitalWrite(13, false); } }В общих чертах, моя задача заключается в том,что у меня будет цифровое значения температуры на одном ардуино,которое будет передоватся через 433Мгц на вторую и там будет отображатся на ЖК дисплей
Если коротко: (сорри, много работы)
передача значения int
прием
int val2; uint8_t buflen = sizeof(val2);; if (vw_get_message((uint8_t *)&val2, &buflen)) { ......Если будут вопросы - спрашивайте, отвечу вечером.
Спасибо,получилась