الى الاخوة الكرام احاول التحكم بموتور غسالة و بعد جهد تمكنت من عمل الدارة و لكن ما زلت اواجه صعوبة بالبرمجة و ذلك لان التحكم يحتاج الى استخدام المقاطعة الخارجية و مكتبة timer و هذه اول مرة اقوم بالتعامل مع هذه الاوامر و هذا هو الكود
#include <TimerOne.h>
volatile int i=0;
volatile boolean zero_cross=0;
int AC_pin = 9;
int dim = 0;
int inc=1;
int freqStep = 75;
void setup() {
pinMode(AC_pin, OUTPUT);
attachInterrupt(0, zero_cross_detect, RISING);
Timer1.initialize(freqStep);
Timer1.attachInterrupt(dim_check, freqStep);
void zero_cross_detect() {
zero_cross = true;
i=0;
digitalWrite(AC_pin, LOW);
}
void dim_check() {
if(zero_cross == true) {
if(i>=dim) {
digitalWrite(AC_pin, HIGH);
i=0;
zero_cross = false; /
}
else {
i++;
}
}
}
void loop() {
dim+=inc;
if((dim>=128) || (dim<=0))
inc*=-1;
delay(50);
}
سرعة الموتور هي 14000 دورة و عند الوصول الى السرعة القصوى يكون فرق الجهد بين التاكو حوالي ال 40 فولت
المشكلة انني احتاج الى زيادة السرعة تدريجيا حتى يستشعر الدخل التماثلي 700 او 1000 اهمية التاكو بالنسبة لي هي بالمحافظة على السرعة ثابتة مهما كان الوزن داخل الحوض
و شكرا جزيلا على المساعدة