Transmitter code (STM32F103C8):
//433MHZ RF Trasmitter with STM32F103C8
//Transmitter Code
//Circuit Digest
#include //RadioHead library
#define trigPin PB1 //Sets the Trigpin of Ultrasonic sensor as PB1
#define echoPin PB0 //Sets the echoPin of Ultrasonic sensor as PB0
RH_ASK rf_driver(2000, PA9, PA10); //Sets Pin PA9 as receiver and PA10 as transmitterand 2000 as Speed
String transmit_pwm; //Strings to store string value
String transmit_distance;
String transmit;
void setup()
{
// Initialize ASK Object
rf_driver.init();
Serial.begin(9600);
pinMode(PA0,INPUT);
pinMode(echoPin,INPUT);
pinMode(trigPin,OUTPUT);
}
void loop()
{
int analoginput = analogRead(PA0); // ADC value from pin PA0 connected to Potentiometer
int pwmvalue = map(analoginput,0,4096,0,100); // Converts 0 to 4096 into 0 to 100
digitalWrite(trigPin, LOW); //Makes TrigPin of Ultrasonic LOW
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); //Makes TrigPin of Ultrasonic HIGH
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Makes TrigPin of Ultrasonic LOW
long duration = pulseIn(echoPin, HIGH); //Receives the Echo signal reflected
float distance= duration*0.034/2; //Calculates distance in CM of object
transmit_pwm = String(pwmvalue); //Convert value into string
transmit_distance = String(distance); //Convert value into string
transmit = transmit_pwm + "," + transmit_distance; //Adds two String in one line
const char *msg = transmit.c_str(); //
rf_driver.send((uint8_t *)msg, strlen(msg)); //Sends the String
rf_driver.waitPacketSent();
Serial.println(msg); //Serial Print value for debug
delay(1000);
}
Receiver Code (Arduino UNO):
//Receiver Arduino Code
//433MHZ RF with STM32F103C8 as Transmitter
//Circuit Digest
#include //Includes RadioHead Library
#include //Includes the LCD display Library
LiquidCrystal lcd(2,3,4,5,6,7); //Initialize lcd with Pins connected to Arduino
String str_receive; //Strings to Store Value
String str_number;
String str_distance;
RH_ASK rf; //rf as object for RG_ASK
void setup()
{
lcd.begin(16,2); //Lcd set as 16x2 Mode
lcd.print("CIRCUIT DIGEST"); //Display Welcome message
lcd.setCursor(0,1);
lcd.print("RF with STM32");
delay(5000);
lcd.clear();
rf.init(); //Initialize rf Object
}
void loop()
{
uint8_t buf[7];
uint8_t buflen = sizeof(buf);
if (rf.recv(buf, &buflen))
{
str_receive = String((char*)buf); // Receive String from the Transmitter
for (int i = 0; i < str_receive.length(); i++) // Split string into two string
{
if (str_receive.substring(i, i+1) == ",")
{
str_number = str_receive.substring(0, i);
str_distance = str_receive.substring(i+1);
break;
}
}
char numberstring[4];
char distancestring[3];
str_distance.toCharArray(distancestring,3); //Convert String into Char Array
str_number.toCharArray(numberstring,3);
int distance = atoi(distancestring); //Convery Array into integer value
int number = atoi(numberstring);
lcd.setCursor(0,0);
lcd.print("Number:");
lcd.print(number); //Display number value at LCD display
lcd.setCursor(0,1);
lcd.print("Distance :");
lcd.print(distance); //Display distance value at LCD display
lcd.print(" cm");
delay(1500);
lcd.clear();
}
}
ماژول RF یک وسیله بسیار کاربردی است که در ارتباطات بیسیم و فناوری های مرتبط به کار میرود. با استفاده از این ماژول، میتوانید ارتباطات بیسیمی را بین دستگاهها برقرار کنید، مانند اتصال یک گوشی همراه به اسپیکر یا ارسال داده ها به سیستمهای کنترلی. ماژول RF یک ابزار قدرتمند در دسترس است که به توسعه امکانات بیشتر در دنیای فناوری کمک میکند.چند محصول خوب دیگر هم معرفی میکنم:
محصولات پر فروش
ماژول RF یک وسیله بسیار کارآمد است که در ارتباطات بیسیم استفاده میشود. این ماژول قادر است امواج رادیویی را در دستگاههای الکترونیکی منتقل کند و بسته به نوع استفاده، میتواند در انتقال صدا، تصویر یا داده مورد استفاده قرار گیرد. همچنین، ماژول RF از قابلیت ارتباط با دستگاههای دیگر نیز برخوردار است که آن را به یک انتخاب عالی در صنایع مختلف میکند.چند محصول خوب دیگر هم معرفی میکنم:
محصولات پر فروش