ارتباط با ماژولهای مختلف در آردوئینو
ارتباط با ماژولهای مختلف در آردوئینو یکی از ویژگیهای قدرتمند این پلتفرم است که به شما امکان میدهد تا به راحتی با انواع سنسورها، محرکها، ماژولها و دستگاههای خارجی ارتباط برقرار کنید. آردوئینو میتواند از پروتکلهای مختلف ارتباطی مانند سریال (Serial)، I2C، SPI و PWM برای برقراری ارتباط با این ماژولها استفاده کند. در اینجا به بررسی چند نوع از ماژولهای پرکاربرد و نحوه ارتباط با آنها در آردوئینو پرداخته میشود.
1. ماژول دما و رطوبت (DHT11/DHT22)
ماژولهای DHT11 و DHT22 برای اندازهگیری دما و رطوبت محیط استفاده میشوند. این ماژولها میتوانند به آردوئینو متصل شوند و مقادیر دما و رطوبت را به آن ارسال کنند.
اتصالات
- VCC → VCC (5V)
- GND → GND
- Data → یکی از پینهای دیجیتال (مثلاً D2)
کد نمونه برای خواندن دما و رطوبت از DHT11
#define DHTPIN 2 // پین دیجیتال برای اتصال داده
#define DHTTYPE DHT11 // نوع سنسور (DHT11 یا DHT22)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity(); // خواندن رطوبت
float temperature = dht.readTemperature(); // خواندن دما
if (isnan(humidity) || isnan(temperature)) {
Serial.println(F("خطا در خواندن دادهها"));
return;
}
Serial.print(F("رطوبت: "));
Serial.print(humidity);
Serial.print(F(" % دما: "));
Serial.print(temperature);
Serial.println(F(" °C"));
delay(2000); // تاخیر 2 ثانیه
}
2. ماژول شتابسنج (ADXL345)
ماژولهای شتابسنج مانند ADXL345 برای اندازهگیری شتاب در سه محور X، Y و Z استفاده میشوند. این ماژول از پروتکل I2C برای ارتباط با آردوئینو استفاده میکند.
اتصالات
- VCC → VCC (3.3V یا 5V بسته به نوع ماژول)
- GND → GND
- SDA → A4 (در آردوئینو UNO)
- SCL → A5 (در آردوئینو UNO)
کد نمونه برای خواندن دادههای شتابسنج
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();
void setup() {
Serial.begin(9600);
if (!accel.begin()) {
Serial.println("خطا در راهاندازی شتابسنج");
while (1);
}
}
void loop() {
sensors_event_t event;
accel.getEvent(&event);
Serial.print("X: ");
Serial.print(event.acceleration.x);
Serial.print(" m/s^2 ");
Serial.print("Y: ");
Serial.print(event.acceleration.y);
Serial.print(" m/s^2 ");
Serial.print("Z: ");
Serial.print(event.acceleration.z);
Serial.println(" m/s^2");
delay(1000);
}
3. ماژول فاصلهسنج اولتراسونیک (HC-SR04)
ماژول HC-SR04 برای اندازهگیری فاصله به کمک امواج اولتراسونیک استفاده میشود. این ماژول از پینهای دیجیتال برای ارسال و دریافت سیگنال استفاده میکند.
اتصالات
- VCC → VCC (5V)
- GND → GND
- Trig → پین دیجیتال (مثلاً D9)
- Echo → پین دیجیتال (مثلاً D10)
کد نمونه برای خواندن فاصله از HC-SR04
#define echoPin 10
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // تبدیل زمان به فاصله
Serial.print("فاصله: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
4. ماژول بلوتوث HC-05
ماژول HC-05 یک ماژول بلوتوث است که میتواند به آردوئینو متصل شود و امکان برقراری ارتباط بیسیم با دستگاههایی مانند موبایل یا کامپیوتر را فراهم میکند.
اتصالات
- VCC → VCC (3.3V یا 5V)
- GND → GND
- TX → پین RX آردوئینو (مثلاً D0)
- RX → پین TX آردوئینو (مثلاً D1)
کد نمونه برای ارسال و دریافت داده از بلوتوث
Serial.begin(9600);
Serial.println("منتظر ارتباط بلوتوث...");
}
void loop() {
if (Serial.available()) {
char data = Serial.read(); // خواندن داده از بلوتوث
Serial.print("داده دریافتی: ");
Serial.println(data);
}
if (Serial.availableForWrite()) {
Serial.write('A'); // ارسال داده به بلوتوث
}
delay(1000);
}
5. ماژول WiFi (ESP8266)
ماژول ESP8266 یکی از ماژولهای محبوب برای اتصال آردوئینو به شبکه Wi-Fi است. این ماژول میتواند به آردوئینو متصل شده و امکان ارتباط اینترنتی را فراهم کند.
اتصالات
- VCC → VCC (3.3V)
- GND → GND
- TX → پین RX آردوئینو
- RX → پین TX آردوئینو
کد نمونه برای اتصال به Wi-Fi با ESP8266
#include <ESP8266WiFi.h>
const char* ssid = "نام شبکه WiFi";
const char* password = "کلمه عبور شبکه";
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("در حال اتصال به شبکه WiFi...");
}
Serial.println("اتصال به WiFi موفقیتآمیز بود!");
}
void loop() {
// انجام کارهای مربوط به اینترنت
}
نتیجهگیری
آردوئینو با استفاده از پروتکلهای مختلف مانند سریال (Serial)، I2C، SPI و PWM میتواند به انواع مختلف ماژولها و سنسورها متصل شود. با استفاده از کتابخانههای مختلف و کدهای نمونه، میتوان این ماژولها را بهراحتی راهاندازی و استفاده کرد. این امکان به شما این امکان را میدهد که پروژههای پیچیدهتر و متنوعتری بسازید.
