Форум по Роботика
Технически форум => Електроника => Темата е започната от: Tsoni в Януари 26, 2014, 06:13:23 pm
-
Здравейте!Някой работил ли е с тези модули от Роботев?До едно известно време се държаха наред, но изведнъж не може да се прати и една цифра.Съгурен съм че схемата ми е наред ето и кодовете:
Изпращане:
#include <VirtualWire.h>
void setup()
{
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_set_tx_pin(3);
}
void loop()
{
char *msg = "1";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
}
Приемане:
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_set_rx_pin(2);
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)) {
digitalWrite(13, true);
for (int i = 0; i < buflen; i++) {
Serial.println(buf);
}
digitalWrite(13, 0);
}
}
Ще съм благодарен ако някой тества самите кодове и евентуално предположи къде може да е проблема или поне как да ги тествам поотделно дали работят.
:)
-
Можеш да пуснеш бавна импулсна поредица като данни данни на предавателя - примерно 2-3 Hz и с един светодиод в изхода на приемника да контролираш какво получаваш. Така можеш да прецениш до някаква степен работи ли радиовръзката.
-
Може ли примерен код?
Аз пробвах изпращане на "1" с честота 5 Hz(слагах делей 200 в края на луупа) и нищо не ставаше - приемника не влизаше в иф-а за приемането на смислени данни.
Открих една функция с която се тества предавателя, но кода не иска да се компилира с нея - връща true ако предава данни
if (vw_tx_active == true) digitalWrite(13, 1);
Грешката е следната: vw_tx_active was not declared in this scope
Свалих последната версия на библиотеката уш, но просто не го възприема като функция...
-
Не става дума за някакъв особен код. Изгенерирай с Ардуино-то импулсна поредица - примерно 200мс. високо ниво, 200мс. ниско. Включи към съответния изход светодиод през съпротивление 1кОм и той трябва да замига. Подай това като данни на предаателя. Включи към изхода на приемника друг светодиод през 1кОм. Трябва да имаш същото мигане.
Не е проверка на 100% но вероятно ще те ориентира.