درخواست کمک برای کد در آردیـــنو
سلام به دوستان
من از سایت زیر، پروژه ای را در پروتئوس شبیه سازی کردم، اما هنگام استفاده از کتابخانه در آردینو و کومپایل کد دچار ارور و مشکل می شوم.
امکان دارد یکی از دوستان به سایت مراجعه کنید و با نصب کتابخانه Emonlib.h در نرم افزار آردینو، کدها را به برنامه دهد و فایل .ino را برای من ارسال نمایید
واقعا لطف بزرگی می کنید، من تازه کار هستم لطفا کمک ام کنید
Arduino based energy monitor with Emonlib library |
آدرس سایت
http://s6.picofile.com/file/8240626750/ff.png
مشکل در تنظیم سرعت موتور با استفاده از آردوینو (برنامه ساده است )
سلام . من برنامه زیر رو نوشتم . این برنامه به صورت ریموت قراره سرعت موتور رو کنترل کنه . از گیرنده ریموت 4 تا سیگنال دیجیتال میاد و به صورت digitalRead دریافت میشه . key1_jelo و key2_aghab برای حرکت به جلو وعقب هستند . و key3_inc_speed و key4_dec_speed هم برای افزایش و کاهش سرعت هستند که روی PWM خروجی از پایه 5 (potout) تاثیر میذارن . مقدار اولیه PWM رو 160 تنظیم می کنم . حالا مشکل من اینه که وقتی که کلید key3_inc_speed رو فشار می دم ، اول کار تقریبا به صفر میرسه و بعد شروع به افزایش میکنه . :( . چرا به صفر میرسه ؟ . این تو برنامه من خیلی مشکل سازه . من نوشتم که potval به مقدار 5 تا اضافه بشه ، پس چرا اول به صفر میرسه ؟
شدیدا به کمک یه آدم خبره نیاز دارم ، خودم خیلی روش کار کردم ، نمیتونم باگش پیدا کنم .
int pot = 0;
int potout = 5;
int potval;
int key1_jelo = 9;
int key2_aghab= 10;
int key3_inc_speed = 11;
int key4_dec_speed= 12;
int en1 = 3;
int en2 = 4;
void setup() {
pinMode(potout , OUTPUT);
pinMode(key1_jelo , INPUT);
pinMode(key2_aghab , INPUT);
pinMode(key3_inc_speed , INPUT);
pinMode(key4_dec_speed , INPUT);
pinMode(en1 , OUTPUT);
pinMode(en2 , OUTPUT);
int potval = 160;
//setPwmFrequency(potout, 1);
analogWrite(potout , potval );
}
void loop() {
if (digitalRead(key1_jelo) == HIGH){
digitalWrite(en2 , LOW);
delay(300);
digitalWrite(en1 , HIGH);
}
else if(digitalRead(key2_aghab) ==HIGH){
digitalWrite(en1 , LOW);
delay(300);
digitalWrite(en2 , HIGH);
}
else{
digitalWrite(en1 , LOW);
digitalWrite(en2 ,LOW );
}
if (digitalRead(key3_inc_speed) == HIGH)
{
if (potval <230)
{
potval = potval+5;
analogWrite(potout , potval );
delay(100);
}
}
else if(digitalRead(key4_dec_speed) == HIGH){
if (potval >150){
potval = potval-5;
analogWrite(potout , potval );
delay(100);
}
}
}