Что не так с моим кодом? (HC-SR04 с использованием модуля 433 МГц);
Я задал вопрос об этом в прошлый раз, но все равно не смог заставить его работать, но он каким-то образом дал мне обзор моего проекта. Теперь я создал еще один проект, похожий на предыдущий, единственное отличие заключается в том, что я использовал библиотеку VirtualWire. Поэтому я подключил HC-SR04 к плате arduino(BOARD1) с передатчиком, а приемник-к другой плате(BOARD2). Я следовал коду в Интернете, похожему на мой проект, но у него есть ЖК-дисплей, но я просто хочу, чтобы показания моих датчиков отображались на последовательном мониторе.
ВОТ КОД ДЛЯ ПЕРЕДАТЧИКА
#include <VirtualWire.h>
const int trig= 9;
const int echo= A1;
float sensorval;
float distance;
char msg[6];
void setup() {
vw_set_tx_pin(12);
vw_setup(2000);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trig,LOW);
delayMicroseconds(10);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
delayMicroseconds(10);
sensorval=pulseIn(echo,HIGH);
distance = (sensorval*.0343)/2;
Serial.print("Distance: ");
Serial.println(distance);
dtostrf(distance, 6,2,msg);
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
delay(500);
}
А ВОТ КОД ПРИЕМНИКА
#include<VirtualWire.h>
#include <Wire.h>
int i;
void setup() {
vw_set_rx_pin(12);
vw_setup(2000);
vw_rx_start();
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)){
Serial.print("distance is: ");
Serial.print((char *)buf);
Serial.print(buf[i]);
}
}
0
Смотрите также:
- Нет заголовочных файлов (.h) в Documents\Arduino\libraries\arduino_144469 с демонстрационным кодом
- Сдвиг уровня 5В <-> 3,3В
- Почему мой код Arduino для запуска робота, управляемого Bluetooth, с датчиком препятствий не работает должным образом?
- Как получить значения датчиков с помощью передатчика и приемника
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
В чем ваша реальная проблема? Обычно вы можете просто последовательно печатать()/читать() "в/из" этих радиомодулей..., @Sim Son