-
کواد کوپتر اردوینو نانو
سلام من میخوام با اردوینو نانو و موتور میکرو یک کواد کوپتر کوچک درست کنم که فقط پرواز کنه برای بار اول
ماژول رو تو اردوینو تعریف نکردم یعنی فقط بایاسش کردم و ورودی ماژول فرستنده مستقیم به خروجی pwmاردوینو متصل شده
این کد رو نوشتم طوری هست که تعادل با ماژول شتاب سنج حفظ بشه
دوم زمانی که یک کلید رو که به اردوینو وصله بزنم تو خروجی pwmاردوینو انالوگ رایت 200رو بندازه و توی گیرنده هم همون200دریافت بشه و تمام موتور ها میچرخند و کواد از زمین بلند میشه
زمانی که کلید دیگه ای بخوره دوتا موتور بیشتر بچرخن و کواد به یک طرف بره
همینطور تمام جهت هارو تعریف کردم ایا کدم درسته؟
کار میکنه این پروژه بنده؟
int data = A0;
#include <Adafruit_ADXL345_U.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#define motor 3
#define motor2 5
#define motor3 6
#define motor4 9
float x, y, z;
Adafruit_ADXL345_Unified accel (54321);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(data, INPUT);
accel.setRange(ADXL345_RANGE_16_G);
accel.setDataRate(ADXL345_DATARATE_25_HZ);
}
void loop() {
int value = analogRead(data);
while ( value = 200) {
analogWrite(motor, 200);
analogWrite(motor2, 200);
analogWrite(motor3, 200);
analogWrite(motor4, 200);
}
while (value = 100) {
analogWrite(motor, 100);
analogWrite(motor2, 100);
analogWrite(motor3, 100);
analogWrite(motor4, 100);
}
while(value = 300) {
analogWrite(motor, 220);
analogWrite(motor2, 220);
}
while (value = 400) {
analogWrite(motor3, 220);
analogWrite(motor4, 220);
}
while (value = 500) {
analogWrite(motor, 220);
analogWrite(motor3, 220);
}
while (value = 600) {
analogWrite(motor2, 220);
analogWrite(motor3, 220);
}
sensors_event_t event;
accel.getEvent(&event);
x = event.acceleration.x;
y = event.acceleration.y;
z = event.acceleration.z;
Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");
if (z > -11 && z <-9) {
analogWrite(motor, 200);
analogWrite(motor2, 200);
analogWrite(motor3, 200);
analogWrite(motor4, 200);
}
else {
analogWrite(motor, 0);
analogWrite(motor2, 0);
analogWrite(motor3, 0);
analogWrite(motor4, 0);
}
if (x > 0) {
analogWrite(motor, 50);
delay(100);
analogWrite(motor2, 50);
delay(100);
}
else if (x < 0) {
analogWrite(motor3, 50);
delay(100);
analogWrite(motor4, 50);
delay(100);
}
if (y < 0) {
analogWrite(motor2, 50);
delay(50);
analogWrite(motor4, 50);
delay(50);
}
else if (y > 0) {
analogWrite(motor, 50);
delay(100);
analogWrite(motor3, 50);
delay(100);
}
}
-
مجوز های ارسال و ویرایش
- شما نمیتوانید موضوع جدیدی ارسال کنید
- شما امکان ارسال پاسخ را ندارید
- شما نمیتوانید فایل پیوست کنید.
- شما نمیتوانید پست های خود را ویرایش کنید
-
مشاهده قوانین انجمن
SEO by vBSEO